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 不起作用

重现步骤:

  1. 使用管理员凭据登录管理门户。
  2. 通过从 OKTA 收集的详细信息注册 OKTA 密钥管理器。确保遵循文档中提到的步骤。
  3. 保持令牌生成、带外供应、Oauth 应用程序创建选项启用。
  4. 使用管理员凭据登录发布者门户。
  5. 部署 PizzaShack API。
  6. 转到 运行 时间配置,在应用程序安全性下,只允许 API 允许使用 OKTA 密钥管理器。
  7. 保存并发布 API。
  8. 使用管理员凭据登录开发人员门户。
  9. 完全按照此处所述为 OKTA 创建一个新应用程序 https://apim.docs.wso2.com/en/latest/administer/key-managers/configure-okta-connector/
  10. 订阅 PizzaShack API 到新应用程序。
  11. 直接通过 okta 为 OKTA 最终用户生成访问令牌 API。

OKTA end user is not available in WSO2 user store. And not using wso2 devportal to generate the acces token.

  1. 使用生成的访问令牌向 pizzashack api 发出请求。
  2. 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>
  1. 转到开发门户并从新应用程序中取消订阅 PizzaShack。
  2. 将 PizzaShack API 订阅到默认应用程序并保存。
  3. 使用之前生成的访问令牌向 pizzashack api 发出请求。
  4. 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。