OKTA 密钥管理器无法与 WS02 API 管理器 3.2.0 一起使用
OKTA Key manager is not working with WS02 API Manager 3.2.0
说明:
当 API 在 WSO2 APIM 3.2.0
的 DevPortal 中订阅了默认应用程序以外的应用程序时,密钥管理器 OKTA 不起作用
重现步骤:
- 使用管理员凭据登录管理门户。
- 通过从 OKTA 收集的详细信息注册 OKTA 密钥管理器。确保遵循文档中提到的步骤。
- 保持令牌生成、带外供应、Oauth 应用程序创建选项启用。
- 使用管理员凭据登录发布者门户。
- 部署 PizzaShack API。
- 转到 运行 时间配置,在应用程序安全性下,只允许 API 允许使用 OKTA 密钥管理器。
- 保存并发布 API。
- 使用管理员凭据登录开发人员门户。
- 完全按照此处所述为 OKTA 创建一个新应用程序 https://apim.docs.wso2.com/en/latest/administer/key-managers/configure-okta-connector/。
- 订阅 PizzaShack API 到新应用程序。
- 直接通过 okta 为 OKTA 最终用户生成访问令牌 API。
OKTA end user is not available in WSO2 user store.
And not using wso2 devportal to generate the acces token.
- 使用生成的访问令牌向 pizzashack api 发出请求。
- WSO2 returns 低于错误
<ams:fault xmlns:ams="http://wso2.org/apimanager/security">
<ams:code>900908</ams:code>
<ams:message>Resource forbidden </ams:message>
<ams:description>User is NOT authorized to access the Resource. API Subscription validation failed.</ams:description>
</ams:fault>
- 转到开发门户并从新应用程序中取消订阅 PizzaShack。
- 将 PizzaShack API 订阅到默认应用程序并保存。
- 使用之前生成的访问令牌向 pizzashack api 发出请求。
- WSO2 响应 API 结果。
我们的前端应用程序使用 SPA OKTA 应用程序生成访问令牌。不支持如何将其注册为 OKTA 密钥管理器。我们按照以下步骤进行操作并使其正常运行。
- 在相同的 web 类型授权服务器下创建一个新的 OKTA 应用程序。生成 API 密钥、客户端 ID 和客户端密码。
- 使用上述详细信息添加 OKTA 密钥管理器。禁用 Oauth App Creation 选项,因为它不是必需的。
- 转到devportal,添加一个新的应用程序。在 OKTA 密钥管理器下,select“提供现有的授权密钥”。
- 在 OKTA 中输入为 SPA 应用程序生成的客户端 ID。 consumer secret 留空保存。
- 订阅 PizzaShack API 使用从 SPA OKTA space.
生成的访问令牌调用 API
- WSO2 接受请求并返回结果。
由于附加在访问令牌中的消费者密钥用于识别订阅的应用程序,因此必须在相应部分中提供消费者密钥作为客户端 ID。
说明: 当 API 在 WSO2 APIM 3.2.0
的 DevPortal 中订阅了默认应用程序以外的应用程序时,密钥管理器 OKTA 不起作用重现步骤:
- 使用管理员凭据登录管理门户。
- 通过从 OKTA 收集的详细信息注册 OKTA 密钥管理器。确保遵循文档中提到的步骤。
- 保持令牌生成、带外供应、Oauth 应用程序创建选项启用。
- 使用管理员凭据登录发布者门户。
- 部署 PizzaShack API。
- 转到 运行 时间配置,在应用程序安全性下,只允许 API 允许使用 OKTA 密钥管理器。
- 保存并发布 API。
- 使用管理员凭据登录开发人员门户。
- 完全按照此处所述为 OKTA 创建一个新应用程序 https://apim.docs.wso2.com/en/latest/administer/key-managers/configure-okta-connector/。
- 订阅 PizzaShack API 到新应用程序。
- 直接通过 okta 为 OKTA 最终用户生成访问令牌 API。
OKTA end user is not available in WSO2 user store. And not using wso2 devportal to generate the acces token.
- 使用生成的访问令牌向 pizzashack api 发出请求。
- WSO2 returns 低于错误
<ams:fault xmlns:ams="http://wso2.org/apimanager/security"> <ams:code>900908</ams:code> <ams:message>Resource forbidden </ams:message> <ams:description>User is NOT authorized to access the Resource. API Subscription validation failed.</ams:description> </ams:fault>
- 转到开发门户并从新应用程序中取消订阅 PizzaShack。
- 将 PizzaShack API 订阅到默认应用程序并保存。
- 使用之前生成的访问令牌向 pizzashack api 发出请求。
- WSO2 响应 API 结果。
我们的前端应用程序使用 SPA OKTA 应用程序生成访问令牌。不支持如何将其注册为 OKTA 密钥管理器。我们按照以下步骤进行操作并使其正常运行。
- 在相同的 web 类型授权服务器下创建一个新的 OKTA 应用程序。生成 API 密钥、客户端 ID 和客户端密码。
- 使用上述详细信息添加 OKTA 密钥管理器。禁用 Oauth App Creation 选项,因为它不是必需的。
- 转到devportal,添加一个新的应用程序。在 OKTA 密钥管理器下,select“提供现有的授权密钥”。
- 在 OKTA 中输入为 SPA 应用程序生成的客户端 ID。 consumer secret 留空保存。
- 订阅 PizzaShack API 使用从 SPA OKTA space. 生成的访问令牌调用 API
- WSO2 接受请求并返回结果。
由于附加在访问令牌中的消费者密钥用于识别订阅的应用程序,因此必须在相应部分中提供消费者密钥作为客户端 ID。