外部 IDP 認証の概要(新しい Edge UI)

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

  • Basic 認証: Edge UI にログインするか、ユーザー名とパスワードを渡して Edge Management API にリクエストを送信します。
  • OAuth2: Edge Basic 認証の認証情報を 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 IDP と LDAP IDP はどちらもシングル サインオン(SSO)環境をサポートしています。Edge で外部 IDP を使用すると、Edge UI と API に加えて、ユーザーが提供し、かつその外部 IDP をサポートする他のサービスでも SSO をサポートできます。

このセクションで説明する外部 IDP サポートを有効にする手順は、外部認証とは次の点で異なります。

  • このセクションでは、SSO のサポートを追加します。
  • このセクションは、(Classic UI ではなく)Edge 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 経由で 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 のサポートが追加される

前述のように、Edge の SAML の実装は 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 互換サーバーに対する次の認証方法をサポートしています。

  • 検索とバインド(間接バインディング)
  • シンプル バインド(直接バインディング)

Apigee SSO はユーザーのメールアドレスを取得し、そのメールアドレスを使用して内部ユーザー レコードを更新しようと試みます。これにより、Edge がこのメールアドレスを認可のために使用するため、最新のメールアドレスが登録されていることになります。

Edge UI と API の URL

Edge UI と Edge Management API へのアクセスに使用する URL は、SAML または LDAP を有効にする前に使用した URL と同じです。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 ポータル(略して「ポータル」)で外部 IDP サポートを有効にできます。ポータルでは、Edge へのリクエスト時に SAML 認証と LDAP 認証がサポートされています。これは、デベロッパーがポータルにログインする際の SAML 認証や LDAP 認証とは異なります。デベロッパーのログイン用に外部 IDP 認証を個別に構成します。詳細については、IDP を使用するようにポータルを構成するをご覧ください。

ポータルを構成する際に、Edge でインストールした Apigee SSO モジュールの URL を指定する必要があります。

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