35.4 OAuthトークンに対するSSOセッションのリンク

いくつかのリソースがOAMで保護される一方で、一部がOAuthによってアクセスされるデプロイメント・シナリオにおいて、様々に混在するアプリケーション間でシームレスなSSOを実現するには、SSOセッションをアクセス・トークンにリンクする必要があります。OAuthトークンに対するSSOセッションのリンクでは、ネイティブ・モバイル・アプリケーションおよびOAuthトークンとSSOトークンの同期が含まれる2-leggedフローを必要とするキーOAuthデプロイメントがサポートされます。

ユースケース・フロー

図35-1に、SSOセッションのリンクのユースケース・フローを示します。

図35-1 OAuthトークンに対するSSOセッションのリンクのユースケース・フロー

図35-1の説明が続きます
「図35-1 OAuthトークンに対するSSOセッションのリンクのユースケース・フロー」の説明

SSOセッションのリンクのためのサーバー変更

SSOのリンクしたJWTトークンの作成
  1. SSOセッションが作成されると、JWTユーザー・トークンも作成されます。JWTユーザー・トークンには、その要求の一部としてSSO "session_id"が含まれます。

  2. このJWTトークンの作成は、構成に基づきます。作成したら、このトークンは、Cookieまたはヘッダーとしてダウンストリーム・アプリケーションに送信できます。現在、構成は、スキーム・レベルのチャレンジ・パラメータとして設定されます。

    デフォルトでは、SSOリンクJWTトークンはCookieで設定されます。

    ノート:

    OAUTH_TOKEN_RESPONSE_TYPEheaderの場合、JWTトークンはCookie名JWTAssertionで設定されます。

    OAUTH_TOKEN_RESPONSE_TYPEcookieの場合、JWTトークンはCookie名OAUTH_TOKENで設定されます。

    ssolink_challengparam.pngの説明が続きます
    図ssolink_challengparam.pngの説明
  3. トークン署名: 起動時に、デフォルトのOAuthキー証明書がサーバーにブートストラップされます。JWTトークンは、アイデンティティ・ドメインの秘密キーで署名されます。JWTトークンがアサーションとして受信されると、X5T値がヘッダーから取得され、トークンの検証に使用できる関連する公開キーがフェッチされます。

SSOのリンクしたJWTトークンの検証
  1. トークンがOAuthトークン・リクエストのJWTベアラー・フローの一部として戻されると、OAMサーバーは、トークンからSSO "session_id"を取得します。

  2. 有効なセッションのチェック: JWTトークンにセッションIDが含まれる場合、サーバーは、それをSSOのリンクしたJWTトークンであると認識します。それは、トークンから"sessionId"要求を取得し、指定されたIDを持つサーバー・セッションがまだ有効であるかどうかをチェックします。

  3. セッションが有効な場合、SSOセッションのサブジェクトが、JWTトークンの"sub"フィールドと比較されます。これが一致した場合、このユーザーのアクセス・トークンが生成され、クライアントに返されます。

MDCフローでのSSOのリンクしたJWTトークンの検証
  1. MDC対応環境の場合、JWTトークン作成の一環として、別の要求である"mdc_sso_link"もトークンに追加されます。この要求には、セッションが固定されているマシンのclusterIdと、UserIdentityStore参照が含まれます

  2. トークンがOAuthトークン・リクエストのJWTベアラー・フローの一部として戻されると、OAMサーバーは、トークンからSSOセッションIDを取得します。

  3. 有効なセッションのチェック: JWTトークンにセッションIDが含まれる場合、サーバーは、それをSSOのリンクしたJWTトークンであると認識します。それは、トークンから"sessionId"要求を、mdc_sso_link要求からclusteridを取得し、セッションを取得します。セッションの有効性をチェックする通常のMDCフローは、ここで維持されます。

  4. セッションが有効な場合、SSOセッションのサブジェクトが、JWTトークンの"sub"フィールドと比較されます。これが一致した場合、このユーザーのアクセス・トークンが生成され、クライアントに返されます。

セッションのIdleTimeOutとSSOのリンクしたトークン 

セッションが15分(構成値)を超えてアイドル状態の場合に、このJWTトークンの有効性をチェックすると、失敗します。これにより、セッションのルールがOAuthアクセス・トークンにも適用されることが保証されます。