複数の属性ソースを使用した認証のための ID エージェントの構成
この手順を使用して、LDAP、PostgreSQL, Db2、Oracle Database などのソースから属性を使用して ID エージェントを構成します。
このタスクについて
1 つ以上のオンプレミス・データ・ソースの組み合わせを、 IBM® Security Verifyの単一の ID プロバイダーとして使用できます。 この構成により、ID エージェントは認証を行い、1 つ以上のデータ・ソースからユーザー属性を取得することができます。
この構成でサポートされるデータ・ソースは以下のとおりです。
- LDAP
- IBM Db2
- PostgreSQL
- Oracle Database
用語
- 認証元
- 認証の実行対象となるデータ・ソース。
- JavaScript 構成
- データ・ソースの構成の詳細を指定する、オンプレミスの構成ファイル。
- JavaScript プラグイン
- 非 1 次 LDAP との対話を処理するためのコード。
- 1 次 LDAP
- 組み込みの LDAP 処理では、1 次 LDAP に JavaScript プラグインは必要ありません。
- 代替データ・ソース
- 1 次 LDAP と一緒に、または 1 次 LDAP の代わりに使用する 1 つ以上の追加データ・ソース。
注: 最大 10 個のデータ・ソースを任意の順序で使用できますが、1 次 LDAP と代替データ・ソースの構成は異なります。
手順
- 「 統合 > ID エージェント」を選択します。
- 「エージェント構成の作成」を選択します。
- 目的として 「認証」 を選択します。
- 「LDAP」 タイルを選択します。
- 「次へ」を選択します。
- 接続設定の構成以下の情報を指定して LDAP 接続プロパティーを定義します。注: 1 次 LDAP はオプションであり、認証ソースである必要はありません。 1 次 LDAP を使用しない場合は、このセクションで ダミー値 を使用します。 1 次 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 サーバーが接続を閉じるまでのアイドル時間。
- 要求を処理する最大時間。
- 「次へ」をクリックします。
- ユーザー・プロパティーを指定します。
- 属性
- この属性は、パスワード検証操作が成功した場合に返される LDAP ユーザー属性のコンマ区切りリストです。 1 次 LDAP 属性には、LDAP 属性名を使用します。 別のデータ・ソースの場合、ユーザー属性の名前の前に、pluginName-Attribute. という形式で属性を返すと予想されるJavaScriptプラグインの名前を付けます。 例えば、以下を設定するとします。
OcPlug によって返される属性には、 OcPlug-という接頭部を付ける必要があります。 例えば、 OcPlugin-mobile は、モバイル値を取得するように JavaScript プラグイン OcPlug に指示します。"pluginName": "OcPlug",
属性はコンマで区切る必要があります。 例えば、以下のとおりです。givenName, sh, displayName, manager, mail, mobile, memberOf, uid, OcPlug-OCD_SPEC_ID, db2PLUG- XTENDEDATTR, ldap-seeAlso
注: この例は、プラグイン属性を指定する方法を示しています。 接頭部のない属性 ( givenName、 sn、 displayName、 manager、 mail、 mobile、 memberOf、および uid など) は、1 次 LDAP から取得されます。 OcPlug は属性 OCD_SPEC_IDを返し、 db2Plug は属性 XTENDEDATTR を返し、プラグイン "ldap" は属性 seeAlsoを返します。 - バイナリー属性
- この属性は、パスワード検証操作が成功した場合に返されるバイナリーの LDAP ユーザー属性のコンマ区切りリストです。
- ユーザー名属性
- この属性は、パスワードを検証するユーザーを検索するために使用される user id などの命名属性です。注: ユーザー名 ID 属性には大/小文字の区別があります。 デフォルト属性 samAccountName は、以前のバージョンの Windows Active Directoryに適用されます。 Active Directory 2016 以降の場合、属性は sAMAAccountNameです。
- オブジェクト・クラス
- この属性は、LDAP ユーザーに指定できるオブジェクト・クラスのコンマ区切りリストです。 オブジェクト・クラスは、username 属性で、パスワードの検証対象のユーザーの検索に使用されます。
注: バイナリー属性、ユーザー名属性、およびオブジェクト・クラスは、1 次 LDAP を対象としていますが、すべて JavaScript プラグインに渡されるため、プラグイン実装によって手動で処理する必要があります。 - 「次へ」を選択します。
- アイデンティティー・ プロバイダー のアイデンティティー・ プロバイダー 属性を Verify Cloud Directory 属性にマップします。ID エージェントを作成した後、エージェントのタイルで編集機能
を使用して、マッピングを変更または更新できます。
- 「次へ」を選択します。
- 「構成の確定 (Finalize configuration)」で、以下の情報を指定します。
- エージェントに固有の認識可能な名前
- 説明
- アイデンティティー・ プロバイダー の表示名
- アイデンティティー・ プロバイダー のレルム
- オプション: 構成属性を追加する場合、または暗号化用の証明書を選択する場合は、 「拡張設定の表示」 を選択します。注: 拡張設定は、1 次 LDAP によって使用されますが、手動処理のために JavaScript プラグインに渡されて使用可能になります。
- 「保存して続行」をクリックします。
- 「次のステップ」 で、以下のステップを実行します。
- 「API 資格情報の表示」 を選択し、「クリップボードにコピー」アイコンを使用して、クライアント ID とクライアント秘密鍵をコピーして保管します。注意:適切な権限を持つユーザーだけがクライアント・シークレットを見ることができます。 詳細については、エンタイトルメントのセキュリティ・アップデートを参照のこと。
- まだダウンロードしていない場合は、 IBM Container Repository (ICR) からブリッジ・エージェントをダウンロードします。 DockerへのVerify Bridgeのインストールと設定を参照してください。
- API 資格情報をエージェント構成に追加します。
- 「API 資格情報の表示」 を選択し、「クリップボードにコピー」アイコンを使用して、クライアント ID とクライアント秘密鍵をコピーして保管します。
- 「終了」をクリックします。構成がIdentity エージェントに追加され、IDプロバイダが 「Authentication 」>「 Identity providers」にリストされる。
- JavaScript プラグインの構成。ブリッジ実行可能ファイルは、それ自体に関連する以下のディレクトリーを検索します。
- ./jsconfig/ -構成ファイルの場所です。
- ./jsplugins/ - JavaScript プラグインの場所です。
これらのディレクトリーを Docker コンテナーで使用できるようにするために、ホスト・ファイル・システムからバインド・マウントを実行できます。
この例は、 Oracle データベース・プラグインのプラグイン構成を示しています。volumes: - ./jsconfig:/go/src/jsconfig:ro - ./jsplugins:/go/src/jsplugins:ro
以下の例は、LDAP プラグインの構成を示しています。{ "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" } }
{ "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の場合、属性の取得中にエラーが発生すると、ブリッジはこのプラグインをスキップします。 それ以外の場合は、エラーが返され、認証は失敗します。 isAuthenticationSource このプラグインが認証を行う場所である場合は、 true に設定します。 注: このプロパティーを true に設定すると、プラグインが自動的にハード失敗します。disablePrimaryLDAPLookup 1 次 LDAP を無効にします。 connectionString ご使用のデータベースに適した接続ストリング。 これは、以下に適用できます。 - Db2
- PostgreSQL
- Oracle Database.
LDAP の場合はブランクのままにします。
LDAP のみ フィルター LDAP フィルター。 bindDn バインド DN。 bindPassword バインド・パスワード。 URI LDAP URI。 フェイルオーバー・シナリオには複数を指定できます。 TLS のプロトコル ldaps を指定します。 userObjectClasses ユーザー・オブジェクト・セレクター。 選択子 セレクター。 必要なユーザー属性をここに表示する必要があります。 userIdentifier 標準ルックアップの実行時に使用される ID。 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/<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
- TLS を使用して JavaScript プラグインを介して LDAP に接続するには、必ず uris セクションに ldaps:// を指定し、有効な caCert.を指定してください。
"uris": [ "ldaps://localhost:8636" ],
LDAP プラグインから MTLS を実行するには、バインド・マウントを使用して、コンテナーの /cert/ ディレクトリーにクライアント証明書とクライアント証明書プライベートを配置します。
証明書名の形式が- ./cert/:/cert:ro
<clientCertLabel>_cert.pem
および<clientCertLabel>_key.pem
であることを確認してください。ここで、 clientCertLabel は、LDAP プラグインのプラグイン構成で指定されている clientCertLabel です。