3.7 LDAP認証

Sentinel Rapid Deploymentは、データベース認証に加えて、LDAP認証もサポートしています。Sentinel Rapid DeploymentサーバでLDAP認証が可能になるように設定することによって、ユーザが自分のNovell eDirectoryまたはMicrosoft Active Directoryの資格情報を使用してSentinel Rapid Deploymentにログインできるようにできます。

3.7.1 概要

セキュリティで保護されたSSL接続を使用してLDAP認証するようにSentinel Rapid Deploymentサーバを設定できます。この時、LDAPディレクトリの匿名検索の使用または不使用を指定できます。

メモ:LDAPディレクトリに対する匿名検索を無効にする場合、Sentinel Rapid Deploymentサーバで匿名検索を使用するように設定しないでください。

  • 匿名検索: Sentinel Rapid DeploymentのLDAPユーザアカウントを作成する際、ディレクトリ名を指定する必要がありますが、ユーザの識別名(DN)を指定する必要はありません。

    LDAPユーザがSentinel Rapid Deploymentにログインすると、Sentinel Rapid Deploymentサーバが指定されたユーザ名に基づいてLDAPディレクトリに対する匿名検索を実行し、そのユーザに対応するDNを発見すると、そのDNを使用してLDAPディレクトリに対するユーザログインの認証を行います。

  • 非匿名検索: Sentinel Rapid DeploymentのLDAPユーザアカウントを作成する際、ディレクトリのユーザ名とユーザDNの両方を指定する必要があります。

    LDAPユーザがSentinel Rapid Deploymentにログインすると、Sentinel Rapid Deploymentサーバが指定されたユーザ名を使用してLDAPディレクトリに対するユーザログインの認証を行います。この時、LDAPディレクトリに対する匿名検索は実行されません。

    Active Directoryにのみ適用される別の方法があります。詳細については、Active DirectoryにおけるUserPrincipalName属性を使用した非匿名のLDAP認証を参照してください。

3.7.2 前提条件

LDAPサーバのCA証明書のエクスポート

LDAPサーバに対してセキュリティで保護されたSSL接続を行うには、Base64エンコードのファイルにエクスポートする必要があるLDAPサーバのCA証明書が必要です。

LDAPディレクトリにおける匿名検索の有効化

匿名検索を使用してLDAP認証を実行するには、LDAPディレクトリで匿名検索を有効にする必要があります。匿名検索は、デフォルトではeDirectoryでは有効、Active Directoryでは無効になっています。

LDAPディレクトリで匿名検索を有効にするには、次を参照してください。

3.7.3 LDAP認証を可能にするSentinelサーバの設定

  1. セクション 3.7.2, 前提条件の要件を満たしていることを確認してください。

  2. Sentinel Rapid Deploymentサーバにrootユーザでログインします。

  3. エクスポートされたLDAPサーバCA証明書ファイルを<install_directory>/configディレクトリにコピーします。

  4. 証明書ファイルの所有権とアクセス権を次のように設定します。

    chown novell:novell <install_directory>/config/<cert-file>

    chmod 700 <install_directory>/config/<cert-file>

  5. novellユーザに切り替えます。

    su - novell
    
  6. <install_directory>/binディレクトリに変更します。

  7. LDAP認証の環境設定スクリプトを実行します。

    ./ldap_auth_config.sh

    このスクリプトにより、LDAP用に変更される前にauth.loginおよびconfiguration.xml環境設定ファイルのバックアップがconfigディレクトリの中にauth.login.savおよびconfiguration.xml.savとして作成されます。

  8. 次の情報を指定します。

    <Enter>キーを押してデフォルト値をそのまま使用するか、新しい値を指定してデフォルトを無効にします。

    • Sentinel install location (Sentinelのインストール場所): Sentinelサーバ上のインストールディレクトリ。

    • LDAPサーバのホスト名またはIPアドレス: LDAPデータベースがインストールされるマシンのホスト名またはIPアドレス。デフォルト値はlocalhostです。ただし、LDAPサーバはSentinel サーバと同じマシンにはインストールしないでください。

    • LDAP server port (LDAPサーバのポート): セキュリティで保護されたLDAP接続用のポート番号。デフォルトのポート番号は636です。

    • Anonymous searches on LDAP directory (LDAPディレクトリに対する匿名検索): 匿名検索を実行するには「y」を指定します。それ以外は「n」を指定します。デフォルト値は「y」です。

      nを指定する場合は、LDAPの構成を完了し、匿名検索を実行しないLDAP認証のセクションで説明されている手順を実行します。

    • LDAP Directory used (使用されるLDAPディレクトリ): このパラメータは、匿名検索で「y」を指定した場合のみ表示されます。Novell eDirectoryには「1」を、Active Directoryには「2」を指定します。デフォルト値は「1」です。

    • LDAP subtree to search for users (ユーザを検索するLDAPサブツリー): このパラメータは、匿名検索で「y」を指定した場合のみ表示され、ディレクトリ内のユーザオブジェクトを含むサブツリーです。次に、eDirectoryとActive Directoryのサブツリーを指定する例を示します。

      • eDirectory:

        ou=users,o=novell
        

        メモ:eDirectoryの場合、サブツリーが指定されていないと、ディレクトリ全体に対して検索が実行されます。

      • Active Directory:

        CN=users,DC=TESTAD,DC=provo, DC=novell,DC=com
        

        メモ:Active Directoryの場合、サブツリーを空白にすることはできません。

    • Filename of the LDAP server certificate (LDAPサーバ証明書のファイル名): ステップ 3でコピーしたeDirectory/Active DirectoryのCA証明書のファイル名。

  9. 次のいずれかを入力します。

    • 入力した値を受け入れるには、「y

    • 新しい値を入力するには、「n」

    • 設定を終了するには、「q

    正常に設定された場合:

    • LDAPサーバ証明書が<install_directory>/config/ldap_server.keystoreという名前のキーストアに追加されます。

    • LDAP認証を有効化するために、<install_directory>/config内のauth.loginおよびconfiguration.xml環境設定ファイルが更新されます。

  10. y」と入力し、Sentinelサービスを再起動します。

    重要:エラーがある場合、configディレクトリ内のauth.loginおよびconfiguration.xml環境設定ファイルに加えられた変更を元に戻します。

    cp -p auth.login.sav auth.login
    cp -p configuration.xml.sav configuration.xml
    
  11. (オプション)Anonymous searches on LDAP directory (LDAPディレクトリに対する匿名検索):nを指定した場合、匿名検索を実行しないLDAP認証に進みます。

匿名検索を実行しないLDAP認証

LDAP認証が可能となるようにSentinel Rapid Deploymentを設定する際、LDAPディレクトリに対する匿名検索に「n」を指定すると、LDAP認証は匿名検索を実行しません。

Sentinelコントロールセンターを使用してLDAPユーザアカウントを作成する場合、非匿名のLDAP認証に[LDAP user DN]を必ず指定してください。eDirectoryとActive Directoryの両方でこのアプローチを使用できます。

詳細については、『Sentinel Rapid Deployment User Guide』のCreating an LDAP User Account for Sentinelを参照してください。

さらには、Active Directoryの場合、匿名検索なしでLDAP認証を実行する別の方法もあります。詳細については、Active DirectoryにおけるUserPrincipalName属性を使用した非匿名のLDAP認証を参照してください。

Active DirectoryにおけるUserPrincipalName属性を使用した非匿名のLDAP認証

Active Directoryの場合、userPrinicipalName属性を使用することで匿名検索せずにLDAP認証を行うこともできます。

  1. Active DirectoryユーザのuserPrinicipalName属性を<sAMAccountName@domain>に設定してください。

    詳細については、User-Principal-Name属性を参照してください。

  2. ステップ 1からステップ 10まで実行し、Anonymous searches on LDAP directory (LDAPディレクトリに対する匿名検索):で「n」と指定したことを確認します。

  3. Sentinelサーバ上で、<Install Directory>/config/auth.login ファイル内の LdapLoginセクションを編集します。

    LdapLogin { 
     com.sun.security.auth.module.LdapLoginModule required 
     userProvider="ldap://LDAP server IP:636/DN of the Container that contains the user objects" 
     authIdentity="{USERNAME}@Domain Name" 
     userFilter="(&(sAMAccountName={USERNAME})(objectclass=user))" 
     useSSL=true; 
     }; 
    

    例:

    LdapLogin { 
     com.sun.security.auth.module.LdapLoginModule required 
     userProvider="ldap://137.65.151.12:636/DC=Test-AD,DC=provo,DC=novell,DC=com" 
     authIdentity="{USERNAME}@Test-AD.provo.novell.com" 
     userFilter="(&(sAMAccountName={USERNAME})(objectclass=user))" 
     useSSL=true; 
     }; 
    
  4. 次のようにSentinelサービスを再起動します。

    /etc/init.d/sentinel stop
    
    /etc/init.d/sentinel start
    

3.7.4 複数のLDAPサーバを使用したフェールオーバー構成

1つ以上のLDAPサーバをLDAP認証用のフェールオーバーとして設定するには:

  1. ステップ 2からステップ 10までの内容に従って、プライマリLDAPサーバに対するSentinelサーバのLDAP認証を設定してください。

  2. Sentinelサーバにnovellユーザでログインします。

  3. Sentinelサービスを停止します。

    /etc/init.d/sentinel stop
    
  4. <install_directory>/configディレクトリに移動します。

    cd <install_directory>/config
    
  5. 編集用にauth.loginファイルを開きます。

    vi auth.login
    
  6. LdapLoginセクションのuserProviderを更新し、複数のLDAP URLを指定します。各URLは空白で区切ります。

    例:

    userProvider="ldap://ldap-url1 ldap://ldap-url2"
    

    Active Directoryの場合、LDAP URLのサブツリーが空白でないことを確認します。

    複数のLDAP URLの指定に関する詳細については、Class LdapLogin ModuleuserProviderオプションの説明を参照してください。

  7. 変更内容を保存します。

  8. フェールオーバーLDAPサーバごとの証明書をエクスポートし、Sentinelサーバの<install_directory>/configディレクトリに証明書ファイルをコピーします。

    詳細については、LDAPサーバのCA証明書のエクスポートを参照してください。

  9. フェールオーバーLDAPサーバごとに、証明書ファイルに必要な所有権およびアクセス権を設定してください。

    chown novell:novell <install_directory>/config/<cert-file>
    
    chmod 700 <install_directory>/config/<cert-file>
    
  10. LDAP認証を可能にするSentinelサーバの設定セクションのステップ 8で作成されたキーストロークldap_server.keystoreに、それぞれのフェールオーバーLDAPサーバ証明書を追加します。

    <install_directory>/jre64/bin/keytool -importcert -noprompt -trustcacerts -file <certificate-file> -alias <alias_name> -keystore ldap_server.keystore -storepass sentinel
    

    <certificate-file>をエンコード形式のLDAP証明書ファイル名で置き換え、<alias_name>をインポートされる証明書の別名で置き換えます。

    重要:別名を必ず指定してください。別名が指定されていない場合、鍵ツールはmykeyをデフォルトでエイリアスだと認識します。別名を指定せずにキーストアに複数の証明書をインポートすると、別名がすでに存在しているというエラーが鍵ツールによって報告されます。

  11. Sentinelサービスを開始します。

    /etc/init.d/sentinel start
    

プライマリLDAPサーバがダウンしていることを認識する前にSentinelサーバがタイムアウトすると、サービスがフェールオーバーLDAPサーバに接続できないことがあります。SentinelサーバがタイムアウトせずにフェールオーバーLDAPサーバに接続できるようにするには:

  1. Sentinelサーバにrootユーザでログインします。

  2. sysct1.confファイルを編集用に開きます。

    vi /etc/sysctl.conf
    
  3. net.ipv4.tcp_syn_retriesの値が3に設定されているのを確認します。エントリが存在しない場合、エントリを追加します。ファイルの保存:

    net.ipv4.tcp_syn_retries = 3
    
  4. コマンドを実行し、変更を有効にします。

    /sbin/sysctl -p
    
    /sbin/sysctl -w net.ipv4.route.flush=1
    
  5. -Desecurity.remote.timeout=60パラメータを<install_directory>/binディレクトリ内のcontrol_center.shsolution_designer.shに追加してSentinelサーバのタイムアウト値を設定します。

    control_center.sh:

    "<install_directory>/jre/bin/java" $MEMORY -Dcom.esecurity.configurationfile=$ESEC_CONF_FILE -Desecurity.cache.directory="<install_directory>/data/control_center.cache" -Desecurity.communication.service="sentinel_client" -Dfile.encoding=UTF8 -Desecurity.dataobjects.config.file="/xml/BaseMetaData.xml,/xml/WorkflowMetaData.xml,/xml/ActMetaData.xml" -Djava.util.logging.config.file="<install_directory>/config/control_center_log.prop" -Djava.security.auth.login.config="<install_directory>/config/auth.login" $SENTINEL_LANG_PROP $SENTINEL_CTRY_PROP -Dice.pilots.html4.baseFontFamily="Arial Unicode MS" -Desecurity.remote.timeout=60 -jar ../lib/console.jar 
    

    solution_designer.sh:

    "<install_directory>/jre/bin/java" -classpath $LOCAL_CLASSPATH $MEMORY -Dcom.esecurity.configurationfile="$ESEC_CONF_FILE" -Dsentinel.installer.jar.location="<install_directory>/lib/contentinstaller.jar" -Desecurity.communication.service="sentinel_client" -Dfile.encoding=UTF8 -Desecurity.dataobjects.config.file="/xml/BaseMetaData.xml,/xml/WorkflowMetaData.xml,/xml/ActMetaData.xml" -Djava.util.logging.config.file="<install_directory>/config/solution_designer_log.prop" -Djava.security.auth.login.config="<install_directory>/config/auth.login" $SENTINEL_LANG_PROP $SENTINEL_CTRY_PROP -Desecurity.cache.directory=../data/solution_designer.cache -Desecurity.remote.timeout=60 com.esecurity.content.exportUI.ContentPackBuilder
    

3.7.5 複数のActive Directoryドメイン向けのLDAP認証の設定

認証されるLDAPユーザが複数のActive Directoryドメインに属している場合、Sentinel Rapid Deploymentサーバを次のように設定し、LDAP認証を行うことができます。

  1. ステップ 2からステップ 10までの説明に従って、最初のドメインのActive Directoryドメインコントローラに対してLDAP認証を行うようにSentinelサーバを設定してください。また、Anonymous searches on LDAP directory (LDAPディレクトリに対する匿名検索):では必ずnを指定してください。

  2. Sentinelサーバにnovellユーザでログインします。

  3. Sentinelサービスを停止します。

    /etc/init.d/sentinel stop
    
  4. <install_directory>/configディレクトリに移動します。

    cd <install_directory>/config
    
  5. 編集用にauth.loginファイルを開きます。

    vi auth.login
    
  6. LdapLoginセクションを編集し、複数のLDAPのURLを空欄で区切って指定します。

    例:

    LdapLogin {
            com.sun.security.auth.module.LdapLoginModule required
            userProvider="ldap://<IP of the domain 1 domain controller>:636 ldap://<IP of the domain 2 domain controller>:636"
            authIdentity="{USERNAME}"
            useSSL=true;
    };
    

    複数のLDAP URLの指定に関する詳細については、Class LdapLogin ModuleuserProviderオプションの説明を参照してください。

  7. 変更内容を保存します。

  8. ドメインごとにドメインコントローラの証明書をエクスポートし、その証明書をSentinelサーバ上の<install_directory>/configディレクトリにコピーします。

    詳細については、LDAPサーバのCA証明書のエクスポートを参照してください。

  9. 証明書ファイルに必要な所有権およびアクセス権を設定してください。

    chown novell:novell <install_directory>/config/<cert-file>
    
    chmod 700 <install_directory>/config/<cert-file>
    
  10. LDAP認証を可能にするSentinelサーバの設定セクションのステップ 8で作成されたキーストロークldap_server.keystoreに、それぞれの証明書を追加します。

    <install_directory>/jre64/bin/keytool -importcert -noprompt -trustcacerts -file <certificate-file> -alias <alias_name> -keystore ldap_server.keystore -storepass sentinel
    

    <certificate-file>をエンコード形式のLDAP証明書ファイル名で置き換え、<alias_name>をインポートされる証明書の別名で置き換えます。

    重要:別名を必ず指定してください。別名が指定されていない場合、鍵ツールはmykeyをデフォルトでエイリアスだと認識します。別名を指定せずにキーストアに複数の証明書をインポートすると、別名がすでに存在しているというエラーが鍵ツールによって報告されます。

  11. Sentinelサービスを開始します。

    /etc/init.d/sentinel start
    

3.7.6 LDAPユーザの資格情報を使用したログイン

LDAP認証用にSentinelサーバを正常に設定したら、SentinelコントロールセンターのSentinel LDAPユーザアカウントを作成できます。LDAPユーザアカウントの作成に関する詳細については、『Sentinel Rapid Deployment User Guide』のCreating an LDAP User Account for Sentinelを参照してください。

LDAPユーザアカウントを作成したら、LDAPユーザ名およびパスワードを使用してSentinel Rapid DeploymentのWebユーザインタフェース、Sentinelコントロールセンター、Sentinelソリューションデザイナにログインできます。

メモ:既存のLDAP設定を変更するには、ldap_auth_configスクリプトを再度実行し、パラメータに新しい値を指定します。