Edge UI と Edge Management API は、Edge Management Server にリクエストを発行することによって動作します。Management Server は、これらのリクエストに対して次の認証タイプをサポートしています。
- 基本認証: ユーザー名とパスワードを渡して Edge UI にログインするか、Edge Management API にリクエストを送信します。
- OAuth2: Edge Basic Auth 認証情報を 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 をサポートする他のサービスもサポートできます。
このセクションの外部 IDP サポートを有効にする手順は、次の点で外部認証とは異なります。
- このセクションでは、SSO のサポートを追加します。
- このセクションは、Edge UI(Classic UI ではない)のユーザーを対象としています。
- このセクションは 4.19.06 以降でのみサポートされています
Apigee SSO について
Edge で SAML または LDAP をサポートするには、Apigee SSO モジュールである apigee-sso をインストールします。次の図は、Edge for Private Cloud インストール環境での Apigee SSO を示しています。
Apigee SSO モジュールは、Edge UI および Management Server と同じノードにインストールすることも、独自のノードにインストールすることもできます。Apigee SSO がポート 8080 経由で Management Server にアクセスできることを確認します。
ブラウザ、外部 SAML または LDAP IDP、Management Server、Edge UI から Apigee SSO へのアクセスをサポートするには、Apigee SSO ノードでポート 9099 を開く必要があります。Apigee SSO の構成の一環として、外部接続で HTTP または暗号化された HTTPS プロトコルを使用するように指定できます。
Apigee SSO は、Postgres ノードのポート 5432 でアクセス可能な Postgres データベースを使用します。通常は、Edge と一緒にインストールした Postgres サーバー(スタンドアロンの Postgres サーバー、またはマスター/スタンバイ モードで構成された 2 つの Postgres サーバー)を使用できます。Postgres サーバーの負荷が高い場合は、Apigee SSO 専用の Postgres ノードを作成することもできます。
Edge for Private Cloud に OAuth2 のサポートを追加
前述のように、SAML の Edge 実装は OAuth2 アクセス トークンに依存しています。そのため、Edge for Private Cloud に OAuth2 サポートが追加されました。詳細については、OAuth 2.0 の概要をご覧ください。
SAML について
SAML 認証には、いくつかの利点があります。SAML を使用すると、次のことが可能になります。
- ユーザー管理を完全に制御できます。組織を離れたユーザーが中央でプロビジョニング解除されると、そのユーザーに対しては Edge へのアクセスが自動的に拒否されます。
- ユーザーが Edge にアクセスするための認証方法を制御します。Edge 組織ごとに異なる認証タイプを選択できます。
- 認証ポリシーを管理します。SAML プロバイダのほうが、企業の標準とより一致した認証ポリシーをサポートしている場合もあります。
- Edge デプロイでのログイン、ログアウト、失敗したログイン試行、高リスクのアクティビティをモニタリングできます。
SAML が有効になっている場合、Edge UI と Edge Management API へのアクセスには OAuth2 アクセス トークンが使用されます。これらのトークンは、IDP から返された SAML アサーションを受け入れる Apigee SSO モジュールによって生成されます。
SAML アサーションから生成された OAuth トークンは 30 分間有効で、更新トークンは 24 時間有効です。開発環境では、テストの自動化や継続的インテグレーション/継続的デプロイ(CI/CD)など、有効期間の長いトークンを必要とする一般的な開発タスクの自動化がサポートされている場合があります。自動化タスク用の特別なトークンの作成については、自動化タスクでの SAML の使用をご覧ください。
LDAP について
Lightweight Directory Access Protocol(LDAP)は、分散ディレクトリ情報サービスにアクセスして管理するための、オープンな業界標準のアプリケーション プロトコルです。ディレクトリ サービスは、企業のメール ディレクトリなど、多くの場合、階層構造を持つ、整理されたレコードのセットを提供します。
Apigee SSO 内の LDAP 認証では、Spring Security LDAP モジュールが使用されます。そのため、Apigee SSO の LDAP サポートの認証方法と構成オプションは、Spring Security LDAP の認証方法と構成オプションに直接関連しています。
Edge for Private Cloud での LDAP は、LDAP 互換サーバーに対して次の認証方法をサポートしています。
- 検索とバインド(間接バインド)
- Simple Bind(直接バインディング)
Apigee SSO は、ユーザーのメールアドレスを取得して内部ユーザー レコードを更新し、Edge が認可に使用するメールアドレスを最新の状態に保ちます。
Edge UI と API の URL
Edge UI と Edge Management API へのアクセスに使用する URL は、SAML または LDAP を有効にする前と同じです。Edge UI の場合:
http://edge_UI_IP_DNS:9000 https://edge_UI_IP_DNS:9000
ここで、edge_UI_IP_DNS は Edge UI をホストするマシンの IP アドレスまたは DNS 名です。Edge UI の構成の一環として、接続で HTTP または暗号化された HTTPS プロトコルを使用するように指定できます。
Edge Management API の場合:
http://ms_IP_DNS:8080/v1 https://ms_IP_DNS:8080/v1
ここで、ms_IP_DNS は Management Server の IP アドレスまたは DNS 名です。API の構成の一環として、接続で HTTP または暗号化された HTTPS プロトコルを使用するように指定できます。
Apigee SSO で TLS を構成する
デフォルトでは、Apigee SSO への接続は、Apigee SSO モジュールである apigee-sso をホストするノードのポート 9099 で HTTP を使用します。apigee-sso には、HTTP リクエストと HTTPS リクエストを処理する Tomcat インスタンスが組み込まれています。
Apigee SSO と Tomcat は、次の 3 つの接続モードをサポートしています。
- DEFAULT: デフォルトの構成では、ポート 9099 で HTTP リクエストがサポートされます。
- SSL_TERMINATION: 選択したポートで Apigee SSO への TLS アクセスを有効にします。このモードでは、TLS 鍵と証明書を指定する必要があります。
- SSL_PROXY: Apigee SSO をプロキシモードで構成します。つまり、
apigee-ssoの前にロードバランサをインストールし、ロードバランサで TLS を終端します。ロードバランサからのリクエストにapigee-ssoで使用されるポートを指定できます。
ポータルで外部 IDP のサポートを有効にする
Edge で外部 IDP のサポートを有効にした後、必要に応じて Apigee Developer Services ポータル(略して「ポータル」)でも有効にできます。ポータルは、Edge へのリクエストを行う際に SAML 認証と LDAP 認証をサポートします。これは、ポータルへのデベロッパー ログイン用の SAML 認証および LDAP 認証とは異なります。デベロッパー ログイン用の外部 IDP 認証は、別途構成します。詳細については、IDP を使用するようにポータルを構成するをご覧ください。
ポータルの構成の一環として、Edge とともにインストールした Apigee SSO モジュールの URL を指定する必要があります。
