我希望在APIM生成的JWT中包含我们的辅助用户存储中的所有声明。我们对当前任务使用隐式身份验证,因此用户必须对IS进行身份验证。我们正在使用JIT配置的联合身份验证。
我启用了:
<ClaimsRetrieverImplClass>org.wso2.carbon.apimgt.impl.token.DefaultClaimsRetriever</ClaimsRetrieverImplClass>
并设置:
<ConsumerDialectURI>http://wso2.org/claims</ConsumerDialectURI>
启用:
<EnableTokenGeneration>true</EnableTokenGeneration>
但生成的JWT不包括用户的数据,只包括标准网关声明,包括最终用户。
我已确认用户是在数据库中创建的,并且用户的声明存储在表UM_USER_ATTRIBUTE中。我注意到在主用户存储(非联合)中UM_USER_ATTRIBUTE为空并且填充了UM_CLAIM。可能是JIT配置是将数据放在一个未被ClaimsManager检查的表中吗?
如何让用户的声明(如电子邮件)显示在JWT中?
IS 5.0.0 APIM 1.8.0
答案 0 :(得分:1)
对于任何有兴趣的人,这里有两位领导让我走上解决问题的道路。
如果数据来自主用户存储,我获得了更大的成功。我不相信它不会使用辅助用户商店,但我只是在切换到主要用户商店后才取得成功,我还没有测试切换回来。
JWT配置需要在执行KeyManager职责的服务器上完成。在我们的例子中,我们将IS作为我们的KeyManager,因此我们必须在IS服务器上对api-manager.xml进行配置更改。