第5章 LDAP での管理インターフェースのセキュリティー保護

管理インターフェースは、LDAP サーバー (Microsoft Active Directory を含む) に対して認証できます。これは、LDAP authenticator を使用して実行できます。LDAP オーセンティケーターは、最初にリモートディレクトリーサーバーへの接続 (アウトバウンド LDAP 接続を使用) を確立します。その後、ユーザーが認証システムに渡すユーザー名を使用して検索を実行し、LDAP レコードの完全修飾識別名 (DN) を探します。成功すると、クレデンシャルおよびユーザーによって提供されるパスワードとしてユーザーの DN で、LDAP サーバーへの新しい接続が確立されます。この 2 つ目の接続と LDAP サーバーへの認証に成功すると、DN が有効であることが検証され、認証に成功しました。

注記

LDAP による管理インターフェースのセキュリティー保護により、認証がダイジェストから BASIC/Plain に変更されます。これによりデフォルトで、ネットワーク上にユーザー名とパスワードが暗号化されずに送信されます。アウトバウンド接続で SSL/TLS を有効にして、このトラフィックを暗号化し、この情報をクリアで送信しないようにすることができます。

重要

LDAP を使用した管理インターフェースのセキュア化など、レガシーセキュリティーレルムが LDAP サーバーを使用して認証を実行する場合、JBoss EAP は 500 または内部サーバーエラー (LDAP サーバーにアクセスできない場合) を返します。この動作は、同じ条件下で、401、または未承認のエラーコードを返す JBoss EAP の以前のバージョンとは異なります。

5.1. Elytron の使用

LDAP と elytron サブシステムを使用して、管理インターフェースをアイデンティティーストアと同じようにセキュアにすることができます。elytron サブシステムとのセキュリティーにアイデンティティーストアを使用する方法は、『サーバーセキュリティーの設定方法』の「新規アイデンティティーストアでの管理インターフェースのセキュア保護」を参照してください。たとえば、管理コンソールを LDAP でセキュアにするには、以下を実行します。

注記

Active Directory LDAP サーバーが使用される場合など、JBoss EAP サーバーにパスワードを読み取るパーミッションがない場合は、定義された LDAP レルム上で direct-verificationtrue に設定する必要があります。この属性を使用すると、JBoss EAP サーバーではなく LDAP サーバー上で直接検証を実行できます。

LDAP アイデンティティーストアの例

/subsystem=elytron/dir-context=exampleDC:add(url="ldap://127.0.0.1:10389",principal="uid=admin,ou=system",credential-reference={clear-text="secret"})

/subsystem=elytron/ldap-realm=exampleLR:add(dir-context=exampleDC,identity-mapping={search-base-dn="ou=Users,dc=wildfly,dc=org",rdn-identifier="uid",user-password-mapper={from="userPassword"},attribute-mapping=[{filter-base-dn="ou=Roles,dc=wildfly,dc=org",filter="(&(objectClass=groupOfNames)(member={0}))",from="cn",to="Roles"}]})

/subsystem=elytron/simple-role-decoder=from-roles-attribute:add(attribute=Roles)

/subsystem=elytron/security-domain=exampleLdapSD:add(realms=[{realm=exampleLR,role-decoder=from-roles-attribute}],default-realm=exampleLR,permission-mapper=default-permission-mapper)

/subsystem=elytron/http-authentication-factory=example-ldap-http-auth:add(http-server-mechanism-factory=global,security-domain=exampleLdapSD,mechanism-configurations=[{mechanism-name=BASIC,mechanism-realm-configurations=[{realm-name=exampleApplicationDomain}]}])

/core-service=management/management-interface=http-interface:write-attribute(name=http-authentication-factory, value=example-ldap-http-auth)

reload

5.1.1. アウトバウンド LDAP 接続での双方向 SSL/TLS の Elytron の使用

LDAP を使用して管理インターフェースをセキュアにする場合、双方向 SSL/TLS を使用するようアウトバウンド LDAP 接続を設定できます。これを行うには、ssl-context を作成し、ldap-realm が使用する dir-context に追加します。双方向 SSL/TLS ssl-context の作成は、『サーバーセキュリティーの設定方法』の「Elytron サブシステムを使用してアプリケーションに対して双方向 SSL/TLS を有効化する手順」を参照してください。

警告

Red Hat では、影響するすべてのパッケージで TLSv1.1 または TLSv1.2 を利用するために SSLv2、SSLv3、および TLSv1.0 を明示的に無効化することを推奨しています。