如何从 Keycloak 为 OIDC 流程修改 JWT 中的现有声明?
How to modify existing claims in JWT from Keycloak for OIDC flow?
我正在为身份验证服务生成 JWT,我们使用 Keycloak 作为 OAuth 服务器。
我已经设置了一个领域 R、一个客户端 C 和一个用户 U。我设置了一个协议映射器以在“aud”中包含“C”。我为 U 生成了 JWTtoken,当我检查负载时,我看到 "aud": ["C", "account"]
。太好了,我希望 C
在场。但我不希望 "account"
出现在 "aud"
.
中
如何在 keycloak 中配置它?同样,作用域为 - "scope": "email profile test-client-rhs"
,我希望从中删除 "email profile"
。我一直在谷歌上搜索很多东西,并在 Keycloak 中尝试了不同的东西,但我无法让它以某种方式工作。
I generated the JWTtoken for U and when I check the payload, I see
"aud": ["C", "account"]. Which is great, I wanted C to be present. But
I do not want "account" to be present in the "aud".
您可以使用 Hardcoded claim
映射器来代替受众映射器:
Token Claim Name
设置为 aud
Claim value
设置为 C
Add to access token
设置为 ON
此映射器将用 "aud": "C"
覆盖原始声明 "aud": "account"
像这样:
How do I configure this in keycloak? Similarly, the scope reads -
"scope": "email profile test-client-rhs" and I wish to remove "email
profile" from it.
为此,您需要前往:
- 客户端所在的领域
- 去找客户select客户
- 单击“客户端范围”选项卡
- 从
"Assigned Default Client Scopes"
中删除范围 email
和 profile
像这样:
我正在为身份验证服务生成 JWT,我们使用 Keycloak 作为 OAuth 服务器。
我已经设置了一个领域 R、一个客户端 C 和一个用户 U。我设置了一个协议映射器以在“aud”中包含“C”。我为 U 生成了 JWTtoken,当我检查负载时,我看到 "aud": ["C", "account"]
。太好了,我希望 C
在场。但我不希望 "account"
出现在 "aud"
.
如何在 keycloak 中配置它?同样,作用域为 - "scope": "email profile test-client-rhs"
,我希望从中删除 "email profile"
。我一直在谷歌上搜索很多东西,并在 Keycloak 中尝试了不同的东西,但我无法让它以某种方式工作。
I generated the JWTtoken for U and when I check the payload, I see "aud": ["C", "account"]. Which is great, I wanted C to be present. But I do not want "account" to be present in the "aud".
您可以使用 Hardcoded claim
映射器来代替受众映射器:
Token Claim Name
设置为aud
Claim value
设置为C
Add to access token
设置为ON
此映射器将用 "aud": "C"
"aud": "account"
像这样:
How do I configure this in keycloak? Similarly, the scope reads - "scope": "email profile test-client-rhs" and I wish to remove "email profile" from it.
为此,您需要前往:
- 客户端所在的领域
- 去找客户select客户
- 单击“客户端范围”选项卡
- 从
"Assigned Default Client Scopes"
中删除范围
email
和 profile
像这样: