如何解决步骤:WSO2 身份验证和授权 = 很多步骤
我正在尝试使用 WSO2 API 管理器为我的 API 提供安全性。我可以实现 WSO2 身份服务器的配置,以将 LDAP 服务器与一些用户一起使用,并使 WSO2 API 管理器将此身份服务器用作密钥管理器。我的问题是:
- 如何配置最终用户以访问 API?是否需要将所有用户关联到 API Manager carbon 中的应用程序角色?
- 最终用户需要有两个访问令牌才能访问 API?一种是使用(OAuth 客户端密钥/OAuth 客户端密钥)在 IS 中进行身份验证,另一种是使用(消费者客户端 ID/消费者客户端密钥)生成 API 管理器中 API 的访问令牌?
- 是否有任何教程解释所有这些步骤以及如何仅为某些用户保护 API?
解决方法
基本上,令牌生成流程因授权类型而异。例如,您用来生成访问令牌的 jwt-bearer 授权类型有几个步骤,例如,
- 服务提供者向 IDP 请求 JWT
- 从交换 JWT 断言的 API Manager 生成访问令牌。
这是因为每种授权类型的用法不同,使用授权类型取决于您的安全要求。
JWT Bearer 授权通常用于客户端应用程序,用户登录时提供用户名和密码,其余的在应用程序本身中完成,无需与最终用户进行任何交互。
如果您需要以最终用户身份生成令牌,则可以使用密码授权类型。
,这些是我配置 WSO2 身份服务器和 WSO2 Api 管理器的步骤:
-
我在 Identity Server 中创建了一个服务提供者并配置了一个 OAuth/OpenId Connect。这会生成 OAuth 客户端密钥和 OAuth 客户端密钥。
我在 API 管理器中创建了一个身份提供者,导入一个公共证书来验证来自身份提供者的响应,并使用 OAuth 客户端密钥作为别名,在验证 JWT 令牌时由 WSO2 API 管理器检查。
-
我在 WSO2 API Publisher 中创建了一个 API,将此 API 与一个内部/订阅者角色相关联,并将我的最终用户与此角色相关联。
-
我在 WSO2 API Store 中创建了一个应用程序来使用我的 Rest 服务并将我的 API 订阅到这个应用程序。
我按照这篇文章进行了以下步骤: how-to-protect-your-apis-with-self-contained-acces
问题在于使用 Rest Service 的步骤。
在 WSO2 身份服务器中请求生成 API 管理器的访问令牌: curl -u (OAUTH_CLIENT_KEY:OAUTH_CLIENT_SECRET) -k -d "grant_type=password&username=END_USER_USERNAME&password=END_USER_PASSWORD" -H "Content-Type:application/x-www-form-urlencoded" https://localhost:9443/oauth2/token
-
在 API 管理器中请求生成 API 的访问令牌。 curl -i -X POST -u (CONSUMER_KEY:CONSUMER_SECRET) -k -d 'grant_type=urn:ietf:params:oauth:grant-type:jwt-bearer&assertion=IS_ACCESS_TOKEN' -H 'Content-Type: application/x-www -form-urlencoded' https://localhost:9444/oauth2/token
-
请求 API Manager 从 API 获取资源: curl -v -H "授权:持有人 AM_ACCESS_TOKEN" http://172.19.0.1:8281/jwt/1.0.0/REST_API
有没有简单的方法来完成这些步骤?
,有关使用角色、范围和令牌保护 API 的更多信息,请参阅文档中的 API 安全部分。
- https://apim.docs.wso2.com/en/latest/learn/api-security/api-authentication/api-authentication-overview/
- https://apim.docs.wso2.com/en/latest/learn/api-security/authorization/api-authorization/
This doc 包含有关如何根据您的要求对 APIM 和 IS 使用不同授权类型的信息。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。