外部ユーザーのフローの例

下図は、外部ユーザーの認証情報と権限情報のフローを示しています。色は以下のように使用されます。

  • オレンジ:認証情報
  • 青:エンドポイントのアクセス権情報
  • 緑:リソースのアクセス権情報
  • 赤:プロキシユーザーとセッションユーザーの情報

いくつかの値を使用して、複数の種類のアクセスを決定します。これらの値は最初(1 つの種類のアクセスに適用されていない場合)は黒で表示されてから、1 つ以上の特定の色(特定の種類のアクセスに対してプロセスのその時点で使用されていることを値が反映する)で表示されます。

以下の例では、API 呼び出しをトリガしているのは Ray Newton さんであり、ブラウザベースのアプリケーションを使用している外部ユーザーです。


外部ユーザーの認証フロー
  1. Ray Newton さんが API 呼び出しをトリガすると、呼び出し元アプリケーションは最初に Guidewire Hub に JWT を要求します。JWT を入手するプロセスを開始するために、呼び出し元アプリケーションはそのクライアント ID(00ubx7m33sHP1tsew7b4)、IdP の ID(acmeIdP_ID)、そのアプリケーションのリソースアクセス戦略(cc.username)、および追加のデプロイ情報(tenant.acmeproject.defaultplanet_class.prod)を送信します。
  2. ユーザーを認証するために、Guidewire Hub は、ユーザー名(rnewton@email.com)とパスワード(aPassword)を、何らかの種類のログイン画面で取得します。そして、この情報を適切な IdP に送信します。IDP は、ユーザーを認証し、そのユーザー名(rnewton@email.com)、ユーザーのグループ(gwa.prod.cc.Insured)、およびユーザーのリソースアクセス ID を含む SAML 応答を提供します。Ray Newton さんの場合、保険証券番号のリスト(PA-123456)です。
  3. Guidewire Hub が、コードを呼び出し元アプリケーションに送信します。呼び出し元アプリケーションは、このコードを使用して JWT を要求します。
  4. Guidewire Hub が JWT を生成して呼び出し元アプリケーションに送信します。この JWT には、クライアント ID(cid)、リソースアクセス戦略(cc_policyNumbers)と追加のデプロイ情報を指定する scp トークンクレーム、ユーザーのグループ(gwa.prod.cc.Insured)を指定する groups トークン、およびユーザーのリソースアクセス ID(PA-123456)を指定する cc_policyNumbers トークンが含まれています。
  5. 呼び出し元アプリケーションは、JWT とともに API 要求を ClaimCenter に送信します。
  6. ClaimCenter によって、エンドポイントのアクセス権が決定されます。JWT にリストされたグループ(gwa.prod.cc.Insured)に基づいて、Insured.role.yaml の API 役割ファイルが使用され、エンドポイントのアクセス権が定義されます。
  7. 次に、ClaimCenter によって、リソースアクセス戦略が決定されます。JWT(cc_policyNumbers)内のリソースアクセス戦略値に基づいて、policyNumbers access.yaml ファイルでの定義に従って、リソースアクセス権が付与されます。(* ClaimCenterpolicyNumbers_ext-1.0.access.yaml から始まりますが、このファイルは別の access.yaml ファイルを参照します。それらの名前は policyNumbers で始まります)。
  8. セッションに割り当てるプロキシユーザーを決定するために、ClaimCenterRestAuthenticationSourceCreator プラグインを呼び出します。JWT では cc_policyNumbers のリソースアクセス戦略が指定されています。それにより、プラグインは、外部ユーザー用プロキシユーザーの extuser を返します。
  9. ClaimCenter によって要求が処理されます。
    1. セッションユーザーは、プロキシ外部ユーザーの extuser です。
    2. エンドポイントアクセス権は、Insured.role.yaml によって定義されます。
    3. リソースのアクセス権は、PA-123456 のリソースアクセス ID を使用して policyNumbers access.yaml によって定義されます。
  10. ClaimCenter によって、最初の呼び出しに対する応答が渡されます。