所有者チームと同様に、Microsoft Entra ID グループ チームはレコードを所有でき、セキュリティ ロールをチームに割り当てることができます。 グループ チームMicrosoft Entra ID詳細については、「グループ チームの管理」を参照してください。
ジャストインタイム更新
Just-In-Time の更新とは、実行時にアクションが実行され、Microsoft Entra ID と Microsoft Dataverse からデータを同期する必要がなくなることを意味します。 これらのアクションには、Microsoft Entra IDグループ チームの作成、Microsoft Entra IDグループ チームMicrosoft Entra IDグループ メンバーの追加または削除、Dataverse へのユーザーの追加などがあります。
Microsoft Entra ID グループ チームが存在せず、セキュリティ ロールを割り当てたり、Microsoft Entra ID グループにレコードを割り当てたりした場合、Microsoft Entra ID グループ チームはジャスト イン タイムで作成されます。
Microsoft Entra ID グループ メンバーが対話形式で、または非対話型プロセスを介して Dataverse にアクセスすると、ユーザーに代わって呼び出しが行われると、実行時にグループ メンバーが Microsoft Entra ID グループ チームに追加されます。 同様に、Microsoft Entra ID グループから削除されたメンバーが、対話形式または非対話型プロセス呼び出しで Dataverse にアクセスすると、グループ メンバーは Microsoft Entra ID グループ チームから削除されます。
Microsoft Entra ID グループ メンバーが対話形式で、または非対話型プロセスを介して Dataverse にアクセスし、ユーザーに代わって呼び出しを行い、ユーザーが Dataverse に存在しない場合、ユーザーは Dataverse Just-In-Time に追加されます。
次のセクションでは、Web API を使用してグループ チームMicrosoft Entra ID操作する方法について説明します。
もう一方のユーザーの偽装
サービスは、ユーザーになりすます ことで、別のシステム ユーザーに代わって呼び出しを行うことができます。 システム ユーザーが Microsoft Entra ID セキュリティ グループに属していて、Microsoft Entra ID セキュリティ グループが Dataverse グループ チームである場合、そのユーザーは自動的に Dataverse に追加されます (ユーザーがまだ Dataverse に存在していない場合)。 Dataverse に追加された後、またはユーザーが Dataverse に既に存在する場合、ユーザーは Dataverse グループ チームにも自動的に追加されます。
Microsoft Entra ID グループ チームを作成する
Microsoft Entra ID グループにセキュリティ ロールを割り当てたり、Microsoft Entra ID グループにレコードを割り当てたりするときに、API 呼び出しを (プログラムで) 行うか、Just-In-Time の作成を使用して、Dataverse でMicrosoft Entra ID グループ チームを作成できます。
Microsoft Dataverse Microsoft Entra ID グループ チームをプログラムで作成する市民開発者は、次のコマンドに示すように、既存のMicrosoft Entra ID グループのオブジェクト ID を指定することで作成できます。
要求:
POST [Organization URI]/api/data/v9.0/teams
Accept: application/json
{
"azureactivedirectoryobjectid":"<group object ID>",
"membershiptype":0
}
場所:
- メンバーシップの種類は、[ Team table MembershipType] 列で定義します。
- チームの名前は、Microsoft Entra ID グループの名前です。
- チームの種類は、"セキュリティ" や "Microsoft 365" などのMicrosoft Entra ID グループの種類に基づいています。
Microsoft Entra ID グループ チームにセキュリティ ロールを割り当てる
管理者は、管理者がMicrosoft Entra IDでMicrosoft Entra ID グループを作成した後、Microsoft Entra ID グループ チームにセキュリティ ロールを割り当てることができます。 Microsoft Entra ID グループ チームが Dataverse に存在しない場合、システムによって自動的に作成されます。
要求:
POST [Organization URI]/api/data/v9.0/teams(azureactivedirectoryobjectid=<group team ID>,membershiptype=0)/teamroles_association/$ref
Accept: application/json
{
"@odata.id":"[Organization URI]/api/data/v9.0/roles(<role ID>)"
}
ユーザーへのセキュリティ ロールの割り当て
管理者は、Microsoft Entra ID グループ ユーザーにセキュリティ ロールを割り当てることができます。 ユーザーが Dataverse に存在しない場合、ユーザーにロールを直接割り当てると、自動的にユーザーが追加されます。
要求:
POST [Organization URI]/api/data/v9.0/systemusers(azureactivedirectoryobjectid=<user object ID>)/systemuserroles_association/$ref
Accept: application/json
{
"@odata.id":"[Organization URI]/api/data/v9.0/roles(<role ID>)"
}
Microsoft Entra ID グループメンバーにレコードを割り当てる
管理者は、Microsoft Entra ID グループにレコードを割り当てることができます。 Microsoft Entra ID グループ チームが Dataverse に存在しない場合、グループ チームは自動的に作成されます。
次の例は、アカウントレコードを割り当てる構文を示します。
要求:
PATCH [Organization URI]/api/data/v9.0/accounts(<account ID>)
Accept: application/json
{
"ownerid@odata.bind": "[Organization URI]/api/data/v9.0/teams(azureactivedirectoryobjectid=<group object ID>,membershiptype:0)"
}
Microsoft Entra ID グループ メンバーにレコードを割り当てる
管理者は、Microsoft Entra ID グループ メンバーにレコードを割り当てることができます。 ユーザーが Dataverse に存在しない場合は、Microsoft Entra ID グループ メンバーが自動的に追加されます。
次の例は、アカウントレコードを割り当てる構文を示します。
要求:
PATCH [Organization URI]/api/data/v9.0/accounts(<account ID>)
Accept: application/json
{
"ownerid@odata.bind": "[Organization URI]/api/data/v9.0/systemusers(azureactivedirectoryobjectid=<user object ID>)"
}
ユーザーを取得する
Azureユーザー オブジェクト識別子 (ID) を使用して、システム ユーザー テーブルの行を取得できます。 システム ユーザーが Dataverse に存在しない場合、ユーザーは Dataverse に自動的に追加されます。 ユーザーが Dataverse に存在するMicrosoft Entra ID グループに属している場合、そのユーザーは Dataverse グループ チームにも追加されます。 ユーザーが Dataverse に存在する場合、ユーザーは Dataverse グループ チームに追加されません。
次の例は、ユーザー行を取得するための構文を示しています。
要求:
GET [Organization URI]/api/data/v9.0/SystemUser(azureactivedirectoryobjectid=<user object ID>)
セキュリティ ロールと権限
Microsoft Entra ID グループのメンバーは、次のコマンドを使用して、直接および間接的に割り当てられているすべてのセキュリティ ロールに対してクエリを実行できます。
要求:
GET [Organization URI]/api/data/v9.0/RetrieveAadUserRoles(DirectoryObjectId=<user object ID)?$select=_parentrootroleid_value,name
応答:
{
"@odata.context": "https://contoso.crm2.dynamics.com/api/data/v9.0/$metadata#roles",
"value": [
{
"@odata.etag": "W/\"1649865\"",
"name": "System Administrator",
"roleid": "ae0daa93-e566-eb11-bb2b-000d3ac4c3f6",
"_parentrootroleid_value": "ae0daa93-e566-eb11-bb2b-000d3ac4c3f6",
"t_x002e_azureactivedirectoryobjectid": "e1341054-98ed-489b-a522-15e9e277b737",
"t_x002e_membershiptype": 0,
"t_x002e_teamid": "26e477f8-3f6a-eb11-bb2b-000d3af6caae",
"t_x002e_name": "testgroup"
}
]
}
Microsoft Entra ID グループのメンバーは、次のコマンドを使用して、Dataverse のユーザーにならずにセキュリティ特権を確認できます。
要求:
GET [Organization URI]/api/data/v9.0/RetrieveAadUserPrivileges(DirectoryObjectId=<user object ID>)
応答:
{
"@odata.context": "https://contoso.crm2.dynamics.com/api/data/v9.0/$metadata#Microsoft.Dynamics.CRM.RetrieveAadUserPrivilegesResponse",
"RolePrivileges": [
{
"Depth": "Global",
"PrivilegeId": "0a620778-3e9f-46ec-9766-000624db57ba",
"BusinessUnitId": "aa0daa93-e566-eb11-bb2b-000d3ac4c3f6",
"PrivilegeName": "prvDeleteHierarchyRule"
},
…
]
}
レコードに対するユーザーまたはチームのアクセス権の確認
サービス側でユーザーがレコードへのアクセス権を持っているかどうかを確認する必要がある非対話型プロセスがある場合は、 を指定することで、ユーザーの代わりに CallerIDの呼び出しを行うことができます。
詳細情報: もう一方のユーザーの偽装
チームメンバーがグループ チームに追加またはそこから削除されたときにトリガーされます
グループ メンバーは、関連付け API と関連付け解除 API を使用して、Dataverse グループ チームに ジャストインタイム で追加または削除されます。 これらのチームメンバーのグループチームへの追加または削除によってトリガーされるイベントの プラグイン を登録できます。
グループ チーム メンバーの自動同期と更新
Power Automate のスケジュールされたクラウド フローなどのスケジュールされたプロセスを使用して、Dataverse のグループ チームのメンバーシップを、関連付けられた Microsoft Entra グループと自動的に同期します。 目的の間隔 (1 時間ごとなど) で実行するようにフローを構成し、Dataverse バインド アクションを使用して、フローの行 ID のターゲット グループ チーム テーブル行 (レコード) に対して SyncGroupMembersToTeam アクションを呼び出します。
各同期では、関連付けられている Entra グループと一致するように Dataverse グループ チームのメンバーシップが更新されます。 新しい Entra グループ メンバーがチームに追加され、削除されたメンバーがチームから削除されます。
Note
チーム メンバーの同期は、Dataverse で既にプロビジョニングされている Entra グループ メンバーに限定されます。 同期プロセスに含める前に、新しい Entra グループ メンバーを Dataverse に作成する必要があります。