Ann*_*era 4 arrays mapper keycloak okta group
我正在使用 Keycloak 18.0.2。Okta 是我配置的身份提供商之一。我正在使用 OIDC 提供商(不是 SAML)。我想将来自 Okta 的传入组声明映射到我在 Keycloak 中定义的用户组。我找不到很多关于如何在传入列表中搜索特定传入组的示例(Okta 中的组声明是一个列表,又名数组)。这意味着,在 Okta 中,如果我要预览 Okta 授权服务器的令牌,令牌将如下所示:
{
...
"scp": [
"openid"
],
"auth_time": 1000,
"sub": "testuser@xyz.com",
...
"groups": [
"Group1",
"Group2",
"Group3"
]...
}
Run Code Online (Sandbox Code Playgroud)
在Keycloak中,我定义了一个名为“AsiaPacific”的用户组。在 keycloak 身份映射器提供程序详细信息屏幕中,我想说,如果传入组声明包含“Group1”,则映射到组“AsiaPacific”,但我似乎无法使其工作。我在此处的“名称”和“值”字段中输入什么,因为无论我指定什么,它似乎都不起作用?同样,传入的组声明的值不是字符串,而是字符串数组。提前致谢。
让它工作。调试Keycloak代码后,我发现了问题所在。长话短说,我的 Okta 授权服务器中定义的组声明正在名为“FEDERATED_ACCESS_TOKEN_RESPONSE”的“访问”令牌中传递。Keycloak 代码期望在“VALIDATED_ID_TOKEN”或“VALIDATED_ACCESS_TOKEN”令牌中看到来自 Okta 的组声明。有关详细信息,请参阅github.com/keycloak/keycloak/discussions/13646。