IBM HTTP Server for WebSphere Application Server, Version 6.1
             オペレーティング・システム: AIX, HP-UX, Linux, Solaris, Windows

             目次と検索結果のパーソナライズ化

LDAP を使用した IBM HTTP Server 上での認証 (分散システム)

このセクションでは、IBM HTTP Server でファイルを保護するために LDAP を構成する方法を説明します。

始める前に

LDAP の LoadModule ディレクティブは、デフォルトでは IBM HTTP Server にロードされません。 LoadModule ディレクティブがないと、LDAP フィーチャーは使用できません。 LDAP 機能を使用可能にするには、以下のようにして、 IBM HTTP Server の httpd.conf ファイルに LoadModule ディレクティブを追加してください。

ご使用のコンピューターに LDAP クライアントがインストールされている場合は、 使用する値をさまざまな設定でテストするツールとして ldapsearch を使用することができます。

このタスクについて

LDAP (mod_ibm_ldap) ディレクティブの詳細説明を取得するには、 LDAP ディレクティブを参照してください。

プロシージャー

  1. httpd.conf IBM HTTP Server 構成ファイルを編集します。
  2. アクセスを制限するリソースを決定します。 例えば、<Directory "/secure_info"> とします。
  3. httpd.conf 内のディレクティブをディレクトリー・ロケーション (コンテナー) に追加し、ご使用の環境に固有の値で保護します。 以下に例を示します。
    • LdapConfigFile path_to_ldap.prop
    • AuthType Basic
    • AuthName "保護レルムのタイトル"
    • Require valid-user
  4. IBM HTTP Server を使用して 既存の LDAP インストールで認証を行う方法には、3 つのオプションがあります。
    • LDAP グループ・メンバーシップに基づいた許可。
      LDAP を使用して ユーザー・パスワードを確認し、LDAP で定義されたグループにそのユーザーが存在することを 確認します。
      注: ユーザーがリソースにアクセスできると識別するメンバーシップは、 グループの一部ですが、ユーザー自身の LDAP エントリーの一部ではありません。

      例えば、グループへのアクセスを制限するには、以下のディレクティブを追加します。

      LDAPRequire group grp1

      この形式の LDAPRequire の場合、グループを 以下のルールに準拠する LDAP リポジトリーで構成する必要があります (例のグループ名 grp1 を使用)。

      • 以下の検索フィルターに一致する LDAP リポジトリーにエントリーがあり、 値 groupofnames および groupofuniquenames は ldap.group.dnattributes で指定された値の例です。
        注: ldap.group.dnattributes の 適切な値は、LDAP スキーマ内のグループであると objectclasses が示すもののリストです。
        ldapsearch ... "(&(cn=grp1)(|(objectclass=groupofnames)
        (objectclass=groupofuniquenames)))"
      • grp1」の LDAP エントリーの一部として、以下に一致する一連の属性があります。 ここで、値 member および uniquemember は、 ldap.group.memberAttributes の値の例です。
        注: ldap.group.memberAttributes の適切な値は、 グループ内でメンバーシップであると objectclasses が示すもののリストです。これらのエントリーの値は、 ユーザーの識別名 (DN) です。
        ldapsearch ... "(&(cn=grp1)(|(objectclass=groupofnames)
        (objectclass=groupofuniquenames)))" member uniquemember 

        例えば、以下のようになります。

        ldapsearch -x -h myldapserver -D cn=root -w rootpw
        "(&(cn=grp1)(|(objectclass=groupofnames)(objectclass=groupofuniquenames)))" 
        member uniquemember
        dn: cn=group1,ou=myunit,o=myorg,c=US 
        member: cn=user1, ou=otherunit, o=myorg, c=US
        member: cn=user12, ou=otherunit, o=myorg, c=US 

        ldap.group.dnattributes にリストされたタイプのオブジェクトが、検索対象のグループのメンバーである場合、 これは、ldap.group.search.depth の深さまで同じ方式で再帰的に検索されます。

      • 最初に、IBM HTTP Server は ldap.group.name.filter および ldap.user.cert.filter を使用して、 ユーザーおよびグループに提供された CN を識別名 (DN) に変換します。 次に、IBM HTTP Server は、値がユーザー DN であるエントリーの基本としてグループ DN を使用して 検索を行います。

        例えば、以下のようになります。

        ldapsearch ... -b "cn=grp1,ou=myunit,o=myorg,c=US" 
        "|((member=cn=user1,ou=otherunit,o=myorg,c=US) 
        (uniquemember=cn=user1,ou=otherunit,o=myorg,c=US))"
        
    • ユーザーの LDAP 属性に基づいた許可。 LDAP を使用して、 ユーザー・パスワードを確認し、ユーザーが一連の属性と一致することを確認します (ユーザーがリソースにアクセスできると識別する属性は、 ユーザー自身の LDAP エントリーの一部です)。

      例えば、以下のようになります。

      LDAPRequire filter "(&(jobtitle=accountant)(location=newyork))"

      この形式の LDAPRequire を使用するには、IBM HTTP Server は ldap.user.cert.filter を使用して、 ユーザーに提供された CN を DN に変換する必要があります。IBM HTTP Server は、 ユーザー DN を基本として使用して検索を行い、 LDAPRequire ディレクティブで提供される検索フィルターを使用する必要もあります。結果が戻されれば、許可は成功です。

      例:

      ldapsearch ... -b "cn=user1,ou=otherunit,o=myorg,c=US" "(&(jobtitle=accountant)
      (location=newyork))" 

      LDAP 内の一部の属性 (動的役割 とも呼ばれます) は、LDAP サーバーによって動的に計算され、 検索フィルターで無効の異なるセマンティクスを持つ可能性があります。そのような値は、 上記の例で使用すると失敗し、 IBM HTTP Server での許可には使用できません。

    • 認証のみ: LDAP を使用し、ユーザー・パスワードのみを確認します。

      Require ディレクティブを使用して、特定のユーザーに制限したり、 AuthGroupFile を使用してフラット・グループ・ファイルを保守することができます。

  5. ldap.prop 構成ファイルを編集します。 このファイルがない場合は、IBM HTTP Server に同梱される ldap.prop.sample ファイルを使用することができます。 正しい値について質問がある場合は、LDAP サーバーの管理者へご確認ください。 ご使用の環境に適切な値で、以下のディレクティブを更新します。
    1. Web サーバー接続情報を入力します。
    2. SSL、LDAPS、または LDAP over SSL を使用する場合:
      • ldap.transport を SSL 値に変更します。
      • LDAPS プロトコルおよび適切なポート値 (例えば 636) を含むように、 ldap.URL を変更します。
      • SSL 鍵データベースが使用されるように構成します。以下に例を示します。
        ldap.key.fileName=/path_to/key.kdb
        
        ldap.key.file.password.stashFile=/path_to/stashfile
        ここで、stashfilebin/ldapstash コマンドによって作成されます。
        ldap.key.label=label
        ここで、label は、参照 key.kdb の IKEYMAN に表示される値です。

結果

mod_ibm_ldap ディレクティブを使用する検索は、 ldap.application.dn ユーザーとして認証を行うサーバー接続のプールを保守します。 最初の接続は、LDAP 保護された最初の要求が受け取られると作成されます。 接続は、その接続または他の要求の接続でのその後の検索のために、 指定された秒数 (ldap.idleConnection.timeout) の間は開かれています。

ログを読んでいる場合、 または IP トレースを見ている場合は、以下の一連のイベントが発生します。




サブトピック
Lightweight Directory Access Protocol
Lightweight Directory Access Protocol サーバーの照会
Secure Sockets Layer および Lightweight Directory Access Protocol のモジュール
SSL 証明書取り消しリスト
LDAP ディレクティブ
タスク・トピック    

ご利用条件 | フィードバック

最終更新: Feb 19, 2009 11:52:36 AM CST
http://publib.boulder.ibm.com/infocenter/wasinfo/v6r1/index.jsp?topic=/com.ibm.websphere.ihs.doc/info/ihs/ihs/tihs_ldapconfig.html