Red Hat Training
A Red Hat training course is available for Red Hat JBoss Enterprise Application Platform
第3章 LDAP での管理インターフェースのセキュア化
管理インターフェイスは、デフォルトで設定されているプロパティーファイルベースのセキュリティーレルムの代わりに、LDAP サーバー (Microsoft Active Directory を含む) に対して認証できます。これは、LDAP authenticator を使用して実行できます。LDAP オーセンティケーターは、最初にリモートディレクトリーサーバーへの接続 (アウトバウンド LDAP 接続を使用) を確立します。その後、ユーザーが認証システムに渡すユーザー名を使用して検索を実行し、LDAP レコードの完全修飾識別名 (DN) を探します。成功すると、クレデンシャルおよびユーザーによって提供されるパスワードとしてユーザーの DN で、LDAP サーバーへの新しい接続が確立されます。この 2 つ目の接続と LDAP サーバーへの認証に成功すると、DN が有効であることが検証され、認証に成功しました。
LDAP による管理インターフェースのセキュリティー保護により、認証がダイジェストから BASIC/Plain に変更されます。これによりデフォルトで、ネットワーク上にユーザー名とパスワードが暗号化されずに送信されます。このトラフィックを暗号化し、この情報をクリアで送信しないようにするために、送信接続で SSL/TLS を有効に することができます。
3.1. 基本設定
LDAP Directory Server を管理インターフェイスの一部またはすべての認証ソースとして使用するには、次の手順を実行する必要があります。
3.1.1. 1.LDAP サーバーへのアウトバウンド接続の作成
アウトバウンド LDAP 接続を作成する目的は、セキュリティーレルム (および JBoss EAP インスタンス) が LDAP サーバーへの接続を確立できるようにすることです。これは、セキュリティードメインの Database ログインモジュールで使用するデータソースを作成する場合と同様です。
LDAP アウトバウンド接続は以下の属性を許可します。
| 属性 | 必須 | 説明 |
|---|---|---|
| url | ○ | ディレクトリーサーバーの URL アドレス。 |
| search-dn | × | 検索の実行が許可されているユーザーの完全識別名 (DN)。 |
| search-credential | × | 検索を実行する権限のあるユーザーのパスワード。 |
| initial-context-factory | × | 接続を確立するときに使用する初期コンテキストファクトリー。デフォルトは com.sun.jndi.ldap.LdapCtxFactory です。 |
| security-realm | × | 接続の確立時に使用する設定済みの SSLContext を取得するために参照するセキュリティーレルム。 |
| 参考資料 | × | 検索時に参照が発生する場合の動作を指定します。有効なオプションは IGNORE、FOLLOW、および THROW です。INGORE (デフォルトの動作) は単に紹介を無視します。FOLLOW: 検索時に参照が見つかると、DirContext はその参照のフォローを試みます。ここでは、別のサーバーに接続するために同じ接続設定が使用できることを前提とし、参照機能で使用されている名前に到達できることを前提としています。THROW に設定すると、DirContext は例外 (LdapReferralException) を出力して、参照が必要であることを示します。これは、セキュリティーレルムが処理し、参照に使用する代替接続を識別しようとします。 |
| handles-referrals-for | × | 接続を処理できる参照情報を指定します。URI の一覧を指定する場合、それらはスペースで区切ります。これにより、複数の異なる認証情報をたどる必要がある場合に、接続プロパティーを持つ接続が定義され、使用されます。これは、別の認証情報が 2 つ目サーバーに対して認証する必要がある場合や、JBoss EAP 6 インストールから到達できない参照表現にサーバーが名前を返し、代替のアドレスを送信できる場合に役に立ちます。 |
search-dn および search-credential は、ユーザーが提供するユーザー名とパスワードとは異なります。ここで提供される情報は、JBoss EAP インスタンスと LDAP サーバー間の初期接続を確立するために特に提供されます。この接続により、JBoss EAP は認証を試みるユーザーの DN を後続の検索することができます。(検索の結果となる) ユーザーの DN は認証を試み、入力したパスワードは認証プロセスを完了する際の第 2の (別の) 接続を確立するために使用されます。
LDAP サーバーの例を前提として、以下は、CLI コマンドとサーバーへのアウトバウンド LDAP 接続を設定するための結果の XML 設定です。
表3.1 LDAP サーバーの例
| 属性 | 値 |
|---|---|
| url | 127.0.0.1:389 |
| search-credential | myPass |
| search-dn | cn=search,dc=acme,dc=com |
アウトバウンド接続追加の CLI
/core-service=management/ldap-connection=ldap-connection/:add( \ search-credential=myPass, \ url=ldap://127.0.0.1:389, \ search-dn="cn=search,dc=acme,dc=com")
reload
結果の XML
<outbound-connections>
<ldap name="ldap-connection"
url="ldap://127.0.0.1:389"
search-dn="cn=search,dc=acme,dc=com"
search-credential="myPass"/>
</outbound-connections>
上記の CLI コマンドは、JBoss EAP 6 のスタンドアロンインスタンスを想定して実行されました。JBoss EAP 6 ドメインでの CLI の使用の詳細は、Red Hat JBoss Enterprise Application Platform 6 Administration and Configuration Guide の The Management CLI セクションを参照してください。
これにより、JBossEAP インスタンスと LDAP サーバーの間に 明確な 接続が作成されます。SSL/TLS を使用して暗号化された接続を設定する方法の詳細については、「アウトバウンド LDAP 接続に SSL/TLS を使用」。
3.1.2. 2.新しい LDAP 対応セキュリティーレルムの作成
アウトバウンド LDAP 接続を作成したら、使用する新しい LDAP 対応セキュリティーレルムを作成する必要があります。
LDAP セキュリティーレルムには、以下の設定属性があります。
| 属性 | 説明 |
|---|---|
| connection | LDAP ディレクトリーへの接続に使用する outbound-connections で定義された接続の名前。 |
| base-dn | ユーザー検索を開始するためのコンテキストの識別名 |
| 再帰 | 検索が LDAP ディレクトリーツリー全体で再帰的であるか、指定したコンテキストのみを検索するか。デフォルトは false です。 |
| user-dn | 識別名を保持するユーザーの属性。この後、ユーザー完了時の認証テストに使用されます。デフォルトは dn です。 |
| allow-empty-passwords | この属性は、空のパスワードを許可するかどうかを決定します。この属性のデフォルト値は false です。 |
| username-attribute | username-attribute または advanced-filter のいずれかを指定する必要があります。ユーザーを検索する属性の名前。このフィルターは、ユーザーが入力したユーザー名が指定した属性と一致する単純な検索を実行します。 |
| advanced-filter | username-attribute または advanced-filter のいずれかを指定する必要があります。提供されたユーザー ID に基づいてユーザーを検索するために使用される、完全に定義されたフィルター。この属性には、標準の LDAP 構文のフィルタークエリーが含まれます。フィルターには、{0} 形式の変数が含まれている必要があります。これは、ユーザーが指定したユーザー名で後ほど置き換えられます。advanced-filter の使用に関する詳細と例 は、LDAP と RBAC の認証の組み合わせセクションの <advanced-filter> の部分にあります。 |
空の LDAP パスワードは、セキュリティ上の懸念が大きいため許可されていませんこの動作が環境内で特に必要でない限り、空のパスワードは許可されず、allow-empty-passwords は false のままになるようにしてください。
ldap-connection アウトバウンド LDAP 接続を使用して LDAP 対応のセキュリティーレルムを設定するための CLI コマンドと結果の XML 設定を次に示します。
CLI
/core-service=management/security-realm=ldap-security-realm:add
/core-service=management/security-realm=ldap-security-realm/authentication=ldap:add( \ connection="ldap-connection", base-dn="cn=users,dc=acme,dc=com", \ username-attribute="sambaAccountName")
reload
結果の XML
<security-realm name="ldap-security-realm">
<authentication>
<ldap connection="ldap-connection" base-dn="cn=users,dc=acme,dc=com">
<username-filter attribute="sambaAccountName"/>
</ldap>
</authentication>
</security-realm>
上記の CLI コマンドは、JBoss EAP 6 のスタンドアロンインスタンスを想定して実行されました。JBoss EAP 6 ドメインでの CLI の使用の詳細は、Red Hat JBoss Enterprise Application Platform 6 Administration and Configuration Guide の The Management CLI セクションを参照してください。
3.1.3. 3.管理インターフェースの新しいセキュリティーレルムを参照
セキュリティーレルムが作成され、アウトバウンド LDAP 接続を使用している場合、新しいセキュリティーレルムは管理インターフェースで参照される必要があります。
HTTP インターフェイスを更新するための CLI コマンド
/core-service=management/management-interface=http-interface/:write-attribute( \ name=security-realm,value="ldap-security-realm")
ネイティブインターフェイスを更新するための CLI コマンド
/core-service=management/management-interface=native-interface/:write-attribute( \ name=security-realm,value="ldap-security-realm")
結果の XML
<management-interfaces>
<native-interface security-realm="ldap-security-realm">
<socket-binding native="management-native"/>
</native-interface>
<http-interface security-realm="ldap-security-realm">
<socket-binding http="management-http"/>
</http-interface>
</management-interfaces>
上記の CLI コマンドは、JBoss EAP 6 のスタンドアロンインスタンスを想定して実行されました。JBoss EAP 6 ドメインでの CLI の使用の詳細は、Red Hat JBoss Enterprise Application Platform 6 Administration and Configuration Guide の The Management CLI セクションを参照してください。