8.4. OSGi コンテナーでの LDAP 認証の有効化


このセクションでは、OSGi コンテナーで LDAP レルムを設定する方法について説明します。新しいレルムはデフォルトの karaf レルムを上書きするため、コンテナーは X.500 ディレクトリーサーバーに保存されているユーザーエントリーを基にしてクレデンシャルを認証します。

参考資料

以下は、LDAP 認証に関する詳細なドキュメントです。

スタンドアロン OSGi コンテナーの手順

スタンドアロン OSGi コンテナーで LDAP 認証を有効にするには、以下を実行します。

  1. X.500 Directory Server が実行されていることを確認します。
  2. ターミナルウィンドウで次のコマンドを入力し、Karaf コンテナーを起動します。

    ./bin/fuse
  3. ldap-module.xml という名前のファイルを作成します。
  4. 例8.1「スタンドアロン用の JAAS レルム」ldap-module.xml にコピーします。

    例8.1 スタンドアロン用の JAAS レルム

    <?xml version="2.0" encoding="UTF-8"?>
    <blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"
      xmlns:jaas="http://karaf.apache.org/xmlns/jaas/v1.0.0"
      xmlns:ext="http://aries.apache.org/blueprint/xmlns/blueprint-ext/v1.0.0">
    
      <jaas:config name="karaf" rank="200">
        <jaas:module className="org.apache.karaf.jaas.modules.ldap.LDAPLoginModule"
                     flags="required">
          initialContextFactory=com.sun.jndi.ldap.LdapCtxFactory
          connection.url=ldap://localhost:389
          connection.username=cn=Directory Manager
          connection.password=DIRECTORY_MANAGER_PASSWORD
          connection.protocol=
          user.base.dn=ou=People,dc=localdomain
          user.filter=(&amp;(objectClass=inetOrgPerson)(uid=%u))
          user.search.subtree=true
          role.base.dn=ou=Groups,dc=localdomain
          role.name.attribute=cn
          role.filter=(uniquemember=%fqdn)
          role.search.subtree=true
          authentication=simple
        </jaas:module>
      </jaas:config>
    </blueprint>

    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 プロパティーを設定するときは、プロパティー値を二重引用符で 囲まない でください。

  5. 新しい LDAP モジュールをデプロイするには、ldap-module.xml を Karaf コンテナーの deploy/ ディレクトリー (ホットデプロイ) にコピーします。

    LDAP モジュールは自動的にアクティブ化されます。

    注記

    その後、LDAP モジュールをアンデプロイする必要がある場合は、Karaf コンテナーの実行中ldap-module.xml ファイルを deploy/ ディレクトリーから削除することで実行できます。

LDAP 認証のテスト

以下のように Karaf client ユーティリティーを使用して実行中のコンテナーに接続し、新しい LDAP レルムをテストします。

  1. 新しいコマンドプロンプトを開きます。
  2. Karaf InstallDir/bin ディレクトリーに移動します。
  3. 以下のコマンドを入力し、ID jdoe を使用して実行中のコンテナーインスタンスにログインします。

    ./client -u jdoe -p secret

    コンテナーのリモートコンソールに正常にログインする必要があります。コマンドコンソールで、jaas: と入力した後に [Tab] キーを押します (コンテンツ補完を使用)。

    jdoe@root()> jaas:
    Display all 31 possibilities? (31 lines)?
    jaas:cancel
    jaas:group-add
    ...
    jaas:whoami

    jdoe がすべての jaas コマンド (admin と一致) にアクセスできることが確認できるはずです。

  4. logout コマンドを入力して、リモートコンソールからログアウトします。
  5. 以下のコマンドを入力し、ID janedoe を使用して実行中のコンテナーインスタンスにログインします。

    ./client -u janedoe -p secret

    コンテナーのリモートコンソールに正常にログインする必要があります。コマンドコンソールで、jaas: と入力した後に [Tab] キーを押します (コンテンツ補完を使用)。

    janedoe@root()> jaas:
    Display all 25 possibilities? (25 lines)?
    jaas:cancel
    jaas:group-add
    ...
    jaas:users

    janedoe がほぼすべての jaas コマンド (manager と一致) にアクセスできることが確認できるはずです。

  6. logout コマンドを入力して、リモートコンソールからログアウトします。
  7. 以下のコマンドを入力し、ID crider を使用して実行中のコンテナーインスタンスにログインします。

    ./client -u crider -p secret

    コンテナーのリモートコンソールに正常にログインする必要があります。コマンドコンソールで、jaas: と入力した後に [Tab] キーを押します (コンテンツ補完を使用)。

    crider@root()> jaas:
    jaas:manage
    jaas:realm-list
    jaas:realm-manage
    jaas:realms
    jaas:user-list
    jaas:users

    crider は 5 つの jaas コマンド (viewer ロールと一致) のみにアクセスできることが確認できるはずです。

  8. logout コマンドを入力して、リモートコンソールからログアウトします。

トラブルシューティング

LDAP 接続のテスト中に問題が発生した場合は、ログレベルを DEBUG に引き上げ、LDAP サーバーへの接続で何が起こっているかを詳細にトレースします。

以下の手順を実行します。

  1. Karaf コンソールから以下のコマンドを入力し、ログレベルを DEBUG に引き上げます。

    log:set DEBUG
  2. Karaf ログをリアルタイムで観察します。

    log:tail

    ログリストからエスケープするには、Ctrl-C を入力します。

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.