如何在WSO2返回的OpenId Connect令牌中添加自定义数据
在WSO2 OpenID Connect令牌中添加自定义
data属性配置步骤 要在WSO2返回的OIDC令牌里加入包含当前用户账号的data对象,按以下步骤操作:
1. 创建自定义本地声明
- 登录WSO2管理控制台,左侧菜单选择Claims > Add
- 填写声明信息:
- Claim URI:输入唯一标识,比如
http://wso2.org/claims/user_account - Display Name:填
User Account(方便识别) - Mapped Attribute:如果用WSO2内置用户存储,直接填
username(对应登录用户的账号字段;如果是外部用户存储,填对应账号的字段名)
- Claim URI:输入唯一标识,比如
- 点击Save保存声明
2. 配置服务提供者(SP)的声明映射
- 进入Service Providers,找到目标SP后点击Edit
- 切换到Claim Configuration标签页
- 在Requested Claims区域,点击Add Claim,搜索刚才创建的
User Account声明并添加 - 点击Add Custom Claim Dialect,添加嵌套结构的声明映射:
- External Claim:填
data.user_account(这就是JWT里最终的键路径) - Local Claim:选择刚才创建的
http://wso2.org/claims/user_account
- External Claim:填
- 保存SP配置
3. (可选)调整Token包含范围
- 如果需要在Access Token也包含该字段,进入SP的OAuth/OpenID Connect Configuration,勾选Include all claims in the access token(或者在Claim Configuration里单独指定Access Token的声明)
- 若用Resident IDP,可在Identity Providers > Resident > Claim Configuration里统一配置哪些声明要包含在Token中
4. 验证结果
- 发起OIDC授权流程获取ID Token/Access Token
- 用JWT解码工具解析Token,就能看到类似这样的结构:
{ "at_hash": "xxxxxx", "sub": "tester", "data": { "user_account": "testlogin" }, // 其他默认声明... }
注意:如果需要给
data添加更多字段,重复上述步骤,把外部声明设为data.xxx格式即可,WSO2会自动将这些嵌套键组合成data对象。
内容的提问来源于stack exchange,提问作者Tushar
相关产品推荐
相关产品推荐

