微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

OKTA 密钥管理器不适用于 WS02 API 管理器 3.2.0

如何解决OKTA 密钥管理器不适用于 WS02 API 管理器 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. 完全按照此处https://apim.docs.wso2.com/en/latest/administer/key-managers/configure-okta-connector/所述为 OKTA 创建一个新应用程序。
  10. 为 PizzaShack API 订阅新应用。
  11. 直接通过 okta API 为 OKTA 最终用户生成访问令牌。

OKTA 最终用户在 WSO2 用户商店中不可用。 并且不使用 wso2 devportal 生成访问令牌。

  1. 使用生成的访问令牌向比萨饼 API 发出请求。
  2. WSO2 返回以下错误
<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. 转到 devportal 并从新应用中取消订阅 PizzaShack。
  2. 将 PizzaShack API 订阅认应用程序并保存。
  3. 使用之前生成的访问令牌向比萨饼 API 发出请求。
  4. WSO2 响应 API 结果。

解决方法

我们的前端应用程序使用 SPA OKTA 应用程序生成访问令牌。不支持将其注册为 OKTA 密钥管理器。我们按照以下步骤操作并使其正常工作。

  • 在同一个 web 类型的授权服务器下创建一个新的 OKTA 应用程序。生成 API 密钥、客户端 ID 和客户端密钥。
  • 使用上述详细信息添加 OKTA 密钥管理器。禁用 Oauth App Creation 选项,因为它不是必需的。
  • 转到 devportal,添加一个新应用程序。在 OKTA 密钥管理器下,选择“提供现有身份验证密钥”。
  • 在 OKTA 中输入为 SPA 应用生成的客户端 ID。将消费者秘密留空并保存。
  • 订阅 PizzaShack API 并使用从 SPA OKTA 空间生成的访问令牌调用 API。
  • WSO2 接受请求并返回结果。

由于附加在访问令牌中的消费者密钥用于识别订阅的应用程序,因此必须在相应部分提供消费者密钥作为客户端 ID。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。