Keycloak 角色映射程序问题的KeyClope Saml属性

Keycloak 角色映射程序问题的KeyClope Saml属性,keycloak,Keycloak,我们使用KeyClope 7.0.1版作为身份代理,通过Azure AD验证我们的应用程序GUI。为此,我们添加了应用程序GUI(六个GUI)作为OIDC客户端,Azure AD作为SAML2.0身份提供程序。我们还定义了“Saml属性到角色映射器”类型的idp映射器,用于将Azure返回的应用程序角色映射到GUI客户端角色。客户端和角色映射器配置如下所示: 我们已经配置了六个GUI客户端DQI、PLF、BSF、USDP、IAM和NAP GUI及其角色(每个GUI两个角色),例如DQI GUI(

我们使用KeyClope 7.0.1版作为身份代理,通过Azure AD验证我们的应用程序GUI。为此,我们添加了应用程序GUI(六个GUI)作为OIDC客户端,Azure AD作为SAML2.0身份提供程序。我们还定义了“Saml属性到角色映射器”类型的idp映射器,用于将Azure返回的应用程序角色映射到GUI客户端角色。客户端和角色映射器配置如下所示:

  • 我们已经配置了六个GUI客户端DQI、PLF、BSF、USDP、IAM和NAP GUI及其角色(每个GUI两个角色),例如DQI GUI(DQI_只读和DQI_管理_编辑)
  • 18客户端角色的idp映射器配置
  • =>6个只读映射器(dqi读卡器、plf读卡器等Azure角色)与_只读角色映射

    =>6个仅写映射器(dqi编写器、plf编写器等Azure角色)与_ADMIN_EDIT角色映射

    =>6个超级用户映射器(gui超级用户角色),映射到_ADMIN_EDIT角色

    GUI角色映射器

    GUI角色映射器定义

    超级用户角色映射器

    GUI超级用户角色映射器定义

    问题: 我们面临的问题是,当用户已经存在于keydape数据库(使用mariadb)中时,一些角色映射器就无法工作,例如

    如果用户在Azure中具有“gui超级用户角色”→

    预期行为:用户应该拥有所有六个客户端的管理编辑角色

    实际结果:用户仅获得三个客户端管理编辑角色,例如PLF、USDP和IAM角色映射不起作用

    请注意,如果用户不存在,并且用户是第一次登录的,那么角色映射可以正常工作,但从下一次开始它就不工作了,行为保持不变(我的意思是相同的角色映射集不工作,可能是因为从DB检索的角色总是相同的)

    为了解决此问题,我们将用例限制为一组简单的角色映射,例如,仅为gui超级用户Azure角色定义了六个角色映射器,并且我们发现角色映射在这种情况下运行良好

    因此,我们怀疑问题是否存在,因为我们正在定义多组角色映射(read/writer/superuser),并且正因为如此,我们看到了角色映射的问题

    我们还尝试检查keydape调试日志,但找不到有关角色映射问题的任何有用信息。实际上,没有关于失败的角色映射等的错误日志

    请在以下方面帮助我们:

  • 如果我们的用例可以定义三组角色映射器 (读/写/超级用户)用于GUI客户端和keyClope 支持它的开箱即用
  • 我们的角色映射器定义正确吗?或者我们遗漏了什么