繁体   English   中英

WSO2 API Manager - 从 API 客户端验证用户

[英]WSO2 API Manager - Authenticate user from API client

我正在开发一组通过 WSO2 API 管理器公开为 REST 的微服务。

现在,我想在 Angular 前端调用这些服务。 处理用户身份验证和授权的最佳方法是什么?

我发现它可以通过OAuth2用户密码授权来进行描述这里

当用户登录时,用户凭据将被发送到特定的 WSO2 APIM 端点 (/token),它会验证、生成令牌,并且此令牌将在标头中发送以供后续调用使用。

这是处理这种情况的最佳方法吗?

提前致谢,

如您的问题所述, https://apim.docs.wso2.com/en/next/learn/api-security/oauth2/grant-types/password-grant/此方法仅在您拥有资源所有者的用户名时才有效和密码。

举个例子,假设您已经发布了 API 并在 WSO2 商店中创建了一个用户(资源所有者)。 此用户使用应用程序订阅 API。 该应用程序将有一个客户端 ID 和密钥,用于生成 OAuth2.0 令牌。 此令牌将用于调用 API。

现在在您的 angular 项目中,一种方法是对 base64(clientid:clientsecret) 进行硬编码并调用令牌 API 以生成 OAuth2.0 不记名令牌。 使用生成的令牌调用 WSO2 上的 API。 为了保护您的 API 免受攻击,请使用基于 IP 的速率限制

现在采取另一种情况,如果您希望用户首先进行身份验证,则使用密码授予类型(使用实际用户的用户名和密码)为该用户生成JWT token ,并使用该 JWT 生成OAuth2.0 Bearer token ,该OAuth2.0 Bearer token将是用于调用 API。

第二种情况需要执行的步骤:

  1. 在注册期间(来自 Angular),在 WSO2 身份服务器中内部载入用户。 (有相同的 WSO2 API)
  2. 注册后,通过验证用户名和密码从身份服务器生成 JWT 令牌。 (再次为此,WSO2 API 在那里)
  3. 现在使用这个 JWT 令牌,从 WSO2 APIM 生成 OAuth2.0 令牌
  4. 使用此令牌调用 API

第二种方法是使用 WSO2 作为网关的用户对服务认证和授权的理想方法,而第一种方法主要侧重于服务到服务的认证和授权

希望这能回答你的问题

参考链接: https : //medium.com/wso2-learning/how-to-protect-your-apis-with-self-contained-access-token-jwt-using-wso2-api-manager-and-wso2-75673d8a4686

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM