Edge for Private Cloud での SAML のサポート

Edge for Private Cloud v. 4.17.09

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 では認証メカニズムとして Security Assertion Markup Language(SAML)2.0 もサポートしています。SAML が有効な場合も、Edge UI と Edge Management API へのアクセスでは OAuth2 アクセス トークンが使用されます。ただし、SAML ID プロバイダから返される SAML アサーションに基づいてアクセス トークンを生成できるようになりました。

: SAML は認証メカニズムとしてのみサポートされています。認可には使用できません。したがって、認可情報を維持するには引き続き Edge OpenLDAP データベースを使用します。詳細については、ロールの割り当てをご覧ください。

SAML ではシングル サインオン(SSO)環境がサポートされます。Edge で SAML を使用すれば、Edge UI と API での SSO をサポートできるだけでなく、提供する他のサービスが SAML をサポートしていれば、それらのサービスでも SSO を使用できます。

Edge for Private Cloud に追加された OAuth2 サポート

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

SAML の利点

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

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

Edge で SAML を使用する

Edge で SAML をサポートするには、Edge SSO モジュールである apigee-sso をインストールします。次の図は、Edge for Private Cloud インストールでの Edge SSO を示しています。

Edge SSO モジュールは、Edge UI および Management Server と同じノードにインストールすることも、専用のノードにインストールすることもできます。Edge SSO がポート 8080 で Management Server にアクセスできるようにしてください。

ブラウザ、外部 SAML IDP、Management Server、Edge UI からの Edge SSO へのアクセスをサポートするには、Edge SSO ノードでポート 9099 を開く必要があります。Edge SSO を構成する際、外部接続で HTTP または暗号化 HTTPS プロトコルを使用するように指定できます。

Edge SSO は、Postgres ノード上のポート 5432 でアクセス可能な Postgres データベースを使用します。通常は、Edge とともにインストールされた同じ Postgres サーバー(スタンドアロンの Postgres サーバー、またはマスター/スタンバイ モードで構成されている 2 つの Postgres サーバー)を使用できます。Postgres サーバーにかかる負荷が大きい場合は、Edge SSO 専用の Postgres ノードを別に作成することもできます。

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

SAML アサーションが生成された後の OAuth トークンの有効期間は 30 分、更新トークンの有効期間は 24 時間です。開発環境で、テスト自動化や継続的インテグレーション/継続的デプロイ(CI/CD)などの一般的な開発タスクの自動化をサポートしている場合は、これよりも有効期間の長いトークンが必要になります。自動タスク用の特別なトークンを作成する方法については、自動タスクでの SAML の使用をご覧ください。

Edge UI と API の URL

Edge UI と Edge Management API へのアクセスに使用する URL は、SAML を有効にした後も変わりません。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 プロトコルを使用するように指定できます。

Edge SSO の TLS を構成する

デフォルトでは、Edge SSO への接続には、Edge SSO モジュールである apigee-sso をホストしているノードのポート 9099 を介した HTTP が使用されます。apigee-sso には、HTTP リクエストと HTTPS リクエストを処理する Tomcat インスタンスが組み込まれています。

Edge SSO と Tomcat は次の 3 つの接続モードをサポートしています。

  • DEFAULT - デフォルト構成では、ポート 9099 の HTTP リクエストがサポートされます。
  • SSL_TERMINATION - 任意のポートで Edge SSO への TLS アクセスを有効にできます。このモードを使用するには、TLS 鍵と証明書を指定する必要があります。
  • SSL_PROXY - Edge SSO をプロキシモードで構成します。つまり、apigee-sso の前面にロードバランサをインストールし、そのロードバランサで TLS を終端します。apigee-sso でロードバランサからのリクエストに使用するポートを指定できます。

Developer Services ポータルと API BaaS で SAML サポートを有効にする

Edge で SAML サポートを有効にした後は、必要に応じて次の項目に対して SAML を有効にできます。

  • API BaaS - BaaS Portal と BaaS Stack の両方が、ユーザー認証用の SAML をサポートしています。詳細については、API BaaS で SAML を有効にするをご覧ください。
  • Developer Services ポータル - ポータルは、Edge へのリクエストの実行時に SAML 認証をサポートします。これは、ポータルにログインするデベロッパーの SAML 認証とは異なることにご注意ください。デベロッパーのログイン SAML 認証は別途、構成します。詳細については、SAML を使用して Edge と通信するように Developer Services ポータルを構成するをご覧ください。

Developer Services ポータルと API BaaS の構成の一環として、Edge とともにインストールした Edge SSO モジュールの URL を指定する必要があります。

Edge と API BaaS は同じ Edge SSO モジュールを共有するため、シングル サインオンをサポートしています。つまり、Edge または API BaaS のいずれかにログインすると、両方にログインします。つまり、すべてのユーザー認証情報に対して 1 つのロケーションのみを維持する必要があります。

必要に応じて、シングル サインアウトも構成できます。Edge UI からのシングル ログアウトを構成するをご覧ください。