我需要配置Keycloak,以便它创建一个JWT,其中声明“ sub”填充了用户名,而不是sub中的默认userId。
这表示代替此令牌:
{
"jti": "b1384883-9b59-4788-b09f-98b40b7e3c3b",
...
"sub": "fbdb4e4a-6e93-4b08-a1e7-0b7bd08520a6",
"preferred_username": "m123456"
}
我需要接收:
{
"jti": "b1384883-9b59-4788-b09f-98b40b7e3c3b",
...
"sub": "m123456",
"preferred_username": "m123456"
}
您能建议怎么做吗?
我尝试了用户名映射器,但是它添加了第二个“ sub”声明,并且jwt无效。
答案 0 :(得分:2)
或这种方式:使用用户属性映射器类型。
mapping user property to claim
{
"id": "5d45fe41-83c6-4457-807b-5240ff7c09b9",
"name": "UsernameInSubject",
"protocol": "openid-connect",
"protocolMapper": "oidc-usermodel-property-mapper",
"consentRequired": false,
"config": {
"userinfo.token.claim": "true",
"user.attribute": "username",
"id.token.claim": "true",
"access.token.claim": "true",
"claim.name": "sub",
"jsonType.label": "String"
}
答案 1 :(得分:0)