如何根据Keycloak中的声明值将声明映射到角色?

时间:2019-03-13 23:02:39

标签: oauth-2.0 keycloak

我正在使用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 Bgroup=view)中,只有其中之一被触发。

如何为每个IdP创建一个映射器,以根据(声明名称,声明值)的组合设置Keycloak角色?

0 个答案:

没有答案