5.2. レガシーのコア管理認証の使用
レガシー security
サブシステムを使用して管理インターフェイスの認証ソースとして LDAP ディレクトリーサーバーを使用するには、以下の手順を実行する必要があります。
LDAP サーバーへアウトバウンド接続を作成します。
アウトバウンド LDAP 接続を作成する目的は、セキュリティーレルム (および JBoss EAP インスタンス) が LDAP サーバーへの接続を確立できるようにすることです。これは、セキュリティードメインの
Database
ログインモジュールと使用するデータソースを作成する場合と似ています。LDAP 送信接続には、以下の属性を使用することができます。
属性 必須 説明 url
必要
ディレクトリーサーバーの URL アドレス。
search-dn
不要
検索の実行を許可されているユーザーの完全識別名 (DN)
search-credential
不要
検索の実行を許可されているユーザーのパスワード。この要素でサポートされる属性は次のとおりです。
-
store
: 検索認証情報の取得元となるクレデンシャルストアへの参照。 -
alias
: 参照ストアの認証情報のエイリアス。 -
type
: クレデンシャルストアから取得する認証情報タイプの完全修飾クラス名。 -
clear-text
: クレデンシャルストアを参照する代わりに、この属性を使用してクリアテキストのパスワードを指定できます。
initial-context-factory
不要
接続を確立するときに使用する最初のコンテキストファクトリー。デフォルトは
com.sun.jndi.ldap.LdapCtxFactory
です。security-realm
不要
接続の確立時に使用する設定済みの
SSLContext
を取得するために参照するセキュリティーレルム。referrals
不要
検索の実行時に参照元が見つかったときの動作を指定します。有効なオプションは
IGNORE
、FOLLOW
、およびTHROW
です。-
IGNORE
: デフォルトのオプション。参照元を無視します。 -
FOLLOW
: 検索中に参照元が見つかると、使用中のDirContext
はその参照元の照会に従おうとします。この属性は、2 番目のサーバーに接続するときに同じ接続設定を使用でき、参照元で使用される名前に到達できることを前提としています。 -
THROW
:DirContext
が、参照元が必要であることを示すLdapReferralException
の例外を送出します。セキュリティーレルムは、参照元に使用する別の接続を特定するように処理し、試行します。
always-send-client-cert
不要
デフォルトではサーバーのクライアント証明書は、ユーザーの認証情報の確認中には送信されません。
true
に設定すると、常に送信されます。handles-referrals-for
不要
接続が処理できる参照元を指定します。URI の一覧を指定する場合には、URI はスペースで区切る必要があります。この属性で、接続プロパティーのある接続を定義して、参照元の照会に従うのに別の認証情報が必要な場合に使用できます。これは、2 番目のサーバーの認証に異なる認証情報が必要な場合や、JBoss EAP のインストールから到達できない参照元の名前をサーバーが返す場合など、代わりのアドレスを使用できるので便利です。
注記search-dn
およびsearch-credential
は、ユーザーが指定したユーザー名とパスワードとは異なります。ここで提供される情報は、JBoss EAP インスタンスと LDAP サーバー間の最初の接続を確立するためのものです。この接続を使用することで、JBoss EAP は、今後認証を試行するユーザーの DN を検索できます。認証を行うユーザーの DN (検索の結果) とユーザーが入力したパスワードを使用して、2 番目の接続を別に確立して、認証プロセスを完了します。以下の LDAP サーバーの例の場合に、以下のような管理 CLI コマンドを使用して、アウトバウンド LDAP 接続を設定します。
表5.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
注記これにより、JBoss EAP インスタンスと LDAP サーバーとの間に暗号化されていない接続が作成されます。SSL/TLS を使用して暗号化された接続を設定する方法は、アウトバウンド LDAP 接続での SSL/TLS の使用 を参照してください。
-
LDAP 対応のセキュリティーレルムを新たに作成します。
アウトバウンド LDAP 接続が作成されると、その接続を使用するために新しい LDAP 対応セキュリティーレルムを作成する必要があります。
LDAP セキュリティーレルムは次の設定属性を使用します。
属性 説明 connection
LDAP ディレクトリーへの接続に使用する outbound-connections で定義された接続の名前。
base-dn
ユーザーの検索を開始するためのコンテキストの DN。
recursive
LDAP ディレクトリーツリー全体にわたって再帰的に検索を行うか、指定のコンテキストのみを検索するか。デフォルトは
false
です。user-dn
DN を保持するユーザーの属性。その後この情報を使用して、ユーザーの入力完了と同時に認証をテストします。デフォルトは
dn
です。allow-empty-passwords
この属性は、空のパスワードを受け入れるかどうかを決定します。デフォルト値は
false
です。username-attribute
ユーザーを検索する属性の名前。このフィルターは、ユーザーが入力したユーザー名と、指定の属性を照合する簡単な検索を実行します。
advanced-filter
指定のユーザー ID をもとにしたユーザー検索に使用する完全に定義されたフィルター。この属性の標準の LDAP 構文内には、フィルタークエリーが含まれます。フィルターには、
{0}
形式の変数を含める必要があります。これは後で、ユーザーが指定したユーザー名に置き換えられます。詳細およびadvanced-filter
の例は、Combining LDAP and RBAC for Authorization section を参照してください。警告セキュリティーの面で深刻な問題をもたらす可能性があるので、空白の LDAP パスワードは使用できないようにすることが重要です。この動作が環境で特に必要される場合を除き、空のパスワードは使用できず、allow-empty-passwords は false のままになります。
以下は、
ldap-connection
アウトバウンド LDAP 接続を使用して LDAP が有効なセキュリティーレルムを設定する管理 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
管理インターフェイスの新しいセキュリティーレルムを参照します。セキュリティーレルムが作成されており、アウトバウンド LDAP 接続を使用している場合には、管理インターフェイスで新しいセキュリティーレルムを参照する必要があります。
/core-service=management/management-interface=http-interface/:write-attribute(name=security-realm,value="ldap-security-realm")
注記ここで使用する管理 CLI コマンドは、JBoss EAP スタンドアロンサーバーを実行していることを仮定しています。JBoss EAP 管理対象ドメインの管理 CLI を使用する場合の詳細は 管理 CLI ガイド を参照してください。
5.2.1. アウトバウンド LDAP 接続での双方向 SSL/TLS の使用
以下の手順に従って、SSL/TLS でセキュリティーを確保したアウトバウンド LDAP 接続を作成します。
Red Hat では、影響するすべてのパッケージで TLSv1.1 または TLSv1.2 を利用するために SSLv2、SSLv3、および TLSv1.0 を明示的に無効化することを推奨しています。
使用するアウトバウンド LDAP 接続のセキュリティーレルムを設定します。
セキュリティーレルムには、JBoss EAP サーバーが LDAP サーバーとの間の通信の復号化/暗号化に使用するキーを使用して設定したキーストアを含める必要があります。このキーストアを使用することで、JBoss EAP インスタンスは LDAP サーバーに対して自己検証もできるようになります。セキュリティーレルムには、LDAP サーバーの証明書または、LDAP サーバーの証明書の署名に使用する認証局の証明書を含むトラストストアを含める必要があります。キーストアとトラストストアの設定とこれらを使用するセキュリティーレルムの作成方法については、JBoss EAPサーバーセキュリティーの設定方法の 管理インターフェイス向けの双方向 SSL/TLS の設定 を参照してください。
SSL/TLS URL およびセキュリティーレルムを使用してアウトバウンド LDAP 接続を作成します。
レガシーのコア管理認証の使用 で定義されたプロセスと同様に、アウトバウンド LDAP 接続が作成されますが、LDAP サーバーと SSL/TLS セキュリティーレルムに SSL/TLS URL を使用します。
LDAP サーバーのアウトバウンド LDAP 接続と SSL/TLS セキュリティーレルムを作成したら、その情報を使用してアウトバウンド LDAP 接続を最新の情報に更新する必要があります。
SSL/TLS URL を使用してアウトバウンド接続を追加する CLI の例
/core-service=management/ldap-connection=ldap-connection/:add(search-credential=myPass, url=ldaps://LDAP_HOST:LDAP_PORT, search-dn="cn=search,dc=acme,dc=com")
SSL/TLS 証明書を使用したセキュリティーレルムの追加
/core-service=management/ldap-connection=ldap-connection:write-attribute(name=security-realm,value="CertificateRealm") reload
管理インターフェイスで使用できるように、アウトバウンド LDAP 接続を使用する新しいセキュリティーレルムを作成します。
レガシーのコア管理認証の使用 の指示に含まれる LDAP 対応のセキュリティーレルムの新規作成 および 管理インターフェイスでの新規セキュリティーレルムの参照 の手順を実行します。
注記ここで使用する管理 CLI コマンドは、JBoss EAP スタンドアロンサーバーを実行していることを仮定しています。JBoss EAP 管理対象ドメインの管理 CLI を使用する場合の詳細は 管理 CLI ガイド を参照してください。