如何在WSO2 API Manager 4.4.0中全局配置JWT自动包含用户邮箱声明?
解决WSO2 API Manager 4.4.0全局自动在JWT中包含用户邮箱声明的方案
你可以通过以下全局配置实现无需手动逐个配置应用,让所有生成的JWT自动携带用户邮箱声明:
配置全局JWT声明规则
在<APIM_HOME>/repository/conf/deployment.toml中添加以下配置,指定全局JWT声明的配置文件路径:[apim.jwt] enable = true claim_config = "conf/jwt-claim-config.xml"创建全局声明配置文件
在<APIM_HOME>/repository/conf目录下新建jwt-claim-config.xml文件,写入以下内容,将邮箱声明设为必填:<JwtClaimConfig> <Claims> <Claim> <ClaimUri>http://wso2.org/claims/emailaddress</ClaimUri> <Mandatory>true</Mandatory> <DisplayName>Email Address</DisplayName> </Claim> </Claims> </JwtClaimConfig>这里的
ClaimUri要和你用户存储中邮箱属性对应的声明URI一致,默认JDBC用户存储用的就是http://wso2.org/claims/emailaddress,如果是自定义用户存储,替换成对应的URI即可。重启WSO2 APIM服务
保存配置后,重启API Manager服务,让全局配置生效。验证效果
新建一个应用并发布API调用,获取生成的JWT令牌,解码后即可看到emailaddress声明已自动包含其中,无需再手动在Carbon控制台配置单个服务提供者的声明。
内容的提问来源于stack exchange,提问作者Alessandro Bertozzi
相关产品推荐
相关产品推荐

