WildFly Elytron 用于多个领域的管理身份验证

时间:2021-05-27 15:11:31

标签: wildfly elytron

我正在尝试配置 WildFly Elytron 以允许在管理界面上使用两个不同的领域进行身份验证,并具有后备功能。

例如,我有一个 ManagementRealm 和一个 MyLDAPRealm 想要使用。如果用户在 ManagementRealm 中被识别,则该用户应该有权访问管理界面。如果没有,我想尝试MyLDAPRealm。如果用户这次被识别,他应该可以访问管理界面。如果没有,它应该失败。 简单后备。

我更新了 standalone.xml 配置以使用 Elytron,但它目前无法正常工作,并且文档没有达到预期的帮助。目前我有以下配置位。

管理界面正在使用我要配置的认证工厂:

<management-interfaces>
    <http-interface http-authentication-factory="management-http-authentication" ssl-context="localhostSslContext">
      <http-upgrade enabled="true" sasl-authentication-factory="management-sasl-authentication"/>
      <socket-binding http="management-http" https="management-https"/>
    </http-interface>
</management-interfaces>

认证工厂链接到我将更新的管理域:

<http-authentication-factory name="management-http-authentication" security-domain="ManagementDomain" http-server-mechanism-factory="global">
    <mechanism-configuration>
        <mechanism mechanism-name="DIGEST">
            <mechanism-realm realm-name="Management and LDAP"/>
        </mechanism>
    </mechanism-configuration>
</http-authentication-factory>

我更新的管理域包括一个额外的领域:

<security-domain name="ManagementDomain" default-realm="ManagementRealm" permission-mapper="default-permission-mapper">
  <realm name="ManagementRealm" role-decoder="groups-to-roles"/>
  <realm name="MyLDAPRealm" role-decoder="groups-to-roles"/>
  <realm name="local" role-mapper="super-user-mapper"/>
</security-domain>

使用此配置,如果用户在 ManagementRealm 中,则通过身份验证并允许其进入,但如果它在 MyLDAPRealm 中,则不会。

这种配置是否可行,还是我在 Elytron 链中遗漏了什么?

1 个答案:

答案 0 :(得分:0)