外部 IDP 認証の概要

Edge UI と Edge Management API は、Edge Management Server にリクエストを発行することによって動作します。Management Server は、これらのリクエストに対して次の認証タイプをサポートしています。

  • 基本認証: ユーザー名とパスワードを渡して、Edge UI にログインするか、Edge 管理 API にリクエストを行います。
  • OAuth2: 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 がサポートされている場合、それらのサービスでも SSO をサポートできます。

このセクションで説明する外部 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 のポート使用状況

Apigee SSO モジュールは、Edge UI および Management Server と同じノードにインストールすることも、独自のノードにインストールすることもできます。Apigee SSO がポート 8080 経由で管理サーバーにアクセスできることを確認します。

ブラウザ、外部 SAML または LDAP IDP、管理サーバー、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 にあるものと直接相関します。

Private Cloud 用 Edge の LDAP は、LDAP 互換サーバーに対して次の認証方法をサポートしています。

  • 検索とバインド(間接バインディング)
  • Simple Bind(直接バインディング)

Apigee SSO は、ユーザーのメールアドレスを取得して、内部ユーザー レコードを更新しようとします。これは、Edge が認可目的でこのメールアドレスを使用するため、ファイルに現在のメールアドレスを登録するためです。

Edge UI と API の URL

Edge UI と Edge 管理 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 つの接続モードをサポートしています。

  • デフォルト: デフォルトの構成では、ポート 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 を指定する必要があります。

トークンを使用したリクエスト/レスポンス フロー