すべてのプロダクト
Search
ドキュメントセンター

Alibaba Cloud Service Mesh:イングレスゲートウェイでの OIDC ベースのシングルサインオンの設定

最終更新日:Mar 12, 2026

複数のアプリケーションが Service Mesh (ASM) のイングレスゲートウェイを共有する場合、通常、各アプリケーションは独自の認証ロジックを実装するため、作業が重複し、セキュリティリスクが増大します。OAuth 2.0 上に構築された ID レイヤーである OpenID Connect (OIDC) は、ゲートウェイレベルでのシングルサインオン (SSO) を可能にします。ユーザーが一度ログインすると、ゲートウェイは検証済みの JSON Web トークン (JWT) を、コードの変更なしにすべてのバックエンドアプリケーションに転送します。

仕組み

  1. ユーザーがイングレスゲートウェイにリクエストを送信します。

  2. ゲートウェイは有効なセッションクッキーを確認します。存在しない場合、ユーザーを ID プロバイダー (IdP) のログインページにリダイレクトします。

  3. 認証後、IdP は認証コードとともにユーザーをゲートウェイのコールバック URL (/oauth2/callback) にリダイレクトします。

  4. ゲートウェイはコードをトークンと交換し、セッションクッキーを設定し、Authorization ヘッダーに JWT を含めてリクエストをバックエンドに転送します。

  5. バックエンドは JWT ペイロードからユーザー ID を読み取ります。IdP への直接の呼び出しは不要です。

前提条件

開始する前に、以下を確認してください。

IdP の設定後、OIDC 設定のために以下の値を収集します。

リダイレクト URI:   http://<ingress-gateway-ip>/oauth2/callback
発行者 URL:     https://eiam-api-cn-hangzhou.aliyuncs.com/v2/<idaas-instance-id>/app_<app-id>/oidc
クライアント ID:      <your-client-id>
クライアントシークレット:  <your-client-secret>
重要

リダイレクト URI は、ご利用の IdP に登録されたコールバック URL と完全に一致する必要があります。不一致があると、IdP がコールバックリクエストを拒否するため、認証が失敗します。

説明

以下の手順では、ID プロバイダーとして Alibaba Cloud IDentity as a Service (IDaaS) を使用します。Keycloak などのセルフマネージド OIDC IdP を使用する場合は、「Keycloak と ASM を統合してシングルサインオンを実装する」をご参照ください。

OIDC 設定の構成

  1. ASM コンソールにログインします。左側のナビゲーションウィンドウで、[Service Mesh] > [メッシュ管理] を選択します。

  2. [メッシュ管理] ページで、対象の ASM インスタンスの名前をクリックします。左側のナビゲーションウィンドウで、[ASM ゲートウェイ] > [イングレスゲートウェイ] を選択します。

  3. [イングレスゲートウェイ] ページで、対象のイングレスゲートウェイをクリックします。左側のナビゲーションウィンドウで、[ゲートウェイセキュリティ] > [OIDC シングルサインオン] を選択します。

  4. [OIDC 設定] ステップで、[ゲートウェイ OIDC シングルサインオンを有効にする] をオンにし、以下のパラメーターを設定します。

    説明

    利用可能なエンドポイントとサポートされているスコープを検出するには、ご利用の IdP の well-known 設定エンドポイントにクエリを実行します。

    curl <your-issuer-url>/.well-known/openid-configuration | jq
    パラメーター説明
    リダイレクトアドレスOIDC コールバックのプロトコルとアドレス。この例では、[イングレスゲートウェイの IP アドレスを使用][http] を選択します。
    コールバックアドレス認証後に IdP がユーザーをリダイレクトする完全な URL。
    OIDC 発行者 URLOIDC 発行者を識別し、認証するために使用される URL。ゲートウェイはこの URL からディスカバリエンドポイントを導出し、IdP の公開鍵とエンドポイントをフェッチします。
    クライアント IDアプリケーションを登録したときに IdP によって割り当てられたクライアント ID。
    クライアントシークレットIdP によって割り当てられたクライアントシークレット。
    Cookie シークレットセキュアなセッションクッキーのためのシード文字列。Base64 でエンコードできます。
    Cookie の有効期限セッションクッキーが有効である期間。0 に設定すると、クッキーは有効期限が切れません。
    Cookie の更新間隔セッションクッキーが更新される頻度。自動更新を無効にする場合は 0 に設定します。
    スコープIdP にリクエストする OIDC スコープ (例: openidemailprofile)。IdP は指定されたスコープをサポートしている必要があります。

    OIDC configuration

  5. [次へ] をクリックします。

パスのマッチングルールの構成

  1. [マッチングルール] ステップで、OIDC 認証を必要とするリクエストパスを設定します。この例では、[一致した場合に認証] を選択し、パスを /productpage に設定します。/productpage へのリクエストは認証のために IdP にリダイレクトされますが、他のパスへのリクエストは OIDC チェックなしで通過します。

    パラメーター説明
    一致モードパスルールの適用方法を制御します。有効な値: [一致した場合に認証] -- 指定されたパスへのリクエストは認証が必要です。[一致した場合に認証をバイパス] -- 指定されたパスへのリクエストは認証をスキップします。
    マッチングルールの追加[パス] スイッチをオンにし、パスを指定します。この例では、パスを /productpage に設定します。
  2. [送信] をクリックします。[完了] ステップで、OIDC ベースの SSO が設定されたことが確認されます。ページには、ウィザードによって生成されたネイティブの Istio セキュリティリソースが表示されます。[YAML] をクリックして、リソースの設定を確認します。

設定の確認

  1. ブラウザを開き、http://<ingress-gateway-ip>/productpage にアクセスします。<ingress-gateway-ip> をご利用のイングレスゲートウェイの IP アドレスに置き換えます。設定が正しければ、ブラウザは IdP のログインページにリダイレクトされます。認証後、ブラウザはリダイレクトされ、アプリケーションページが表示されます。

    OIDC verification

ログアウトの設定

完全な SSO ログアウトには、ゲートウェイのセッションクッキーのクリアと IdP セッションの終了という 2 つのアクションが必要です。

アクショントリガー方法
ゲートウェイのセッションクッキーをクリアするhttp://<ingress-gateway-ip>/oauth2/sign_out にアクセスします。ゲートウェイは自動的にセッションクッキーをクリアします。
IdP セッションを終了するご利用の IdP によって公開されているログアウト URI にアクセスします。

シングルステップログアウト (ASM v1.18.147 以降)

ASM v1.18.147 以降では、OIDC 設定ページで IdP ログアウトエンドポイントを設定することにより、両方のアクションを組み合わせることができます。

  1. OIDC 設定ページに IdP ログアウトエンドポイントの URL を入力します。

  2. /oauth2/sign_out パスを [一致した場合に認証をバイパス] に設定するマッチングルールを追加し、サインアウトパスが認証を必要としないようにします。

この設定後、/oauth2/sign_out にアクセスすると、セッションクッキーがクリアされ、1 つのステップで IdP ログアウトエンドポイントにリダイレクトされます。IDaaS のシングルログアウトの詳細については、「SLO」をご参照ください。

よくある質問

アプリケーションで OIDC 認証を処理する必要がありますか?

いいえ。イングレスゲートウェイが OIDC フロー全体を処理します。ご利用のアプリケーションは、IdP によって発行された JWT を含む Authorization ヘッダー付きの各リクエストを受け取ります。ゲートウェイはこのトークンをすでに検証済みのため、アプリケーションはそれを直接解析して subemail、またはカスタムクレームなどのユーザー情報を抽出できます。IdP への追加の呼び出しは不要です。

セッションクッキーは何のために使用されますか?

ゲートウェイは、各ユーザーの認証状態を追跡するためにセッションクッキーを使用します。ご利用のアプリケーションはこのクッキーを安全に無視できます。ユーザー ID にアクセスするには、代わりに Authorization ヘッダーから JWT を読み取ってください。

IdP から拡張ユーザー属性を取得するにはどうすればよいですか?

追加の ASM 設定は不要です。拡張属性は、ご利用の IdP の実装に依存します。Alibaba Cloud IDaaS については、「OIDC id_token 拡張フィールドのルール」をご参照ください。

参照