CLI を使用した組織固有の LDAP ユーザー・レジストリーの作成
Consumer Catalog CLI を使用して、 Consumer Catalog のユーザー認証を行うための組織固有の LDAP ユーザーレジストリを設定できます。 API も LDAP ユーザー・レジストリーによって保護できます。
開始前に
API Manager で LDAP のユーザーレジストリをリソースとして設定するには、 LDAP ディレクトリを作成し、エコ API Connect システムで利用可能にする必要があります。
LDAP レジストリは、APIのセキュリティ確保や、 Consumer Catalog ユーザーの認証を行うためのカタログのセキュリティ確保に利用できます。
Active Directoryしている場合は、 LDAP"directory_type": "ad" の設定でプロパティを使用して指定する必要があります。LDAP ユーザー・レジストリーを構成するには、以下のいずれかのロールが必要です。
- 管理者
- 所有者
- トポロジー管理者
- 次の役割を持つカスタム役割:Settings: Manage権限
このタスクについて
- また、 API Manager のUIを使用して、組織固有の LDAP ユーザー登録リストを作成することもできます。 詳細については、 「API Manager での LDAP ユーザーレジストリの作成」 を参照してください。
- さらに、REST API Connect API を使用して「 LDAP 」のユーザー登録情報を作成・管理することも可能です。詳細は、 REST API の API Connect ドキュメントを参照してください。
- LDAP を使用している場合、 DataPower® API Gatewayグループ認証はサポートされていません。
- 開発者ツールキットのCLIを使用することで、外部の LDAP グループをユーザーロール API Connect にマッピングし、ユーザー認証をより細かく制御できるようになります。 以下の手順は、LDAP ユーザー・レジストリー・リソースで
external_group_mapping_enabled構成を設定する方法を説明しています。 ユーザーロール API Connect での外部ロールマッピングの設定方法については、 「Cloud Manager ユーザーロールでの LDAP グループマッピングの設定」 を参照してください。
まず、構成ファイルにレジストリー詳細を定義して、LDAP ユーザー・レジストリーを作成します。 次に、 デベロッパーズ・ツールキットの CLI コマンドを使用してレジストリーを作成し、構成ファイルをパラメーターとして渡します。 コンシューマー カタログでレジストリを利用可能にするには、関連するカタログでレジストリを有効にする必要があります。 LDAP レジストリーを使用して API を保護するには、セキュリティー定義を構成する必要があります。 以下の手順を使用して、書き込み可能な LDAP ユーザー・レジストリーまたは読み取り専用の LDAP ユーザー・レジストリーを作成できます。
LDAP を使用した認証の詳細については、 「 LDAP 認証」 を参照してください。
管理サーバー CLI へのログイン
apic login --server mgmt_endpoint_url --username user_id --password password --realm provider/identity_provider--realm パラメーターで使用する ID プロバイダーを判別できます (このコマンドを使用するためにログインする必要はありません)。apic identity-providers:list --scope provider --server platform_api_endpoint_url --fields title,realm例:apic identity-providers:list --scope provider --server platform_api_endpoint_url --fields title,realm
total_results: 2
results:
- title: API Manager User Registry
realm: provider/default-idp-2
- title: Corporate LDAP user registry
realm: provider/corporate-ldaptitle 値により、使用する ID プロバイダーを判別できます。その後に、表示された realm 値から対応する --realm パラメーターを直接コピーできます。 インストール API Connect 後に管理者が作成したIDプロバイダーについては、その名前は作成時に決定されます。 プロバイダー組織のメンバーとしてログインするためのデフォルトの API Manager ローカル・ユーザー・レジストリーは default-idp-2 です。ログイン・コマンドについて詳しくは、 管理サーバーへのログインを参照してください。
CLI の使用方法について詳しくは、 ツールキットのインストール、および コマンド・ライン・ツールの概要を参照してください。
LDAP 構成の定義
ldap_config_file.yamlファイルで定義します。 YAMLファイルの具体的な内容は、 LDAP サーバーの認証方法によって異なります。これについては、以下の表で説明します。name: registry_name
title: "display_title"
integration_url: LDAP_integration_url
user_managed: true_or_false
user_registry_managed: false
directory_type: ad
external_group_mapping_enabled: true_or_false
case_sensitive: true_or_false
email_required: true_or_false
email_unique_if_exist: true_or_false
identity_providers:
- name: provider_name
title: provider_title
endpoint:
endpoint: "ldap_server_url_and_port"
configuration:
authentication_method: authentication_method
authenticated_bind: "true_or_false"
admin_dn: "admin_dn"
admin_password: admin_password
search_dn_base: "search_dn_base"
search_dn_scope: search_dn_scope
search_dn_filter_prefix: prefix
search_dn_filter_suffix: suffix
attribute_mapping:
dn: "distinguished_name"
cn: "common_name"
sn: "last_name"
mail: "email_address"
userPassword: "password"各認証方式に共通のレジストリー・プロパティーについて、以下の表で説明します。| プロパティー | 説明 |
|---|---|
name |
レジストリーの名前。 この名前は、CLI コマンドで使用されます。 |
title |
グラフィカル・ユーザー・インターフェースに表示する説明的な名前。 |
integration_url |
設定 API Connect 内の「 LDAP 」統合 URL。 以下の CLI コマンドを使用して、LDAP 統合 URL を判別できます。 |
user_managed |
ユーザー・レジストリーが書き込み可能かどうかを決定します。 書き込み可能 LDAP の場合は、true に設定する必要があります。 レジストリへの書き込みを許可したくない場合は false 、この設定を変更できます。詳細については、このトピックの最後にある 「 LDAP のレジストリを書き込み可能と読み取り専用間で切り替える」 のセクションを参照してください。 書き込み可能な LDAP ユーザーレジストリは、Cloud Manager および API Manager のユーザー認証には使用できない点にご注意ください。 |
user_registry_managed |
LDAP の場合は false に設定する必要があります。 API Connect がユーザー・レジストリーを管理するかどうかを決定します。 LUR レジストリーのみが API Connectによって管理されます。 |
directory |
ディレクトリー・タイプに以下のいずれかの値を指定します。
|
external_group_mapping_enabled |
ユーザー・レジストリーが LDAP グループ・マッピングをサポートするかどうかを決定します。 有効な値は以下のとおりです。
falseです。 |
case_sensitive |
ユーザー・レジストリーが大/小文字を区別するかどうかを決定します。 有効な値は以下のとおりです。
注: 少なくとも 1 人のユーザーがレジストリーにオンボードされた後は、この設定を変更することはできません。 |
email_required |
ユーザーのオンボーディング・プロセスの一部として E メール・アドレスが必要かどうかを決定します。 有効な値は以下のとおりです。
trueに設定した場合、ソース ID プロバイダーは、オンボーディング時に認証プロセスの一部として E メール・アドレスを提供する必要があります。注: Cloud Manager または API Manager へのオンボーディングでは、デフォルトでメールアドレスの入力は必須ではありませんが、 Consumer Catalog へのオンボーディングでは必須となります。 |
email_unique_if_exist |
E メール・アドレスがユーザー・レジストリー内で固有でなければならないかどうかを決定します。 有効な値は以下のとおりです。
注: コンシューマー カタログ内のすべてのアカウント(同一サイト内の異なるユーザー登録情報を跨ぐものを含む)は、サイト管理者アカウントを含め、一意のメールアドレスを持つ必要があります。 |
identity_providers |
LDAP サーバーの詳細を含む配列。ここで、
|
endpoint |
LDAP サーバーのエンドポイント。以下の例のように、URL とポートで構成されます。 |
tls_profile |
オプションで、LDAP サーバーが必要とする TLS クライアント・プロファイルを設定します。 |
protocol_version |
オプションで、使用する LDAP プロトコルのバージョン番号を設定します。 有効な値は以下のとおりです。
3 です。 |
compose_dn- ユーザーの LDAP 識別名 (DN) をユーザー名から作成できる場合は、この形式を設定します。 たとえば、uid=<username>,ou=People,dc=company,dc=comはユーザー名から構成できるDN形式です。 「作成 (DN)」が適切なオプションであるかどうかが不明な場合は、LDAP 管理者に問い合わせてください。 LDAP レジストリーを使用して API を保護する場合、DataPower API Gateway ではcompose_dnはサポートされません。compose_upn- LDAP ディレクトリーが、john@acme.comなどのユーザー・プリンシパル名とのバインディングをサポートしている場合は、この形式を選択します。 Microsoft Active Directory は、「作成 (UPN)」認証をサポートする LDAP ディレクトリーの一例です。 LDAP ディレクトリーが UPN とのバインディングをサポートしているかどうかが不明な場合は、LDAP 管理者に問い合わせてください。注: 管理バインド DN および管理バインド・パスワードは、この認証方式では使用されません。search_dn- ユーザーの LDAP 識別名をユーザー名から作成できない場合 (ユーザーの基本 DN が異なっている場合など) は、この形式を選択します。 このフォーマットを選択すると、LDAP ディレクトリー内でユーザーを検索するために、管理者の DN とパスワードが必要になる場合があります。 LDAP ディレクトリーで匿名バインドが許可されている場合は、管理者の DN とパスワードを省略することができます。 LDAP ディレクトリーで匿名バインドが許可されているかどうかが不明な場合は、LDAP 管理者に問い合わせてください。
compose_dn の場合は、以下の構成プロパティーを設定します。| プロパティ- | 説明 |
|---|---|
authentication_method |
compose_dn |
authenticated_bind |
バインド方式。 有効な値は以下のとおりです。
"false" を選択します。 特定の許可が必要な場合は、"true" を選択します。 |
admin_dn |
authenticated_bind を "true" に設定した場合は、LDAP ディレクトリー内で検索を実行する権限を持つユーザーの識別名(DN) を入力します。 例:
|
admin_password |
authenticated_bind を "true" に設定した場合は、admin_dn のユーザー・パスワードを入力します。 |
search_dn_base |
オプションで、基本 DN を設定します。例えば、次のように指定します。 |
bind_prefix |
DN に接頭部を設定します。例えば、次のように指定します。 |
bind_suffix |
DN に接尾部を設定します。例えば、次のように指定します。 |
attribute_mapping |
が に設定 trueされている user_managed 場合は、ソースの LDAP 属性名とターゲット API Connect の値との対応関係を入力してください。 このマッピングは、次のように指定される名前と値のペアとして構成されます:ここで:
username、 first_name、 last_name、 email、および passwordです。以下に、属性マッピングの例を抜粋して示します。 |
compose_upn の場合は、以下の構成プロパティーを設定します。| プロパティ- | 説明 |
|---|---|
authentication_method |
compose_upn |
authenticated_bind |
バインド方式。 有効な値は以下のとおりです。
"false" を選択します。 特定の許可が必要な場合は、"true" を選択します。 |
admin_dn |
authenticated_bind を "true" に設定した場合は、LDAP ディレクトリー内で検索を実行する権限を持つユーザーの識別名(DN) を入力します。 例:
|
admin_password |
authenticated_bind を "true" に設定した場合は、admin_dn のユーザー・パスワードを入力します。 |
bind_suffix |
ユーザー・プリンシパル名のドメイン部分を入力します。 例: |
attribute_mapping |
が に設定 trueされている user_managed 場合は、ソースの LDAP 属性名とターゲット API Connect の値との対応関係を入力してください。 このマッピングは、次のように指定される名前と値のペアとして構成されます:ここで:
username、 first_name、 last_name、 email、および passwordです。以下に、属性マッピングの例を抜粋して示します。 |
search_dn の場合は、以下の構成プロパティーを設定します。| プロパティー | 説明 |
|---|---|
authentication_method |
search_dn |
authenticated_bind |
バインド方式。 有効な値は以下のとおりです。
"false" を選択します。 特定の許可が必要な場合は、"true" を選択します。 |
admin_dn |
authenticated_bind を "true" に設定した場合は、LDAP ディレクトリー内で検索を実行する権限を持つユーザーの識別名(DN) を入力します。 例:
|
admin_password |
authenticated_bind を "true" に設定した場合は、admin_dn のユーザー・パスワードを入力します。 |
search_dn_base |
オプションで、基本 DN を設定します。例えば、次のように指定します。 |
search_dn_scope |
オプションで、DN の検索スコープを設定します。 スコープは、ディレクトリー情報ツリーのどの部分を調べるかを決定します。 設定される値は、以下のとおりです。
|
search_dn_filter_prefix |
DN に接頭部を設定します。例えば、次のように指定します。 |
search_dn_filter_suffix |
DN に接尾部を設定します。例えば、次のように指定します。 |
attribute_mapping |
が に設定 trueされている user_managed 場合は、ソースの LDAP 属性名とターゲット API Connect の値との対応関係を入力してください。 このマッピングは、次のように指定される名前と値のペアとして構成されます:ここで:
username、 first_name、 last_name、 email、および passwordです。以下に、属性マッピングの例を抜粋して示します。 |
を保存しておくと ldap_config_file.yaml 、次のセクションの コマンド user-registries:create からアクセスできます。 構成ファイルの例については、 例 のセクションを参照してください。
LDAP ユーザー・レジストリーの作成
apic user-registries:create --server mgmt_endpoint_url --org organization_name ldap_config_file.yamlここで、それぞれ以下のとおりです。- mgmt_endpoint_url は、プラットフォーム API エンドポイント URL です。
- organization_name は、プロバイダー組織の
nameプロパティーの値です。 - ldap_config_file は、LDAP ユーザー・レジストリーの構成を定義する YAML ファイルの名前です。
registry_name registry_urlregistry_name は、設定 YAML ファイル内の プロパティ name から取得されます。 registry_url は、レジストリー・リソースにアクセスできる URL です。これで LDAP のユーザーレジストリが作成されました。このレジストリをConsumer Catalog で利用可能にする方法については、次のセクションをご覧ください。
カタログでの LDAP レジストリーの構成
LDAP レジストリーの書き込み可能と読み取り専用の間での切り替え
user_managed プロパティーを更新することで、LDAP ユーザー・レジストリーを書き込み可能と読み取り専用の間で切り替えることができます。 以下のステップを実行します。- 次のコマンドを実行して、更新する LDAP ユーザー・レジストリーの名前または ID を確認します (または、レジストリー作成の要約を使用できます)。
このコマンドで、その組織のすべてのユーザー・レジストリーのリストが返されます。名前の次にレジストリー URL が表示されます。 レジストリー ID は、URL の末尾にあります。例えば、以下のようになります。apic user-registries:list --server mgmt_endpoint_url --org organization_namehttps://company.com/api/user-registries/x-x-x-x-x/registry_id - 次のコマンドを入力してください(末尾のハイフンは、このコマンドがコマンドラインから入力を受け付けることを意味します):
ここで、apic user-registries:update --server mgmt_endpoint_url --org organization_name registry_name_or_id -registry_name_or_idは、更新する LDAP ユーザー・レジストリーの名前または ID (前のステップで確認したもの) です。 このコマンドでは、以下が返されます。Reading USER_REGISTRY_FILE arg from stdin - 次のデータを入力して、改行します。
ここで、user_managed: true_or_falsetrueはレジストリを書き込み可能にし、falseはレジストリを読み取り専用にします。 - 入力を停止するには、[
CTRL DPress] を押してください。
attribute_mapping も変更する必要があります。LDAP ユーザー・レジストリーを使用した API の保護
- API のセキュリティー定義で基本認証に使用するには、 基本認証セキュリティー定義の作成を参照してください。
- ネイティブの OAuth プロバイダーのユーザー セキュリティ設定で認証に使用するには、 「ネイティブの OAuth プロバイダーのユーザーセキュリティの設定」を参照してください。
および apic
configured-catalog-user-registries コマンド apic user-registries の詳細については、 ツールキットのCLIリファレンスドキュメントを参照してください。
例
name: sdn-ldap
title: "SDN LDAP User Registry"
integration_url: https://mycompany.com/api/cloud/integrations/user-registry/xxx-xxx-xxx
user_managed: true
user_registry_managed: false
directory_type: standard
case_sensitive: false
identity_providers:
- name: ldap
title: "SDN LDAP Identity Provider"
endpoint:
endpoint: "ldap://mycompany.com:389"
configuration:
authentication_method: search_dn
authenticated_bind: "true"
admin_dn: "cn=admin,dc=company,dc=com"
admin_password: xxxx
search_dn_base: "dc=company,dc=com"
search_dn_scope: sub
search_dn_filter_prefix: (uid=
search_dn_filter_suffix: )
attribute_mapping:
dn: "uid=[username],ou=users,dc=company,dc=com"
cn: "[first_name] [last_name]"
sn: "[last_name]"
mail: "[email]"
userPassword: "[password]"