有没有办法让作为SAML IDP代理的Keycloak在不设置映射器的情况下将所有角色传递给客户端?

时间:2019-01-18 09:27:18

标签: java wildfly saml keycloak

我们要使用Keycloak作为第三方IDP的SAML代理。我们的第三方IDP通过用户组作为角色属性传递,我们希望这些传递给客户。

但是我们并不预先了解所有组,因此我们只是希望它们进入客户端,而无需Keycloak过滤掉它们。

如果您有适当的映射器,则出现的keycloak仅将它们传递给客户端,这需要事先了解第三方IDP组,并在创建新组时被告知。

是否可以配置Keycloak通过所有Role属性传递给客户端,而不只是我明确映射的那些?我只希望IDP发送的所有内容都能传递给客户端。我以为客户端的“允许最大范围”设置是答案,但似乎没有。

1 个答案:

答案 0 :(得分:0)

我最终要做的是创建自己的IdentityProviderMapper,类似于Keycloak中的那个:

https://github.com/keycloak/keycloak/blob/master/services/src/main/java/org/keycloak/broker/saml/mappers/AttributeToRoleMapper.java

然后我提供我自己的逻辑来通过从IDP的所有角色,创造他们,如果他们不存在,并授予/基于SAML断言中的内容从用户撤销他们。