このページでは、Workforce Identity 連携セッションで Identity-Aware Proxy(IAP)を管理する方法について説明します。
Workforce プールを設定するときに、 Google Cloud と IdP 間のセッション継続時間を指定できます。セッション継続時間は 15 分~ 12 時間の間で指定できます。この設定は、IAP セッション Cookie の長さでもあります。デフォルトのセッション継続時間は 1 時間です。
セッションが期限切れになると、エンドユーザーはサードパーティの IdP にリダイレクトされ、ログインします。サードパーティ ID プロバイダのセッションがまだアクティブな場合、ログインはサイレントで行われます。
セッション継続時間の設定の詳細については、Workforce Identity プール プロバイダを管理するをご覧ください。
AJAX リクエストを使用してセッションを確立する
Workforce Identity 連携を使用する場合は、AJAX リクエストを送信してセッションを確立することもできます。
IAP は、Cookie を使用してユーザー セッションを管理し、一連のリダイレクトを使用してログイン中にセッションを確立します。アプリケーションがクロスオリジン リソース シェアリング(CORS)を使用して、ソースドメインから IAP で保護されたアプリケーションをホストするターゲット ドメインに AJAX リクエストを行う場合は、まず、ターゲット ドメインで IAP セッションを帯域外で確立する必要があります。ソースドメインとターゲット ドメインの間で Cookie を共有できない。
ターゲット ドメインでセッションが確立されたら、JavaScript メソッドはデフォルトで Cookie を添付しないため、認証情報を含むようにリクエストを構成します。
XMLHttpRequestオブジェクトの場合、withCredentialsプロパティをtrueに設定します。Fetch APIの場合、credentialsオプションをincludeまたはsame-originに設定します。
期限切れまたは未認証の AJAX リクエストの場合、IAP は HTTP 401: Unauthorized ステータス コードを返します。AJAX リクエストが 401 ではなく 302 ステータス コードを受け取る場合は、値が "XMLHttpRequest" の X-Requested-With ヘッダーを追加して、リクエストが JavaScript から送信されたことを示します。HTTP 401 レスポンスを受信した後にセッションを確立または更新するには、?gcp-iap-mode=DO_SESSION_REFRESH を追加したターゲット ドメイン URL の新しいウィンドウを開きます。