新しい Edge UI と Edge Management API は、Edge Management Server にリクエストを発行することによって動作します。Management Server は、これらのリクエストに対して次の認証タイプをサポートしています。
- 基本認証: ユーザー名とパスワードを渡して、新しい Edge UI にログインするか、Edge 管理 API にリクエストを行います。
- OAuth2 / OIDC: Edge の基本認証情報を OAuth2 アクセス トークンと更新トークンに交換します。API 呼び出しの Bearer ヘッダーで OAuth2 アクセス トークンを渡して、Edge Management API を呼び出します。
Edge では、認証に次の外部 ID プロバイダ(IDP)を使用できます。
- Security Assertion Markup Language(SAML)2.0: SAML ID プロバイダから返された SAML アサーションから OAuth アクセス トークンを生成します。
- Lightweight Directory Access Protocol(LDAP): LDAP の検索およびバインド認証方法を使用して、OAuth アクセス トークンを生成します。
SAML と LDAP の両方の IDP がシングル サインオン(SSO)環境をサポートしています。Edge で外部 IDP を使用すると、新しい Edge UI と API の SSO をサポートできます。また、外部 IDP をサポートする他のサービスもサポートできます。
新しい Apigee SSO 構造について
Edge for Private Cloud 4.54.00 以降、以前の apigee-sso コンポーネントは、Dex と呼ばれる最新の軽量な OpenID Connect(OIDC)ID ブローカーに置き換えられました。この SSO アダプタは apigee-openldap コンポーネントのライフサイクルに直接統合されているため、別の apigee-sso モジュールをインストールする必要はありません。
Apigee SSO(Dex ブローカー)は apigee-openldap にバンドルされているため、OpenLDAP インスタンスと同じノードにデプロイされます。ライフサイクル管理は、apigee-service apigee-openldap start_sso や stop_sso などの OPDK アクションを介してネイティブに処理されます。
ブラウザ、外部 SAML または LDAP IDP、Management Server、新しい Edge UI から Apigee SSO へのアクセスをサポートするには、apigee-openldap ノードでポート 9099 を開く必要があります。Apigee SSO の構成の一環として、外部接続で HTTP プロトコルを使用するか、暗号化された HTTPS プロトコルを使用するかを指定できます。
Apigee SSO は、Postgres ノードのポート 5432 でアクセス可能な Postgres データベース(apigee_dex)を使用して、複数のノード間で OAuth2 状態を保持し、高可用性を確保するステートレス サービスです。通常、Edge でインストールした同じ Postgres サーバー(スタンドアロン Postgres サーバーまたはマスター/スタンバイ モードで構成された 2 つの Postgres サーバー)を使用できます。Postgres サーバーの負荷が高い場合は、SSO データベース専用の個別の Postgres ノードを作成することもできます。
標準の OpenID Connect(OIDC)のサポート
SAML と LDAP の Edge 実装は、標準の OpenID Connect(OIDC)と OAuth2 アクセス トークンに依存しています。最新化された Apigee SSO は、厳密に OIDC に準拠したトークンを発行します(email や sub などの標準クレームと、不透明な更新トークンを使用)。詳細については、OAuth 2.0 の概要をご覧ください。
SAML について
SAML 認証には、いくつかの利点があります。SAML を使用すると、次のことが可能になります。
- ユーザー管理を完全に制御できます。組織を離れたユーザーが中央でプロビジョニング解除されると、そのユーザーに対しては Edge へのアクセスが自動的に拒否されます。
- ユーザーが Edge にアクセスするための認証方法を制御します。Edge 組織ごとに異なる認証タイプを選択できます。
- 認証ポリシーを制御します。SAML プロバイダのほうが、企業の標準とより一致した認証ポリシーをサポートしている場合もあります。
- Edge デプロイでのログイン、ログアウト、失敗したログイン試行、高リスクのアクティビティをモニタリングできます。
SAML が有効になっている場合、新しい Edge UI と Edge Management API へのアクセスには OAuth2 アクセス トークンが使用されます。これらのトークンは、IDP から返された SAML アサーションを受け入れる Apigee SSO によって生成されます。
LDAP について
Lightweight Directory Access Protocol(LDAP)は、分散ディレクトリ情報サービスにアクセスして管理するための、オープンな業界標準のアプリケーション プロトコルです。ディレクトリ サービスは、企業のメール ディレクトリなど、多くの場合、階層構造を持つ、整理されたレコードのセットを提供します。
新しい Apigee SSO 内の LDAP 認証では、組み込みの LDAP コネクタが使用されます。コネクタは、organizationalRole と標準属性(mail や uid など)の LDAP 検索を実行して、Apigee レガシー ユーザーを標準の OIDC クレームにネイティブにマッピングします。
Edge for Private Cloud の LDAP は、LDAP 互換サーバーに対する標準の検索およびバインド認証方法をサポートしています。
Apigee SSO は、ユーザーのメールアドレスと標準の OIDC クレーム(email、preferred_username、groups など)を取得し、内部ユーザー レコードを更新して、ファイルに現在のメールアドレスが登録されるようにします。Edge はこのメールを認可に使用するためです。
新しい Edge UI と API の URL
New Edge UI と Edge Management API へのアクセスに使用する URL は、SAML または LDAP を有効にする前に使用していた URL と同じです。新しい Edge UI の場合:
http://edge_UI_IP_DNS:3001
ここで、edge_UI_IP_DNS は、新しい Edge UI をホストするマシンの IP アドレスまたは DNS 名です。New Edge UI の構成の一環として、接続で HTTP または暗号化された HTTPS プロトコルを使用するように指定できます。
Edge Management API の場合:
http://ms_IP_DNS:8080/v1
ここで、ms_IP_DNS は Management Server の IP アドレスまたは DNS 名です。API の構成の一環として、接続で HTTP または暗号化された HTTPS プロトコルを使用するように指定できます。
新しい Apigee SSO で TLS を構成する
デフォルトでは、Apigee SSO への接続は、apigee-openldap をホストするノードのポート 9099 で HTTP を使用します。軽量の Go ベースの ID ブローカーは、HTTP リクエストと HTTPS リクエストをネイティブに処理します。
Apigee SSO は、次の 3 つの接続モードをサポートしています。
- デフォルト: デフォルトの構成では、ポート 9099 で HTTP リクエストがサポートされます。
- SSL_TERMINATION: 選択したポートで Apigee SSO への TLS アクセスを有効にします。このモードでは、TLS 鍵と証明書を指定する必要があります。
- SSL_PROXY: Apigee SSO をプロキシモードで構成します。つまり、コンポーネントの前にロードバランサをインストールし、ロードバランサで TLS を終端します。ロードバランサからのリクエストに使用される Apigee SSO のポートを指定できます。