我正在使用Keycloak作为Identity Broker。我有多个身份提供者连接在一起以提供身份信息。这些IdP都有自己的方式来传输应分配给用户的角色表示。
例如:
IdP A
:发送一个值为“ 1”,“ 2”或“ 3”的声明“ role” IdP B
:发送一个声明为“ group”的声明,其值为“ view”,“ edit”,“ admin” 对于IdP A
,我希望将role=1
的映射映射到名为“查看器”的角色,将role=2
的映射映射到称为“编辑器”的角色,并且{ {1}}映射到名为“管理员”的角色。
在role=3
的情况下,我希望将IdP B
的映射映射到“查看器”,将group=view
的映射映射到“编辑器”,并且将group=edit
的映射映射到转到“管理员”。
我曾尝试创建“从角色到角色”映射器,但这似乎并没有我希望的那样:如果我为每个声明值创建一个(因此,对于group=admin
,则为{ {1}},IdP B
,group=view
)中,只有其中之一被触发。
如何为每个IdP创建一个映射器,以根据(声明名称,声明值)的组合设置Keycloak角色?