jwt - WSO2 身份服务器 - 在 JWT 中获取租户 ID
问题描述
请参阅此链接,我可以将租户域名信息添加到我们的 JWT 令牌中,sub
如下所示username@carbon.super
但我需要一种方法将 Tenand ID 信息像索赔一样放入 JWT。我怎样才能为 IS 5.10.0 做到这一点?
解决方案
IS OOTB 不支持它。但是您可以编写自定义声明提供程序示例并将其部署到 Identity Server 中。请参阅此示例以了解如何编写自定义声明提供程序。https://github.com/wso2/samples-is/tree/master/etc/custom-claim-provider。
如果是授权码授权或刷新令牌授权流程,请参考此实现https://github.com/wso2/samples-is/blob/master/etc/custom-claim-provider/src/main/java/org/wso2/ carbon/identity/custom/claim/provider/CustomClaimProvider.java#L57和
additionalClaims.put("tenantName", oAuthTokenReqMessageContext.getOauth2AccessTokenReqDTO().getTenantDomain());
additionalClaims.put("tenantId", OAuth2Util.getTenantId(oAuthTokenReqMessageContext.getOauth2AccessTokenReqDTO().getTenantDomain()));
如果它是隐式授权类型或混合流,请参考此和 https://github.com/wso2/samples-is/blob/master/etc/custom-claim-provider/src/main/java/org/wso2/ carbon/identity/custom/claim/provider/CustomClaimProvider.java#L44
additionalClaims.put("tenantName", oAuthAuthzReqMessageContext.getTenantDomain());
additionalClaims.put("tenantId", OAuth2Util.getTenantId(oAuthAuthzReqMessageContext.getTenantDomain()));
推荐阅读
- php - 为仪表板创建 jQuery 小部件的有效方法
- mysql - 如何找出哪一列的结果集?如果我们在单个表上使用 OR 运算符在 where 子句中写入 3 列
- amazon-web-services - AWS ElastiCache 集群和 AWS ElastiCache 复制组有什么区别?
- javascript - 用于两个切换的 jQuery/JavaScript if 语句
- c - 为什么要为链接器指定目标架构?
- mysql - MYSQL中按类别分组的每个财政年度的期初和期末余额总和
- linux - Vulkan.hpp 在一个系统上编译,但不在另一个系统上
- crystal-reports - 一个公式字段上的两个条件
- c# - 在 Asp.Net Core 3 Web App 中使用带有脚手架身份区域的标签助手
- c# - 使用 c# 设置文件夹的权限