クレームマッピングでSitecoreAIロールを割り当てる

日本語翻訳に関する免責事項

このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。

デフォルトでは、チームメンバーが組織に加わりSitecoreAIUserSitecoreAIで手動で役割を割り当てる必要があります。しかし、チームメンバーがSSOでログインしSitecoreAISitecoreAI

大事な

クレームマッピングで追加されたロールは、ロールマネージャーやユーザーマネージャーには表示されません。

そのためには、IDPを追加のクレームを返すように設定し、希望するユーザーに割り当ててください。次に、Sitecore Cloud Portalでこれらの追加請求をSitecore IDトークンにマッピングする必要があります。最後に、Sitecore IDトークンクレームをSitecoreAI環境にマッピングする必要があります。

Describes the claims mapping setup and user login flow

このウォークスルーでは、以下の方法を説明します:

始める前に

あなたには必要です:

  • Sitecore Cloud Portal組織におけるOrganization AdminまたはOrganization Ownerの役割。

  • アイデンティティプロバイダーの請求設定を編集する機能。

  • SitecoreAI環境コードリポジトリを自動でロールを割り当てる機能を修正できる機能。

アイデンティティプロバイダーでクレームを設定する

アイデンティティプロバイダーでは、役割をマッピングするために使いたいクレームを特定し、追加SitecoreAI必要があります。

例えば、groupクレームを使って役割を割り当てたい場合は、IDトークンまたはSAMLレスポンスにgroupクレームを含めるようにIdPを設定する必要があります。あなたのIdPから返されるクレームは、文字列または文字列の配列でなければなりません。

希望するIDPで請求の追加方法は、関連する書類を参照することで学べます。例えば:

OpenID Connectを使う場合は、Scopesフィールドにスコープを追加し、設定されたクレームがIdPから返されるようにする必要があるかもしれません。

地図IdPが主張するSitecore IDトークン

IdPでクレームを設定した後、それをユーザーのSitecore IDトークンにマッピングする必要があります。

もしあなたのIdPがソースクレームの名前と正則表現パターンに一致するクレームを返した場合、対応するターゲットクレームがSitecore IDトークンに追加されます。

IdPの請求をSitecore IDトークンにマッピングするには:

XM Cloudは現在SitecoreAIとなっています

一部のコード例、画像、UIラベルは、エンジニアリング資産の更新中もXM Cloudを使用している場合があります。

  1. Sitecore Cloud Portal SSOページに移動し、クレームをマッピングしたい接続を見つけてConfigureをクリックします。

  2. 接続設定ページでClaims mappingをクリックします。

  3. Claims mappingダイアログでAdd claims mappingをクリックします。

  4. Source claimsセクションのName欄に、マッピングしたいIdPのクレームを入力します。

    Valueフィールドで、IdPの請求で返される値に合わせる正則表現パターン(ECMAScriptの構文)を入力します。

    注記

    正則表現の文字通りの表記はサポートされていません。

    大文字に非対抗的な正則表現が必要な場合は、i修飾子を使いましょう。

  5. Target claimsセクションのNameフィールドで、IdPのIDトークンまたはSAML応答に一致するソースクレームが存在した場合に追加Sitecore IDされるクレームの名前を入力します。

  6. Value欄で、ソースクレームの名前と正則表現パターンに一致するクレームを持つユーザーに割り当てたいSitecoreAIアプリロールを入力します。利用可能な役割を見るには、ロールマネージャーをご利用ください。

    注記

    マッピングされたクレームがSitecore IDトークンとアクセストークンSitecore追加されると、自動的にSSO接続のIDが付けられます。例えば、ターゲットクレーム名がxmc_roleで、SSO接続IDがcon_Veryg0od1D123456であれば、Sitecore IDトークン内のクレーム名とアクセストークンSitecore con_Veryg0od1D123456.xmc_roleになります。

  7. さらにターゲットクレームを追加するには、Add target claimをクリックしてください。複数のターゲットクレームをマッピングに追加すると、それらすべてがSitecore IDトークン内の単一のクレームとして追加されます。

  8. 追加のクレームマッピングを追加するには、Add claims mappingをクリックして、ステップ4から7まで繰り返してください。SSO接続あたり最大20件のクレームマッピングが可能です。

  9. 希望する請求をマッピングしたら、Saveをクリックします。

    大事な

    ユーザーはトークン交換ごとに1つのクレームしかマッピングできませんが、ターゲットクレーム名が同じであれば異なるマッピングから複数のターゲットクレーム値を持つことができます(クレームマッピングの例にあるユーザーEを参照)。複数のクレームがマッピングされている場合、ログイン時に警告メッセージが表示され、クレームマッピングが失敗します(クレームマッピングの例にあるUser Dを参照)。

マッピングされたクレームがSitecore IDトークンとSitecoreアクセストークンに追加されたかを確認するには、ユーザーのクレームを確認してください

SitecoreAI役割に対するSitecore IDトークン請求の地図

IDPのクレームをSitecore IDトークンにマッピングした後、SitecoreAI環境内のSitecore IDトークンクレームをロールにマッピングするためのconfigファイルを作成する必要があります。

設定ファイルをSitecoreAI環境に作成・デプロイするには:

  1. 例えばconfigファイルを作成し、CustomClaims.configして以下のコードを追加します。

    <?xml version="1.0" encoding="utf-8"?>
    <configuration>
      <sitecore>
        <federatedAuthentication>
          <identityProviders>
            <identityProvider id="Auth0">
              <transformations>
                <transformation
                  name="roles"
                  type="Sitecore.Owin.Authentication.Services.DefaultTransformation, Sitecore.Owin.Authentication">
                  <sources hint="raw:AddSource">
                    <!--Add the target claims that you mapped in Sitecore Cloud Portal here-->
                  </sources>
                  <targets hint="raw:AddTarget">
                    <claim name="http://schemas.microsoft.com/ws/2008/06/identity/claims/role" />
                  </targets>            
                </transformation>         
              </transformations>
            </identityProvider>
            <identityProvider id="Bearer">
              <transformations>
                <transformation
                  name="roles"
                  type="Sitecore.Owin.Authentication.Services.DefaultTransformation, Sitecore.Owin.Authentication">
                  <sources hint="raw:AddSource">
                    <!--Add the target claims that you mapped in Sitecore Cloud Portal here-->
                  </sources>
                  <targets hint="raw:AddTarget">
                    <claim name="http://schemas.microsoft.com/ws/2008/06/identity/claims/role" />
                  </targets>            
                </transformation>         
              </transformations>
            </identityProvider>
          </identityProviders>
        </federatedAuthentication>
      </sitecore>
    </configuration>
  2. Cloud Portalで作成したターゲットクレームをマッピングするには、sourcesセクションに以下の形式でclaim要素を追加します。

    <claim name="{:placeholder-token:}{CONNECTION_ID}{/:placeholder-token:}.{:placeholder-token:}{TARGET_CLAIM_NAME}{/:placeholder-token:}" />

    • CONNECTION_ID - クレームマッピングを設定するSSO接続のID。

    • TARGET_CLAIM_NAME - Sitecore Cloud Portalで定義したターゲットクレームの名前。

    ターゲットクレームの例では、各アイデンティティプロバイダーのsourcesセクションに以下のclaim要素を追加します。

    <claim name="con_Veryg0od1D123456.xmc_role" />
    注記

    同じ主張を両方のアイデンティティプロバイダー(Auth0Bearer)に追加しなければ、ユーザーはアクセス障害に直面する可能性があります。

  3. ファイルを保存し、authoring/platform/App_Config/IncludeフォルダのSitecoreAI環境リポジトリに追加し、その後再構築して再デプロイします。

    展開が完了したら、SitecoreAIにログインしてクレームマッピングをテストできます。

SitecoreAI役割のクレームマッピング例

以下は、SitecoreAI環境向けにクレームマッピングを設定する例です。この例では、SSO接続のIDは con_Veryg0od1D123456

この例を完了した後:

  • すべてのユーザーはカスタムロールSitecore\Default Userを持ちます。

  • キャンペーンマネージャーもカスタムロールSitecore\Campaign ManagerSitecore\Analytics Readerを持ちます。

  • 開発者もSitecore\Developer役割を担います。

  • ユーザーがマッピングされたクレームでSitecoreAIアプリにログインすると、そのユーザープロフィールには以下のコメントが含まれます。 User might have roles assigned via claims mapping

    The User Manager showing a comment on the user profile added by the CustomClaims.config

アイデンティティプロバイダーでのクレーム設定

外部IdPを設定し、以下の条件に基づいてgroup請求を返すようにしてください。

  • ユーザーがキャンペーンマネージャーの場合は、請求額をcampaign_manager返してください。

  • ユーザーが開発者の場合は、請求値を返developer

IdP請求をSitecore IDトークンにマッピングする

SSO接続を編集し、以下のクレームマッピングを追加します:

デフォルトユーザー向けのクレームマッピング

出典主張:該当なし

ターゲット主張:

  • 名前: xmc_role

  • 価値: Sitecore\Default User

説明: claims mappingにはソースクレームが含まれていないため、すべてのユーザーはログイン時にSitecore IDトークンとアクセストークンSitecore "con_Veryg0od1D123456.xmc_role": "Sitecore\Default User" クレームが追加されます。

XM Cloudは現在SitecoreAIとなっています

一部のコード例、画像、UIラベルは、エンジニアリング資産の更新中もXM Cloudを使用している場合があります。

キャンペーンマネージャー向けの請求マッピング

出典の主張:

  • 名前: group

  • 価値: ^campaign_manager$

ターゲット請求#1:

  • 名前: xmc_role

  • 価値: Sitecore\Campaign Manager

ターゲット請求#2:

  • 名前: xmc_role

  • 価値: Sitecore\Analytics Reader

XM Cloudは現在SitecoreAIとなっています

一部のコード例、画像、UIラベルは、エンジニアリング資産の更新中もXM Cloudを使用している場合があります。

説明:ユーザーがログインし、IdPのIDトークンまたはSAMLの応答に価値campaign_managergroupクレームが含まれていると、そのクレーム"con_Veryg0od1D123456.xmc_role": "Sitecore\Default User", "Sitecore\Campaign Manager", "Sitecore\Analytics Reader"はSitecore IDトークンとSitecoreアクセストークンに追加されます。

開発者向けのクレームマッピング

出典の主張:

  • 名前: group

  • 価値: ^developer$

ターゲット主張:

  • 名前: xmc_role

  • 価値: Sitecore\Developer

XM Cloudは現在SitecoreAIとなっています

一部のコード例、画像、UIラベルは、エンジニアリング資産の更新中もXM Cloudを使用している場合があります。

説明:ユーザーがログインし、IdPのIDトークンまたはSAMLの応答に価値developergroupクレームが含まれていると、そのクレーム"con_Veryg0od1D123456.xmc_role": "Sitecore\Default User", "Sitecore\Developer"はSitecore IDトークンとSitecoreアクセストークンに追加されます。

Shows three claims mappings configured in an SSO connection

SitecoreAI役割へのトークン請求Sitecore IDマッピング

クレームマッピングで追加されたロールは、ロールマネージャーやユーザーマネージャーには表示されません。ただし、マッピングされたユーザーには、クレームマッピングを通じてロールが追加されたことをコメントで伝えることができます。

以下のコードでconfigファイルを作成し、環境にデプロイしてください:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <sitecore>
    <federatedAuthentication>
      <identityProviders>
        <identityProvider id="Auth0">
          <transformations>
            <transformation
              name="roles"
              type="Sitecore.Owin.Authentication.Services.DefaultTransformation, Sitecore.Owin.Authentication">
              <sources hint="raw:AddSource">
                <claim name="con_Veryg0od1D123456.xmc_role" />
              </sources>
              <targets hint="raw:AddTarget">
                <claim name="http://schemas.microsoft.com/ws/2008/06/identity/claims/role" />
              </targets>
              <keepSource>true</keepSource>
            </transformation>
            <transformation
              name="custom SSO comment"
              type="Sitecore.Owin.Authentication.Services.DefaultTransformation, Sitecore.Owin.Authentication">
              <sources hint="raw:AddSource">
                <claim name="con_Veryg0od1D123456.xmc_role" />
              </sources>
              <targets hint="raw:AddTarget">
                <claim name="comment" value="User might have roles assigned via claims mapping" />
              </targets>
            </transformation>
          </transformations>
        </identityProvider>
        <identityProvider id="Bearer">
          <transformations>
            <transformation
              name="roles"
              type="Sitecore.Owin.Authentication.Services.DefaultTransformation, Sitecore.Owin.Authentication">
              <sources hint="raw:AddSource">
                <claim name="con_Veryg0od1D123456.xmc_role" />
              </sources>
              <targets hint="raw:AddTarget">
                <claim name="http://schemas.microsoft.com/ws/2008/06/identity/claims/role" />
              </targets>
              <keepSource>true</keepSource>
            </transformation>
            <transformation
              name="custom SSO comment"
              type="Sitecore.Owin.Authentication.Services.DefaultTransformation, Sitecore.Owin.Authentication">
              <sources hint="raw:AddSource">
                <claim name="con_Veryg0od1D123456.xmc_role" />
              </sources>
              <targets hint="raw:AddTarget">
                <claim name="comment" value="User might have roles assigned via claims mapping" />
              </targets>
            </transformation>
          </transformations>
        </identityProvider>
      </identityProviders>
      <propertyInitializer>
        <maps hint="list">
          <map name="Comment"
            type="Sitecore.Owin.Authentication.Services.DefaultClaimToPropertyMapper, Sitecore.Owin.Authentication"
            resolve="true">
            <data hint="raw:AddData">
              <source name="comment" />
              <target name="Comment" />
            </data>
          </map>
        </maps>
      </propertyInitializer>
    </federatedAuthentication>
  </sitecore>
</configuration>
この記事を改善するための提案がある場合は、 お知らせください!