如何使用外部身份提供商设置 ACR 值

时间:2021-01-08 16:38:28

标签: keycloak

我已经配置了一个外部身份提供者(挪威人、Signicat、BankID),他们需要将“acr_value”设置为授权调用的查询参数。

这是我想添加的请求参数:acr_values=urn:signicat:oidc:method:nbid

有效授权 URL 示例:

<块引用>

https://preprod.signicat.com/oidc/authorize?response_type=code&scope=openid+profile&client_id=&redirect_uri=https://labs.signicat.com/redirect&state=123abc&acr_values=urn:signicat:oidc:method:nbid

问题是我在配置身份提供者时看不到在 Keycloak UI 中设置它的位置和方式。我下载了 Keycloak 源代码以查看是否在那里找到了任何东西,我在 AbstractOAuth2IdentityProvider 类中看到了它,但我看不到如何在 Keycloak UI 中设置该值以使其工作。

在此先感谢您的帮助

1 个答案:

答案 0 :(得分:0)

据我所知,Keycloak 不允许这样的自定义,这里有一些工作:

  1. 使用范围:keycloak 并不允许您在 authz 中添加自定义术语,但您仍然可以使用经典范围,其想法是将 acr_value 的内容存储在范围中,并且由于它的 OIDC,您可以还可以使用声明,例如:

    https://preprod.signicat.com/oidc/authorize?response_type=code&scope=openid+profile+acr_values&client_id=&redirect_uri=https://labs.signicat.com/redirect&state=123abc