デフォルトの IDP の構成

サードパーティ ID プロバイダー (IDP) で Shopper API Access and Login (SLAS) を使用しており、SLAS でサポートされていない IDP を使用したい場合は、SLAS のデフォルト IDP 機能を使用して IDP と通信できます。

このガイドでは、SLAS Admin API または UI を使用して、SLAS でデフォルト IDP を構成するために必要な手順について説明します。

IDP に応じて、次の 2 つの構成方法があります。

SLAS は、OpenID Connect をサポートする IDP のみをサポートします。SLAS は SAML をサポートしていません。

デフォルトの IDP を構成するには、サポートされている IDP と同じ SLAS プロパティが必要です。

  • nameclientIdclientSecret、IDP URL、スコープ、および preferenceValue はすべて必須の SLAS IDP クライアント構成値です。詳細については、ID プロバイダーの登録を参照してください。

ただし、次の追加要件があります。

  • oidcClaimMapper プロパティを指定します。これは、IDP のトークンクレームを SLAS の必要な IDP キーにマップして、ユーザーが正常に認証されたときにユーザー情報を取得するために使用されます。この oidcClaimMapper プロパティは文字列のリストであり、各文字列の形式は $KEY=$VAL です。ここで、$KEY は必須の SLAS IDP キー、$VAL は対応する IDP トークンクレームの名前です。たとえば accessToken=access_token の場合、accessToken は SLAS キーで、access_token は IDP クレームです。
  • 次の各キーを該当する IDP 値にマップします。
    • accessToken: アクセストークンの値。
    • accessTokenTTL: アクセストークンの TTL (有効期限)。
    • refreshToken: リフレッシュトークンの値。
    • idToken: ID トークンの値。
    • subject: 件名。買い物客の一意の識別子です。
    • userId: これも件名です。買い物客の一意の識別子です。
    • email: 買い物客の E メール。
    • familyName: 買い物客の姓。
    • givenName: 買い物客の名。
    • name: 買い物客の氏名。
  • IDP /token/userinfo のエンドポイントに対して ID プロバイダーから返された値が正しいことを確認します。

次の例は、SLAS IDP 構成の開始点として使用できます。

SLAS Admin ユーザーインターフェイス (UI) を使用してデフォルト IDP を構成するには、次のようにします。

  1. Idps タブに移動します。
  2. Add Idp (Idp の追加) を選択します。
  3. Idp Name (Idp 名) フィールドを選択し、ドロップダウンメニューから default を選択します。
  4. 該当するすべての情報を追加します。Default IDP Claim Map (デフォルトの IDP クレームマップ) フィールドに、前のセクションで説明した oidcClaimMapper キーを追加します。
  5. 構成情報を保存します。

サードパーティの IDP が Open ID Connect Discovery プロトコルをサポートしていない場合は、SLAS Admin API の registerIdentityProvider エンドポイントを使用してデフォルトの IDP を構成できます。以下に例を示します。

IDP が Open ID Connect Discovery プロトコルをサポートしている場合、デフォルトの IDP を構成する最も簡単な方法は、ID プロバイダーの .../well-known/openid-configuration エンドポイントを使用することです。その後、SLAS はデフォルトの IDP を自動的に構成できます。

自動化されたデフォルト IDP 構成に必要な次のプロパティを指定します。

  • wellKnownUrl: IDP の Open ID Connect Discovery エンドポイントの URL。
  • useWellKnown: ブール値を true に設定すると、SLAS が Open ID Connect Discovery エンドポイントを使用してデフォルトの IDP を自動的に構成しようとすることを示します。

以下に例を示します。

成功したサードパーティの IDP レスポンスには、"claims_parameter_supported": true と SLAS 構成の OIDC クレームマッピングが含まれます。claims_parameter_supported が返されない場合、SLAS はデフォルトのマッピングを使用します。UserInfo の IDP トークンクレームは、claims-supported セクションからの /.well-known/openid-configuration/ レスポンスで確認できます。

その後、SLAS は wellKnownUrl を構成に使用し、成功した場合は、次の例のような情報を返します。

SLAS は IDP レスポンスを受け取り、oidcClaimMapper 情報を適用します。次の場合、認証は失敗し、400 レスポンスコードが返されます。

  • 必須のマッピングパラメーターが欠落している場合。
  • 必須のマッピングフィールドまたはマッピング値が無効な場合 (たとえば、無効な URL など)。
  • 1 つ以上の対応するクレームが IDP トークンレスポンスに見つからない場合。

エラーが発生した場合は、oidcClaimMapper 情報にエラーがないか確認します。マッピングのすべての必須フィールドに有効な値が含まれていることを確認します。