複数の属性ソースを使用した認証のためのIDエージェントの設定

この手順に従って、 LDAP、 PostgreSQL,、 Db2、および Oracle Database などのソースから属性を取得するように、IDエージェントを設定します。

このタスクについて

IBM® Verify1つ以上のオンプレミスデータソースを組み合わせることで、単一のIDプロバイダーとして使用できます。 この設定により、IDエージェントは1つ以上のデータソースからユーザー属性を認証および取得できるようになります。

この設定でサポートされているデータソースは以下の通りです:
  • LDAP
  • IBM Db2
  • PostgreSQL
  • Oracle Database
用語
認証元
認証を行う対象となるデータソース。
JavaScript 設定
データソースの設定詳細を指定するオンプレミス用設定ファイル。
JavaScript プラグイン
プライマリではない LDAP とのやり取りを処理するためのコード。
プライマリー LDAP
LDAP の処理機能が組み込まれているため、プライマリの LDAP には JavaScript プラグインは必要ありません。
代替データソース
プライマリの LDAP と併用する、またはその代わりに使用する1つ以上の追加データソース。
注: データソースは最大10個まで、任意の順序で使用できますが、プライマリの LDAP と代替データソースの設定は異なります。

手順

  1. 「統合 」>「 IDエージェント 」を選択します
  2. 「エージェント設定の作成」 を選択します。
  3. 目的として 「認証」 を選択してください。
  4. LDAP 」タイルを選択します。
  5. 「次へ」 を選択します。
  6. 接続設定を行う
    以下の情報を指定して LDAP 接続プロパティーを定義します。
    注: プライマリ LDAP はオプションであり、認証ソースとして設定する必要はありません。 プライマリの LDAP を使用しない場合は、このセクションにはダミーの値を入力してください。 プライマリ LDAP を使用しない場合は、 JavaScript の設定ファイルのいずれかに以下のコードを記述する必要があります。
    "authenticationSource":{
    "isAuthenticationSource": false,
          "disablePrimaryLDAPLookup": false
        },
    
    外部 LDAP ホスト URI
    この属性は、オンプレミスの LDAP サーバー接続情報です。 クラスター LDAP フェイルオーバー・セットアップの場合は、「URI の追加」を選択して複数の LDAP サーバー URI を追加できます。
    ベース
    この属性は、ユーザーの LDAP コンテナーの検索ベースです。
    LDAP バインド DN
    この属性は、LDAP サーバー接続ユーザーです。
    LDAP バインド・パスワード
    この属性は、LDAP サーバー接続パスワードです。
    LDAP 認証局証明書
    このオプション属性は、オンプレミスのエージェントが LDAP サーバーへの TLS 接続を必要とする場合に使用される SSL 証明書です。
    追加設定を表示する
    以下の設定を定義できます。
    • LDAP に TLS が必要かどうか。
    • LDAP サーバーの同時 LDAP 接続の最大数。
    • パスワード認証が成功した場合、その情報がキャッシュされる期間。
    • 接続が維持される期間。
    • LDAP サーバーが接続を閉じるまでのアイドル時間。
    • 要求を処理する最大時間。
  7. 「次へ」をクリックします。
  8. ユーザー・プロパティーを指定します。
    属性
    この属性は、パスワード検証操作が成功した場合に返される LDAP ユーザー属性のコンマ区切りリストです。 プライマリの LDAP 属性については、 LDAP という属性名を使用してください。 代替データソースを使用する場合は、ユーザー属性の名前の先頭に、その属性を pluginName-Attribute という形式で返す JavaScript プラグインの名前を付けます。 例えば、以下を設定するとします。
    "pluginName": "OcPlug",
    OcPlug-その場合、によって返される属性には、必ず OcPlug 接頭辞として を付ける必要があります。 たとえば、 OcPlugin-mobileJavaScript プラグインに対して OcPlug 、mobileの値を取得するよう指示します。
    属性はカンマ区切りで指定する必要があります。 例えば、以下のとおりです。
    givenName, sh, displayName, manager, mail, mobile,
    memberOf, uid, OcPlug-OCD_SPEC_ID, db2PLUG-
    XTENDEDATTR, ldap-seeAlso
    注: この例は、プラグインの属性を指定する方法を示しています。 , sngivenName displayName, manager,, mobile mail, memberOf, および uid のような接頭辞のない属性は、プライマリ LDAP から取得されます。 seeAlsoOCD_SPEC_IDOcPlug 属性 を返します。 db2Plug は属性 XTENDEDATTR を返し、プラグイン「ldap」は属性 を返します。
    バイナリー属性
    この属性は、パスワード検証操作が成功した場合に返されるバイナリーの LDAP ユーザー属性のコンマ区切りリストです。
    ユーザー名属性
    この属性は、パスワードを検証するユーザーを検索するために使用される user id などの命名属性です。
    注: ユーザー名識別子属性は、大文字と小文字が区別されます。 このデフォルトの属性 samAccountName は、以前のバージョンの Windows Active Directory に適用されます。 sAMAAccountNameActive Directory 2016 以降では、この属性は. です。
    オブジェクト・クラス
    この属性は、LDAP ユーザーに指定できるオブジェクト・クラスのコンマ区切りリストです。 オブジェクト・クラスは、username 属性で、パスワードの検証対象のユーザーの検索に使用されます。
    注: バイナリ属性、ユーザー名属性、およびオブジェクトクラスは、主に LDAP を対象としていますが、これらはすべて JavaScript プラグインに渡されるため、プラグインの実装側で手動で処理する必要があります。
  9. 「次へ」 を選択します。
  10. ID プロバイダー の属性を、Cloud Directoryの Verify 属性にマッピングします。
    IDエージェントを作成した後、エージェントのタイルにある編集機能 鉛筆のアイコン を使用して、マッピングを変更または更新できます。
  11. 「次へ」 を選択します。
  12. 「設定の確定」 で、以下の情報を入力してください。
    • エージェントに固有の認識可能な名前
    • 説明
    • IDプロバイダー の表示名
    • IDプロバイダー 用の領域
  13. オプション: 詳細設定を表示 」を選択して、設定属性を追加したり、暗号化用の証明書を選択したりできます。
    注: 詳細設定は主に LDAP が利用することを想定していますが、手動処理のために JavaScript プラグインにも渡され、利用可能になります。
  14. 「保存して続行」 をクリックしてください。
  15. 次の手順 」で、以下の手順を実行してください。
    1. API 認証情報を表示 」を選択し、クリップボードにコピーするアイコンを使用して、クライアント ID とクライアントシークレットをコピーして保存してください。
      注: 適切な権限を持つユーザーのみがクライアントシークレットを確認できます。 詳細については、 「権限に関するセキュリティ更新プログラム」 を参照してください。
    2. まだダウンロードしていない場合は、 IBM Container Repository (ICR) からブリッジエージェントをダウンロードしてください。 「 Docker での Verify Bridge のインストールと設定 」を参照してください。
    3. API 資格情報をエージェント構成に追加します。
  16. 「完了」 をクリックします。
    設定が Identityエージェントに追加され、 認証プロバイダー「認証 」>「 認証プロバイダー 」に一覧表示されます。
  17. JavaScript プラグインの設定。
    bridge実行ファイルは、自身を基準として以下のディレクトリを検索します。
    • ./jsconfig/ - 設定ファイルの保存場所。
    • ./jsplugins/ - 「 JavaScript 」プラグインの保存場所。

    これらのディレクトリをDockerコンテナから利用可能にするには、ホストのファイルシステムからバインドマウントを行うことができます。

    volumes:
                    - ./jsconfig:/go/src/jsconfig:ro
                    - ./jsplugins:/go/src/jsplugins:ro
    
    この例は、 Oracle データベースプラグインの設定を示しています。
    {
        "pluginName": "OcPlug",
        "pluginType": "oracledb",
        "executionOrder": 1,
        "hardFail": true,
        "authenticationSource": {
          "isAuthenticationSource": true,
          "disablePrimaryLDAPLookup": false
        },
        "bindingConfig": {
          "connectionString": "oracle://system:oraclepass@host.docker.internal:1521/XE?CONNECTION TIMEOUT=5",
          "maxPoolSize": 50,
          "minPoolSize": 10,
          "agedTimeout": 60,
          "maxIdleTime": 10
        },
        "custom": {
          "table": "users"
        }
      }
    
    次の例は、 LDAP プラグインの設定を示しています。
    {
        "pluginName": "plugin1",
        "pluginType": "ldap",
        "executionOrder": 1,
        "hardFail": false,
        "authenticationSource": {
          "isAuthenticationSource": true,
          "disablePrimaryLDAPLookup": false
        },
        "bindingConfig": {
          "bindDn": "cn=admin,dc=ibm,dc=com",
          "bindPassword": "pass",
          "uris": [
            "ldaps://localhost:8636",
            "ldap://localhost:8389"
          ],
          "maxPoolSize": 50,
          "agedTimeout": 60,
          "connectTimeout": 5,
          "filter": "(|(|(objectclass=ePerson)(objectclass=person))(objectclass=User))", 
          "userObjectClasses": "top,Person,organizationalPerson,inetOrgPerson",
          "selector": "objectClass,cn,sn,givenName,userPassword,streetAddress,seeAlso,mobile", 
          "userIdentifier": "uid",
          "baseDn": "dc=ibm,dc=com",
          "tlsConfig": {
            "caCert": "-----BEGIN CERTIFICATE-----\nMIIDbzCCAlegAwIBAgIULjAe6hySQZ8C8d1LnWKHlpirro4wDQYJKoZIhvcNAQEL\nBQAwRzELMAkGA1UEBhMC…",
            "insecureSkipVerify": false,
            "tlsMinVersion": 0,
            "clientCertLabel": "extauthn.client"
          }
        },
        "custom": {
          "table": "users"
        }
      }
    

    この表には、設定プラグインのプロパティが一覧表示されています。

    プロパティー 定義
    pluginName プラグインの名前。 ブリッジは、ブリッジの実行ファイルからの相対パスでこのファイルを検索 ./jsplugins/<pluginName>.js します。
    pluginType
    • OracleDB
    • postgres
    • Db2
    • ldap
    執行命令 プラグインの実行順序。 低い順から高い順。
    hardFail false属性の取得中にエラーが発生した場合、bridgeはこのプラグインをスキップします。 そうでない場合、エラーが返され、認証に失敗します
    isAuthenticationSource このプラグインで認証が行われる場合は、ここに true 設定してください。
    注: このプロパティを に true 設定すると、プラグインは自動的にハードフェイルします。
    disablePrimaryLDAPLookup プライマリの LDAP を無効にします。
    connectionString お使いのデータベースに適した接続文字列。 以下の場合に適用されます
    • Db2
    • PostgreSQL
    • Oracle Database.

    LDAP の場合は空欄のままにしてください。

    LDAP のみ
    フィルター LDAP フィルター。
    bindDn バインドDN。
    bindPassword バインドパスワード。
    URI LDAP URI。 フェイルオーバーのシナリオでは、複数の対象を指定できます。 TLS のプロトコ ldaps ルを指定してください。
    userObjectClasses ユーザーオブジェクトのセレクタ。
    選択子 セレクタ。 必要なユーザー属性は、ここに表示される必要があります。
    userIdentifier 標準検索を実行する際に使用される識別子。
    baseDn ディレクトリ階層内で検索を開始する位置。
    caCert LDAP サーバーが提示する証明書の有効性を確認するために使用されるCA証明書。
    insecureSkipVerify TLS の証明書チェックをスキップする。
    tlsMinVersion

    最小 TLS バージョン

    • 769 – v1.0
    • 770 – v.1.1
    • 771 – v1.2 (デフォルト)
    • 772 – v1.3
    clientCertLabel

    MTLSについて。 これは、 LDAP サーバーに送信されるトラフィックに署名するために使用される証明書および鍵のラベルです。

    エージェントは、cert を検索します

    /cert/<clientCertLabel>_cert.pem /cert/<clientCertLabel>_key.pem

    カスタム 設定を通じてプラグインに渡すことができ、手動で処理されるカスタム値。
    接続文字列の例。
    Db2
    HOSTNAME=host.docker.internal;PORT=50000;UID=db2inst1;PWD=db2_password;DATABASE=usersdb"
    PostgreSQL
    host=host.docker.internal port=8788 dbname=postgres user=postgres password=postgrespassword connect_timeout=5
    LDAP TLS
    caCert.TLS を使用して JavaScript プラグイン経由で LDAP に接続するには、セクション uris で を ldaps:// 指定し、有効な を指定してください。
    "uris": [
            "ldaps://localhost:8636"
          ],
    
    LDAP プラグインからMTLSを実行するには、バインドマウントを使用して、クライアント証明書とクライアント証明書の秘密鍵をコンテナのディレクトリ /cert/ に配置します。
    - ./cert/:/cert:ro
    <clientCertLabel>_key.pem証明書名は、必ず および という形式 <clientCertLabel>_cert.pem になっていることを確認してください。ここで、 clientCertLabelclientCertLabel 、 LDAP プラグインのプラグイン設定で指定されている です。