LDAP IDP を構成する

バージョン 4.54.00 での Apigee SSO ティアのモダナイゼーションにより、基盤となる ID ブローカーはネイティブに間接バインディング(検索とバインド)を必要とし、直接(単純)バインディングはサポートされなくなりました。最小権限のセキュリティ標準を維持するため、Apigee SSO はディレクトリ検索に専用の読み取り専用サービス アカウントを使用するように標準化されました。

このセクションでは、Apigee Edge for Private Cloud で LDAP を IDP として使用できるメカニズムについて説明します。

認証メカニズム: 検索とバインド(間接バインド)

検索とバインドでは、ユーザーが RDN(ユーザー名やメールアドレスなど)とパスワードを指定します。Apigee SSO は、ユーザーの識別名(DN)を検索してバインドを試みます。検索とバインドでは部分一致が可能です。

検索とバインド オペレーションの手順は次のとおりです。

  • ユーザーがユーザー名やメールアドレスなどの識別子とパスワードを入力します。
  • Apigee SSO は、LDAP フィルタと一連の読み取り専用サービス アカウントの認証情報を使用して検索を実行します。
  • 一致するものが 1 つだけの場合、Apigee SSO はユーザーの DN を取得します。一致するユーザーが 0 人または複数いる場合、Apigee SSO はユーザーを拒否します。
  • Apigee SSO は、ユーザーの DN と指定されたパスワードを LDAP サーバーにバインドしようとします。
  • LDAP サーバーが認証を行います。
  • 成功すると、Apigee SSO は OIDC/OAuth2 トークンを返します。クライアントはこのトークンを Edge サービスへのリクエストに添付できます。

内部 OpenLDAP(デフォルト構成)

組み込みの Apigee OpenLDAP(LDAP ホストが localhost に設定されている)を使用している場合、インストール プロセスで構成が自動的に保護されます。設定時に、システムはランダムに生成されたシークレットと制限付きの読み取り専用アクセス権を持つ最小権限のサービス アカウント(cn=sso-reader)を自動的にプロビジョニングします。

ディスク上の高権限認証情報の漏洩を防ぐため、OpenLDAP ルート管理者認証情報(cn=manager)が Apigee SSO 構成ファイルから削除されます。

内部 OpenLDAP を使用している場合は、Apigee SSO をインストールして構成するに進みます。

外部の企業 LDAP

Apigee SSO を外部 LDAP ディレクトリ(企業 Active Directory など)に接続する場合は、構成前にディレクトリに事前プロビジョニングされた読み取り専用サービス アカウントを指定する必要があります。Apigee SSO は、このアカウントを検索とバインドのオペレーションにのみ使用します。

外部 LDAP 構成プロパティ

外部 LDAP ディレクトリを構成するには、構成ファイルに読み取り専用サービス アカウントの詳細を指定します。setup-sso スクリプトは、必要なトークンを構成に自動的に挿入します。

構成ファイル(/opt/silent.conf など)に次のプロパティを追加します。

ENABLE_SSO=y
SSO_EXTERNAL_LDAP=y
SSO_LDAP_HOST=corp-ad.company.com
SSO_LDAP_PORT=636

# Set to false for secure connection
SSO_LDAP_INSECURE_SKIP_VERIFY=false

# The DN and password of your pre-provisioned read-only service account
SSO_LDAP_BIND_DN="cn=svc-apigee,ou=ServiceAccounts,dc=corp,dc=com"
SSO_LDAP_BIND_PW="password"

# The base DN for user searches
SSO_LDAP_USER_BASE_DN="ou=Employees,dc=corp,dc=com"

# The filter used to search for the user
SSO_LDAP_USER_FILTER="(&(objectClass=user)(objectCategory=person))"

# The attribute containing the user's email address
SSO_LDAP_USER_EMAIL_ATTR="mail"

# (Optional) The attribute containing the user's ID
# SSO_LDAP_USER_ID_ATTR="sAMAccountName"

# (Optional) The attribute containing the user's display name
# SSO_LDAP_USER_NAME_ATTR="displayName"

これらのプロパティを定義したら、Apigee SSO をインストールして構成するに進みます。