8.4. OSGi コンテナーでの LDAP 認証の有効化
このセクションでは、OSGi コンテナーで LDAP レルムを設定する方法について説明します。新しいレルムはデフォルトの karaf レルムを上書きするため、コンテナーは X.500 ディレクトリーサーバーに保存されているユーザーエントリーを基にしてクレデンシャルを認証します。
参考資料 リンクのコピーリンクがクリップボードにコピーされました!
以下は、LDAP 認証に関する詳細なドキュメントです。
- LDAPLoginModule オプション - 詳細については、「JAAS LDAP ログインモジュール」 を参照してください。
- その他のディレクトリーサーバーの設定 - 本チュートリアルは 389-DS のみを取り上げます。Microsoft Active Directory などの他の Directory Server を設定する方法について、詳細は 「さまざまなディレクトリーサーバーのフィルター設定」 を参照してください。
スタンドアロン OSGi コンテナーの手順 リンクのコピーリンクがクリップボードにコピーされました!
スタンドアロン OSGi コンテナーで LDAP 認証を有効にするには、以下を実行します。
- X.500 Directory Server が実行されていることを確認します。
ターミナルウィンドウで次のコマンドを入力し、Karaf コンテナーを起動します。
./bin/fuse
./bin/fuseCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
ldap-module.xmlという名前のファイルを作成します。 例8.1「スタンドアロン用の JAAS レルム」 を
ldap-module.xmlにコピーします。例8.1 スタンドアロン用の JAAS レルム
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ldap-module.xmlファイルで以下の設定をカスタマイズする必要があります。- connection.url
-
この URL を Directory Server インスタンスの実際の場所に設定します。通常、この URL の形式は
ldap://Hostname:Portです。たとえば、389 Directory Server のデフォルトポートは IP ポート389です。 - connection.username
-
Directory Server への接続を認証するために使用されるユーザー名を指定します。389 Directory Server の場合、デフォルトは通常
cn=Directory Managerです。 - connection.password
- Directory Server への接続に使用するクレデンシャルのパスワード部分を指定します。
- 認証
認証プロトコルには、次のいずれかの選択肢を指定できます。
-
simpleの場合、ユーザークレデンシャルが提供され、connection.usernameオプションおよびconnection.passwordオプションを設定する義務があることを意味します。 noneの場合、認証が行われないことを意味します。この場合、connection.usernameおよびconnection.passwordオプションを設定しないでください。このログインモジュールは、
karafという名前の JAAS レルムを作成します。これは、Fuse によって使用されるデフォルトの JAAS レルムと同じ名前です。0より大きいrank属性の値でこのレルムを再定義すると、ランク0を持つ標準karafレルムがオーバーライドされます。LDAP を使用するように Fuse を設定する方法について、詳細は 「JAAS LDAP ログインモジュール」 を参照してください。
重要上記の JAAS プロパティーを設定するときは、プロパティー値を二重引用符で 囲まない でください。
-
新しい LDAP モジュールをデプロイするには、
ldap-module.xmlを Karaf コンテナーのdeploy/ディレクトリー (ホットデプロイ) にコピーします。LDAP モジュールは自動的にアクティブ化されます。
注記その後、LDAP モジュールをアンデプロイする必要がある場合は、Karaf コンテナーの実行中 に
ldap-module.xmlファイルをdeploy/ディレクトリーから削除することで実行できます。
LDAP 認証のテスト リンクのコピーリンクがクリップボードにコピーされました!
以下のように Karaf client ユーティリティーを使用して実行中のコンテナーに接続し、新しい LDAP レルムをテストします。
- 新しいコマンドプロンプトを開きます。
-
Karaf
InstallDir/binディレクトリーに移動します。 以下のコマンドを入力し、ID
jdoeを使用して実行中のコンテナーインスタンスにログインします。./client -u jdoe -p secret
./client -u jdoe -p secretCopy to Clipboard Copied! Toggle word wrap Toggle overflow コンテナーのリモートコンソールに正常にログインする必要があります。コマンドコンソールで、
jaas:と入力した後に [Tab] キーを押します (コンテンツ補完を使用)。Copy to Clipboard Copied! Toggle word wrap Toggle overflow jdoeがすべてのjaasコマンド (adminと一致) にアクセスできることが確認できるはずです。-
logoutコマンドを入力して、リモートコンソールからログアウトします。 以下のコマンドを入力し、ID
janedoeを使用して実行中のコンテナーインスタンスにログインします。./client -u janedoe -p secret
./client -u janedoe -p secretCopy to Clipboard Copied! Toggle word wrap Toggle overflow コンテナーのリモートコンソールに正常にログインする必要があります。コマンドコンソールで、
jaas:と入力した後に [Tab] キーを押します (コンテンツ補完を使用)。Copy to Clipboard Copied! Toggle word wrap Toggle overflow janedoeがほぼすべてのjaasコマンド (managerと一致) にアクセスできることが確認できるはずです。-
logoutコマンドを入力して、リモートコンソールからログアウトします。 以下のコマンドを入力し、ID
criderを使用して実行中のコンテナーインスタンスにログインします。./client -u crider -p secret
./client -u crider -p secretCopy to Clipboard Copied! Toggle word wrap Toggle overflow コンテナーのリモートコンソールに正常にログインする必要があります。コマンドコンソールで、
jaas:と入力した後に [Tab] キーを押します (コンテンツ補完を使用)。Copy to Clipboard Copied! Toggle word wrap Toggle overflow criderは 5 つのjaasコマンド (viewerロールと一致) のみにアクセスできることが確認できるはずです。-
logoutコマンドを入力して、リモートコンソールからログアウトします。
トラブルシューティング リンクのコピーリンクがクリップボードにコピーされました!
LDAP 接続のテスト中に問題が発生した場合は、ログレベルを DEBUG に引き上げ、LDAP サーバーへの接続で何が起こっているかを詳細にトレースします。
以下の手順を実行します。
Karaf コンソールから以下のコマンドを入力し、ログレベルを
DEBUGに引き上げます。log:set DEBUG
log:set DEBUGCopy to Clipboard Copied! Toggle word wrap Toggle overflow Karaf ログをリアルタイムで観察します。
log:tail
log:tailCopy to Clipboard Copied! Toggle word wrap Toggle overflow ログリストからエスケープするには、Ctrl-C を入力します。