如何在WSO2 API Manager生成的JWT中获取自定义声明

如何在WSO2 API Manager生成的JWT中获取自定义声明,wso2,wso2-am,api-manager,Wso2,Wso2 Am,Api Manager,我想用APIM生成的JWT将所有声明包含在我们的辅助用户存储中。我们正在为当前任务使用隐式身份验证,因此用户必须向IS进行身份验证。我们将联合身份验证与JIT配置结合使用 我已启用: <ClaimsRetrieverImplClass>org.wso2.carbon.apimgt.impl.token.DefaultClaimsRetriever</ClaimsRetrieverImplClass> org.wso2.carbon.apimgt.impl.token.D

我想用APIM生成的JWT将所有声明包含在我们的辅助用户存储中。我们正在为当前任务使用隐式身份验证,因此用户必须向IS进行身份验证。我们将联合身份验证与JIT配置结合使用

我已启用:

<ClaimsRetrieverImplClass>org.wso2.carbon.apimgt.impl.token.DefaultClaimsRetriever</ClaimsRetrieverImplClass>
org.wso2.carbon.apimgt.impl.token.DefaultClaimsRetriever
并设置:

<ConsumerDialectURI>http://wso2.org/claims</ConsumerDialectURI>
http://wso2.org/claims
并启用:

<EnableTokenGeneration>true</EnableTokenGeneration>
true
但是生成的JWT不包括用户的数据,只有标准网关声明,包括终端用户

我已经确认用户是在DB中创建的,并且用户的声明存储在表UM_user_属性中。我注意到在主用户存储(非联邦)中,UM_user_属性为空,并且填充了UM_声明。可能是JIT资源调配将数据放在一个未经ClaimsManager检查的表中

如何让用户的声明(如电子邮件)显示在JWT中

是5.0.0
APIM 1.8.0

对于任何感兴趣的人来说,这里有两条线索让我走上了解决问题的道路

  • 如果数据来自主用户存储,我会更成功。我不相信使用辅助用户存储是行不通的,但我只是在切换到主用户存储之后才成功,而且我还没有测试过切换回主用户存储

  • JWT配置需要在执行KeyManager职责的服务器上完成。在我们的例子中,我们有一个密钥管理器,所以我们必须在IS服务器上对api-manager.xml进行配置更改

  • 我正在看,但我不知道如何设置我的应用程序。请帮帮我!