【问题标题】:WSO2 APIM 4.1.0 APIMgtGatewayJWTGeneratorImpl ClaimsWSO2 APIM 4.1.0 APIMgtGatewayJWTGeneratorImpl 声明
【发布时间】:2022-12-06 14:10:34
【问题描述】:
  1. 将 WSO2 APIM 从版本 3.1.0 升级到 4.1.0
  2. 通过导航到 -> 添加新声明添加了新声明,如下所示。
  3. 发布微服务
  4. 使用创建的 OIDC 范围调用令牌端点
  5. 通过传递 access_token 调用 api 端点
  6. 当我使用不记名令牌访问 API 时,我在碳日志中获取了 X-JWT-Assertion 标头,但是当我解码它时,它不包含我在本地声明中添加的声明。
  7. APIMgtGatewayJWTGeneratorImpl 仅返回以下声明,而不是所有预期的声明。
  8. 为什么 APIMgtGatewayJWTGeneratorImpl 只返回有限的声明?
  9. 返回新添加的声明是否需要任何配置?
  10. 我们是否需要编写自定义 JWTGenerator 来返回所有声明?

    期望

    • JWT 令牌应包含我在本地声明中添加的所有声明。

    环境

    • WSO2 APIM 4.1.0
    • WSO2 IS 5.11.0

【问题讨论】:

    标签: wso2 wso2-api-manager wso2-identity-server


    【解决方案1】:

    您可以验证访问令牌是否包含所需的声明。如果声明存在于访问令牌中,则网关将声明复制到后端 jwt。你不需要在这里写任何扩展。当网关自行验证访问令牌时,除非这些声明来自访问令牌,否则无法获得这些声明。

    更新:请按照以下步骤操作。

    1. 在开发门户中创建一个应用程序。
    2. 当您在此应用程序的开发门户中生成消费者密钥和秘密时,它会在下面创建服务提供者。当您登录到 carbon 控制台时,该服务提供商将可用。
    3. 单击服务提供商并在声明配置下配置声明。您可以在此处提供所需的声明,如屏幕截图所示。

      1. 更新用户个人资料,如https://is.docs.wso2.com/en/latest/guides/identity-lifecycles/update-profile/

      2. 生成访问令牌时使用 openid 范围。

      curl -k -X POST https://localhost:9443/oauth2/token -d "grant_type=password&username=admin&password=admin&scope=openid" -H “授权:基本 Base64Encoded(ck:cs)”

      1. 当网关生成后端 jwt 时,它会添加来自访问令牌的声明。

    【讨论】:

    • 已验证访问令牌仅包含基本默认声明。访问令牌中不存在所需的声明。是否有任何配置可以将所需的声明设置为访问令牌?
    • 我更新了步骤..
    猜你喜欢
    • 2022-12-15
    • 1970-01-01
    • 2021-01-06
    • 1970-01-01
    • 2022-08-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-22
    相关资源
    最近更新 更多