如何使用外部标识提供者设置 ACR 值



我已经配置了一个外部身份提供程序(挪威的,Signicat,BankID),它们需要将"acr_value"设置为授权调用的查询参数。

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

有效授权网址示例:

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中设置该值以使其工作。

提前感谢帮助

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

使用包装器
  1. :您可以设置一个python包装器(httpd/flask),它将拦截每个请求,并在涉及acr_value时通过附加缺少的术语来更改它。

  2. 使用作用域: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

最新更新