---
title: "クレームマッピングでSitecoreAIの役割を割り当てる"
slug: "assign-sitecoreai-roles-with-claims-mapping"
abstract: "アイデンティティプロバイダーからのクレームを使って自動的にSitecoreAIの役割を割り当てる方法を説明しています。"
---
# クレームマッピングでSitecoreAIの役割を割り当てる

デフォルトでは、チームメンバーが組織に加わり、[SitecoreAI](https://doc.sitecore.com/sai/en/users/sitecoreai/sitecoreai.html)アプリで*User*役割を持っている場合、[SitecoreAIで手動で役割を割り当て](https://doc.sitecore.com/sai/ja/developers/sitecoreai/user-security/users-roles-and-domains/add-a-user-to-a-role.html "Add a user to a role")る必要があります。しかし、チームメンバーがSSOでログインし[SitecoreAI](https://doc.sitecore.com/sai/en/users/sitecoreai/sitecoreai.html)アプリにアクセスできる場合、IDプロバイダー(IdP)のOIDC IDトークンやSAML応答のクレームを使って自動的にSitecoreAIの役割を割り当てることができます。

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

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

flowchart LR 
 
 subgraph Setup"Claims mapping setup"
 direction LR
 C"Configure your IdP to include additional claims in the ID token or SAML response"
 D"Map IdP claims to Sitecore ID token"
 E"Map Sitecore ID token claims to SitecoreAI roles"
 C --> D --> E
 end
 
 subgraph Login"User login flow"
 direction LR
 A"User logs in to SitecoreAI environment"
 B"Check Sitecore ID token for mapped claim"
 F"Assign SitecoreAI roles based on claim"
 A --> B --> F
 end

 style C fill:#ECECFE,stroke:#9370DB,color:#000000
 style D fill:#ECECFE,stroke:#9370DB,color:#000000
 style E fill:#ECECFE,stroke:#9370DB,color:#000000
 style A fill:#ECECFE,stroke:#9370DB,color:#000000
 style B fill:#ECECFE,stroke:#9370DB,color:#000000
 style F fill:#ECECFE,stroke:#9370DB,color:#000000
 
 linkStyle default stroke:#000000

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

1.  アイデンティティプロバイダーでクレームを設定する
2.  地図IdPが主張するSitecore IDトークン
3.  環境に対するトークン請求Sitecore ID地図

> !注**始める前に**必要なもの:
> 
> -   Sitecore Cloud Portal組織における*Organization Admin*または*Organization Owner*の役割。
>     
> -   アイデンティティプロバイダーの請求設定を編集する機能。
>     
> -   SitecoreAI環境コードリポジトリを自動でロール割り当てする機能。
>     

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

アイデンティティプロバイダーでは、SitecoreAIの役割をマッピングするために使いたいクレームを特定し、追加しなければなりません。

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

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

-   オクタOIDC
-   オクタSAML
-   Microsoft Entra

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.  接続設定ページで **「クレームマッピング**」をクリックします。
    
3.  **「クレームマッピング**」ダイアログで「**クレームマッピングを追加**」をクリックします。
    
4.  **Source Claims**セクションの**Name**欄に、マッピングしたいIdPのクレームを入力します。
    
    **Value**フィールドに、IdP請求で返される値に一致する正則表現パターン(ECMAScript構文)を入力してください。
    
    > !注正則表現の文字通りの表記はサポートされていません。
    > 
    > 大文字に非対抗的な正則表現が必要な場合は、i[修飾子](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Regular_expressions/Modifier)を使いましょう。
    
5.  **ターゲットクレーム**セクションの**Name**欄に、IdPのIDトークンまたはSAMLレスポンスに一致するソースクレームが存在した場合Sitecore IDに追加されるクレームの名前を入力します。
    
6.  **Value**欄に、ソースクレームの名前と正則表現パターンに一致するクレームを持つユーザーに割り当てたいSitecoreAIアプリロールを入力します。利用可能な役割を見るには、[ロールマネージャー](https://doc.sitecore.com/sai/ja/developers/sitecoreai/user-security/users-roles-and-domains/create-and-set-up-a-role.html "Create and set up a role")をご利用ください。
    
    > !注マッピングされたクレームがSitecore IDトークンとアクセストークンSitecore追加されると、自動的にSSO接続のIDが付けられます。例えば、ターゲットクレーム名がxmc\_roleで、SSO接続IDがcon\_Veryg0od1D123456であれば、Sitecore IDトークン内のクレーム名とアクセストークンSitecore con\_Veryg0od1D123456.xmc\_roleになります。
    
7.  さらにターゲットクレームを追加するには、「 **ターゲットクレームを追加**」をクリックしてください。複数のターゲットクレームをマッピングに追加すると、それらすべてがSitecore IDトークン内の単一のクレームとして追加されます。
    
8.  追加のクレームマッピングを追加するには、「 **クレームマッピングを追加**」をクリックし、ステップ4から7まで繰り返してください。SSO接続あたり最大20件のクレームマッピングが可能です。
    
9.  希望する請求をマッピングしたら、「 **保存**」をクリックします。
    
    > !重要ユーザーはトークン交換ごとに1つのクレームしかマッピングできませんが、ターゲットクレーム名が同じであれば異なるマッピングから複数のターゲットクレーム値を持つことができます([クレームマッピングの例にあるユーザーEを参照](https://doc.sitecore.com/portal/en/developers/sitecore-cloud-portal/en/claims-mapping.html#UUID-d9b2b0a3-ec36-5595-ebea-873921d151db_section-idm234657633806521))。複数のクレームがマッピングされている場合、ログイン時に警告メッセージが表示され、クレームマッピングが失敗します([クレームマッピングの例にあるUser Dを参照](https://doc.sitecore.com/portal/en/developers/sitecore-cloud-portal/en/claims-mapping.html#UUID-d9b2b0a3-ec36-5595-ebea-873921d151db_section-idm234657633806521))。
    

マッピングされたクレームがSitecore IDトークンとSitecoreアクセストークンに追加されたかを確認するには、[ユーザーのクレームを確認してください](https://doc.sitecore.com/portal/en/developers/sitecore-cloud-portal/en/check-the-mapped-claims-of-your-account.html)。

## 役割Sitecore IDトークンの主張を地図SitecoreAI

IdPのクレームをSitecore IDトークンにマッピングした後、Sitecore IDトークンクレームをSitecoreAI環境での役割にマッピングするための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.  クラウドポータルで作成したターゲットクレームをマッピングするには、sourcesセクションに以下の形式でclaim要素を追加してください:
    
    <claim name="{CONNECTION\_ID}.{TARGET\_CLAIM\_NAME}" />
    
    -   CONNECTION\_ID - クレームマッピングを設定するSSO接続のID。
    -   TARGET\_CLAIM\_NAME - Sitecore Cloud Portalで定義したターゲットクレームの名前。
    
    ターゲットクレームの例では、各アイデンティティプロバイダーのsourcesセクションに以下のclaim要素を追加します。
    
    <claim name="con\_Veryg0od1D123456.xmc\_role" />
    
    > !注同じ主張を両方のアイデンティティプロバイダー(Auth0とBearer)に追加しなければ、ユーザーはアクセス障害に直面する可能性があります。
    
3.  ファイルを保存し、SitecoreAI環境リポジトリのauthoring/platform/App\_Config/Include/zzzフォルダに追加し、その後再構築して再デプロイします。
    
    > !注Includeフォルダ内の設定ファイルはアルファベット順にパッチが適用されているため、Include/zzzフォルダにカスタム設定ファイルを置くことで、ファイルが最後にパッチが当てられ、上書きされないようにします。
    
    展開が完了したら、SitecoreAIにログインしてクレームマッピングをテストできます。
    

## SitecoreAIロールのクレームマッピング例

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

この例を完了した後:

-   すべてのユーザーはカスタムロールSitecore\\Default Userを持ちます。
    
-   キャンペーンマネージャーもカスタムロールSitecore\\Campaign Manager 、Sitecore\\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](https://doc.sitecore.com/api/markdown-image/sai/ja/developers/sitecoreai/images/claims-mapping-user-manager-comment.png)
    

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

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

-   ユーザーがキャンペーンマネージャーの場合は、請求額を campaign\_manager返してください。
-   ユーザーが開発者の場合は、請求値を返 developer。

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

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

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

出典主張:該当なし

ITargetの主張:

-   名前: xmc\_role
-   価値: Sitecore\\Default User

説明: *クレームマッピング* にはソースクレームが含まれていないため、すべてのユーザーはログイン時にクレーム "con\_Veryg0od1D123456.xmc\_role": "Sitecore\\Default User" Sitecore IDトークンとSitecoreアクセストークンに追加されます。

> !注**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\_managerのgroupクレームが含まれていると、そのクレーム"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の応答に価値developerのgroupクレームが含まれていると、そのクレーム"con\_Veryg0od1D123456.xmc\_role": "Sitecore\\Default User", "Sitecore\\Developer"はSitecore IDトークンとSitecoreアクセストークンに追加されます。

![Shows three claims mappings configured in an SSO connection](https://doc.sitecore.com/api/markdown-image/sai/ja/developers/sitecoreai/images/claims-mapping-for-example-config.png)

### 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>

## SSOクレームマッピングでログインする際にユーザーを管理者としてマークしてください

クレームマッピングを使ってユーザーを管理者としてマークするには、Sitecore設定内のAuth0およびベアラーのアイデンティティプロバイダーの両方に以下の変換を加えます。

<transformation name="AdminRole" type="Sitecore.Owin.Authentication.Services.DefaultTransformation, Sitecore.Owin.Authentication">
	<sources hint="raw:AddSource">
		<claim name="{CONNECTION\_ID}.xmc\_isadmin" />
	</sources>
	<targets hint="raw:AddTarget">
		<claim name="http://www.sitecore.net/identity/claims/isAdmin" />
	</targets>
</transformation>

さらに、Cloud PortalのSSO接続にマッピングを追加します。

![image\_\_8\_.png](https://doc.sitecore.com/api/markdown-image/sai/ja/developers/sitecoreai/images/image__8_.png)

クレームマッピングを使ってユーザーを管理者としてマークするには:

1.  Sitecore Cloud PortalのSSOページに移動し、クレームをマッピングしたい接続を見つけて「 **Configure**」をクリックします。
2.  右側のパネルで **「クレームマッピング**」をクリックし、「 **クレームマッピングを追加**」をクリックします。
3.  **ソースクレーム**で「ソースク**レームを追加**」をクリックし、要求されたデータを入力します:
    -   名前:マッピングしたいIdPの請求内容を入力してください。
    -   値:IdP請求で返される値に一致するために、正則表現パターン(ECMAScript構文)を入力します。
4.  Targetの **請求**書では、次のように入力します:
    -   名前: xmc\_isadmin
    -   価値: true
5.  **「保存**」をクリックします。