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

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

  • Basic 認証:Edge UI にログインする際、または Edge Management API にリクエストを発行する際に、ユーザー名とパスワードを渡します。
  • OAuth2: Edge Basic 認証情報を OAuth2 アクセス トークンおよび更新トークンと交換します。Edge Management API を呼び出すには、API 呼び出しの Bearer ヘッダーに OAuth2 アクセス トークンを含めて渡します。

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 で 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 サポート

前述のように、Edge の SAML 実装は OAuth2 アクセス トークンに依存します。そのため、OAuth2 のサポートが Edge for Private Cloud に追加されました。詳細については、OAuth 2.0 の概要をご覧ください。

SAML について

SAML 認証には、いくつかの利点があります。SAML を使用すると、次のことが可能になります。

  • ユーザー管理を完全に制御できます。組織を離れたユーザーが中央でプロビジョニング解除されると、それらのユーザーには Edge へのアクセスが自動的に拒否されます。
  • Edge にアクセスするユーザーの認証方法を制御できます。さまざまな Edge 組織にそれぞれ異なる認証タイプを選択できます。
  • 認証ポリシーを制御できます。SAML プロバイダのほうが、企業の標準とより一致した認証ポリシーをサポートしている場合もあります。
  • Edge デプロイメントで発生したログイン、ログアウト、失敗したログイン試行、高リスクのアクティビティをモニタリングできます。

SAML が有効な場合、Edge UI と Edge Management API へのアクセスには OAuth2 アクセス トークンが使用されます。これらのトークンは、Apigee SSO モジュールが IDP から返された SAML アサーションに基づいて生成します。

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 を有効にした後も変わりません。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 管理 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 を指定する必要があります。

トークンを使用したリクエスト/レスポンスの流れ