Microsoft Entra ID グループのチームとの連携

Microsoft Entra ID グループ チームは、オーナー チームと同様に、レコードを所有することができ、チームにセキュリティロールを割り当てることができます。 Microsoft Entra ID グループ チームの詳細については、グループ チームを管理する を参照してください。

Just-In-Time の更新

Just-In-Time の更新とは、実行時にアクションが実行され、Microsoft Entra ID と Microsoft Dataverse からデータを同期する必要がなくなることを意味します。 これらのアクションには、Microsoft Entra ID グループ チームの作成、Microsoft Entra ID グループ チームからの Microsoft Entra ID グループ メンバーの追加/削除、Dataverse へのユーザーの追加が含まれます。

  1. Microsoft Entra ID グループ チームが存在せず、セキュリティ ロールが割り当てられているか、レコードが Microsoft Entra ID グループに割り当てられている場合、Microsoft Entra ID グループ チームは Just-In-Time で作成されます。

  2. Microsoft Entra ID グループ メンバーが Dataverse に対話形式でアクセスするか、非対話型プロセスでユーザーの代わりに呼び出しを行うと、グループ メンバーは実行時に Microsoft Entra ID グループ チームに追加されます。 同様に、Microsoft Entra ID グループから削除されたメンバーが、対話形式または非対話型プロセス呼び出しで Dataverse にアクセスすると、グループ メンバーは Microsoft Entra ID グループ チームから削除されます。

  3. 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 グループに割り当てられたとき、またはレコードが Microsoft Entra ID グループに割り当てられたときに、API 呼び出しを (プログラムで) 行うか、Just-In-Time で Dataverse に作成できます。

プログラムで 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 column で定義されます
  • チームの名前は Microsoft Entra ID グループの名前です
  • チームの種類は Microsoft Entra ID グループの種類に基づきます - 例: 「セキュリティ」 または 「Microsoft 365」

Microsoft Entra ID グループ チームへにセキュリティ ロールを割り当てる

管理者は、Microsoft Entra ID グループが Microsoft Entra ID で作成された後、セキュリティ ロールを Microsoft Entra ID グループ チームに割り当てることができます。 Microsoft Entra ID グループ チームは、Dataverse に存在しない場合は自動的に 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 に存在せず、ロールがユーザーに直接割り当てられている場合、ユーザーは自動的に 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 に存在しない場合は自動的に 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 グループのメンバーにレコードを割り当てることができます。 Microsoft Entra ID グループ メンバーは、Dataverse にユーザーが存在しない場合、自動的に Dataverse に追加されます。

以下の例は、アカウント レコードを割り当てるための構文です。

要求:

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 を指定することで、ユーザーの代わりに RetrievePrincipalAccess 関数の呼び出しを行うことができます。

詳細情報: もう一方のユーザーの偽装

チームメンバーがグループ チームに追加またはそこから削除されたときにトリガーされます

グループメンバーが Just-In-TimeAPI の関連付けと関連付け解除 を使用して Dataverse グループチームに追加または削除されます。 これらのチームメンバーのグループチームへの追加または削除によってトリガーされるイベントの プラグイン を登録できます。

参照

Azure Active Directory グループを使用してアプリやリソースへのアクセスを管理する

注意

ドキュメントの言語設定についてお聞かせください。 簡単な調査を行います。 (この調査は英語です)

この調査には約 7 分かかります。 個人データは収集されません (プライバシー ステートメント)。