名前空間: microsoft.graph
セキュリティまたは Microsoft 365 グループにメンバーを追加 します。 API を使用して 1 つの要求に複数のメンバーを追加する場合は、最大 20 人のメンバーのみを追加できます。
次の表に、セキュリティ グループまたは Microsoft 365 グループのいずれかに追加できるメンバーの種類を示します。
オブジェクトの種類 |
セキュリティ グループのメンバー |
Microsoft 365 グループのメンバー |
User |
|
|
セキュリティ グループ |
|
|
Microsoft 365 グループ |
|
|
デバイス |
|
|
サービス プリンシパル |
|
|
組織の連絡先 |
|
|
この API は、次の国内クラウド展開で使用できます。
グローバル サービス |
米国政府機関 L4 |
米国政府機関 L5 (DOD) |
21Vianet が運営する中国 |
✅ |
✅ |
✅ |
✅ |
アクセス許可
次の表は、この API を呼び出すときに各リソースの種類に必要な最小特権のアクセス許可を示しています。 アクセス許可の選択方法などの詳細については、「アクセス許可」を参照してください。
サポートされているリソース |
委任 (職場または学校のアカウント) |
委任 (個人用 Microsoft アカウント) |
アプリケーション |
device |
GroupMember.ReadWrite.All と Device.ReadWrite.All |
サポートされていません。 |
GroupMember.ReadWrite.All と Device.ReadWrite.All |
group |
GroupMember.ReadWrite.All |
サポートされていません。 |
GroupMember.ReadWrite.All |
orgContact |
GroupMember.ReadWrite.All と OrgContact.Read.All |
サポートされていません。 |
GroupMember.ReadWrite.All と OrgContact.Read.All |
servicePrincipal |
GroupMember.ReadWrite.All と Application.ReadWrite.All |
サポートされていません。 |
GroupMember.ReadWrite.All と Application.ReadWrite.All |
user |
GroupMember.ReadWrite.All |
サポートされていません。 |
GroupMember.ReadWrite.All |
重要
委任されたシナリオでは、サインインしているユーザーに、サポートされているMicrosoft Entraロールまたはmicrosoft.directory/groups/members/update
ロールのアクセス許可を持つカスタム ロールも割り当てる必要があります。 次のロールは、ロール割り当て可能なグループを除き、この操作でサポートされる最小特権ロールです。
- グループ所有者
- ディレクトリ製作者
- グループ管理者
- ID ガバナンス管理者
- ユーザー管理者
- Exchange 管理者 - Microsoft 365 グループの場合のみ
- SharePoint 管理者 - Microsoft 365 グループの場合のみ
- Teams 管理者 - Microsoft 365 グループの場合のみ
- Yammer 管理者 - Microsoft 365 グループの場合のみ
- Intune管理者 - セキュリティ グループの場合のみ
ロール割り当て可能なグループにメンバーを追加するには、アプリにも RoleManagement.ReadWrite.Directory アクセス許可が割り当てられ、呼び出し元のユーザーにサポートされているMicrosoft Entraロールが割り当てられている必要があります。
特権ロール管理者 は、この操作でサポートされる最小限の特権ロールです。
HTTP 要求
POST /groups/{group-id}/members/$ref
PATCH /groups/{group-id}/members
ヘッダー |
値 |
Authorization |
ベアラー {token}。 必須です。
認証と認可についての詳細をご覧ください。 |
Content-type |
application/json. 必須です。 |
要求本文
POST /groups/{group-id}/members/$ref
構文を使用する場合は、@odata.id プロパティを含む JSON オブジェクトを指定し、サポートされているグループ メンバー オブジェクト型への ID による参照を指定します。
PATCH /groups/{group-id}/members
構文を使用する場合は、サポートされているグループ メンバー オブジェクト型への ID による 1 つ以上の参照を含むmembers@odata.bind プロパティを含む JSON オブジェクトを指定します。 それです:
- Microsoft 365 グループの場合、
https://graph.microsoft.com/v1.0/directoryObjects/{id}
と https://graph.microsoft.com/v1.0/groups/{id}
のみが許可されます。この場合、ユーザーは Microsoft 365 グループのメンバーしかできないため、 {id}
ユーザーである必要があります。
- セキュリティ グループの場合、次の ID 参照が許可されます。
-
https://graph.microsoft.com/v1.0/directoryObjects/{id}
ここで {id}
は、ユーザー、セキュリティ グループ、デバイス、サービス プリンシパル、または組織の連絡先に属している必要があります。
-
https://graph.microsoft.com/v1.0/groups/{id}
ここで、 {id}
は別のセキュリティ グループに属している必要があります。 Microsoft 365 グループは、セキュリティ グループのメンバーにすることはできません。
-
https://graph.microsoft.com/v1.0/devices/{id}
{id}
がデバイスに属している場合。
-
https://graph.microsoft.com/v1.0/servicePrincipal/{id}
ここで、 {id}
はサービス プリンシパルに属しています。
-
https://graph.microsoft.com/v1.0/orgContact/{id}
{id}
が組織の連絡先に属している場合。
応答
成功した場合、このメソッドは 204 No Content
応答コードを返します。 オブジェクトが既にグループのメンバーであるか、グループ メンバーとしてサポートされていない場合は、 400 Bad Request
応答コードを返します。 追加するオブジェクトが存在しない場合は、 404 Not Found
応答コードが返されます。 次のいずれかのシナリオで 403 Unauthorized
が返されます。
-
Microsoft Graph で管理できないグループにメンバーを追加しようとしています。 この API では、セキュリティグループと Microsoft 365 グループのみがサポートされています。
- 追加するアクセス許可がないメンバーを追加しようとしています。 別のメンバーの 種類を追加 するために必要なアクセス許可については、前のアクセス許可に関するセクションを参照してください。
- ロール割り当て可能なグループにメンバーを追加しようとしていますが、必要なアクセス許可がありません。
例
例 1: グループにメンバーを追加する
要求
次の例は、 directoryObjects 参照を使用してグループにメンバーを追加する要求を示しています。
POST https://graph.microsoft.com/v1.0/groups/{group-id}/members/$ref
Content-type: application/json
{
"@odata.id": "https://graph.microsoft.com/v1.0/directoryObjects/{id}"
}
// Code snippets are only available for the latest version. Current version is 5.x
// Dependencies
using Microsoft.Graph.Models;
var requestBody = new ReferenceCreate
{
OdataId = "https://graph.microsoft.com/v1.0/directoryObjects/{id}",
};
// To initialize your graphClient, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=csharp
await graphClient.Groups["{group-id}"].Members.Ref.PostAsync(requestBody);
プロジェクトに SDK を追加し、authProvider インスタンスを作成する方法の詳細については、SDK のドキュメントを参照してください。
mgc groups members ref post --group-id {group-id} --body '{\
"@odata.id": "https://graph.microsoft.com/v1.0/directoryObjects/{id}"\
}\
'
プロジェクトに SDK を追加し、authProvider インスタンスを作成する方法の詳細については、SDK のドキュメントを参照してください。
// Code snippets are only available for the latest major version. Current major version is $v1.*
// Dependencies
import (
"context"
msgraphsdk "github.com/microsoftgraph/msgraph-sdk-go"
graphmodels "github.com/microsoftgraph/msgraph-sdk-go/models"
//other-imports
)
requestBody := graphmodels.NewReferenceCreate()
odataId := "https://graph.microsoft.com/v1.0/directoryObjects/{id}"
requestBody.SetOdataId(&odataId)
// To initialize your graphClient, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=go
graphClient.Groups().ByGroupId("group-id").Members().Ref().Post(context.Background(), requestBody, nil)
プロジェクトに SDK を追加し、authProvider インスタンスを作成する方法の詳細については、SDK のドキュメントを参照してください。
// Code snippets are only available for the latest version. Current version is 6.x
GraphServiceClient graphClient = new GraphServiceClient(requestAdapter);
com.microsoft.graph.models.ReferenceCreate referenceCreate = new com.microsoft.graph.models.ReferenceCreate();
referenceCreate.setOdataId("https://graph.microsoft.com/v1.0/directoryObjects/{id}");
graphClient.groups().byGroupId("{group-id}").members().ref().post(referenceCreate);
プロジェクトに SDK を追加し、authProvider インスタンスを作成する方法の詳細については、SDK のドキュメントを参照してください。
const options = {
authProvider,
};
const client = Client.init(options);
const directoryObject = {
'@odata.id': 'https://graph.microsoft.com/v1.0/directoryObjects/{id}'
};
await client.api('/groups/{group-id}/members/$ref')
.post(directoryObject);
プロジェクトに SDK を追加し、authProvider インスタンスを作成する方法の詳細については、SDK のドキュメントを参照してください。
<?php
use Microsoft\Graph\GraphServiceClient;
use Microsoft\Graph\Generated\Models\ReferenceCreate;
$graphServiceClient = new GraphServiceClient($tokenRequestContext, $scopes);
$requestBody = new ReferenceCreate();
$requestBody->setOdataId('https://graph.microsoft.com/v1.0/directoryObjects/{id}');
$graphServiceClient->groups()->byGroupId('group-id')->members()->ref()->post($requestBody)->wait();
プロジェクトに SDK を追加し、authProvider インスタンスを作成する方法の詳細については、SDK のドキュメントを参照してください。
Import-Module Microsoft.Graph.Groups
$params = @{
"@odata.id" = "https://graph.microsoft.com/v1.0/directoryObjects/{id}"
}
New-MgGroupMemberByRef -GroupId $groupId -BodyParameter $params
プロジェクトに SDK を追加し、authProvider インスタンスを作成する方法の詳細については、SDK のドキュメントを参照してください。
# Code snippets are only available for the latest version. Current version is 1.x
from msgraph import GraphServiceClient
from msgraph.generated.models.reference_create import ReferenceCreate
# To initialize your graph_client, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=python
request_body = ReferenceCreate(
odata_id = "https://graph.microsoft.com/v1.0/directoryObjects/{id}",
)
await graph_client.groups.by_group_id('group-id').members.ref.post(request_body)
プロジェクトに SDK を追加し、authProvider インスタンスを作成する方法の詳細については、SDK のドキュメントを参照してください。
応答
次の例は応答を示しています。
HTTP/1.1 204 No Content
例 2: 1 つの要求でグループに複数のメンバーを追加する
この例は、PATCH 操作で OData バインドがサポートされているグループに複数のメンバーを追加する方法を示しています。 1 つの要求に最大 20 人のメンバーを追加できます。 要求の本文にエラー条件が存在する場合、メンバーは追加されず、適切な応答コードが返されます。
要求
次の例は要求を示しています。
PATCH https://graph.microsoft.com/v1.0/groups/{group-id}
Content-type: application/json
{
"members@odata.bind": [
"https://graph.microsoft.com/v1.0/directoryObjects/{id}",
"https://graph.microsoft.com/v1.0/directoryObjects/{id}",
"https://graph.microsoft.com/v1.0/directoryObjects/{id}"
]
}
// Code snippets are only available for the latest version. Current version is 5.x
// Dependencies
using Microsoft.Graph.Models;
var requestBody = new Group
{
AdditionalData = new Dictionary<string, object>
{
{
"members@odata.bind" , new List<string>
{
"https://graph.microsoft.com/v1.0/directoryObjects/{id}",
"https://graph.microsoft.com/v1.0/directoryObjects/{id}",
"https://graph.microsoft.com/v1.0/directoryObjects/{id}",
}
},
},
};
// To initialize your graphClient, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=csharp
var result = await graphClient.Groups["{group-id}"].PatchAsync(requestBody);
プロジェクトに SDK を追加し、authProvider インスタンスを作成する方法の詳細については、SDK のドキュメントを参照してください。
mgc groups patch --group-id {group-id} --body '{\
"members@odata.bind": [\
"https://graph.microsoft.com/v1.0/directoryObjects/{id}",\
"https://graph.microsoft.com/v1.0/directoryObjects/{id}",\
"https://graph.microsoft.com/v1.0/directoryObjects/{id}"\
]\
}\
'
プロジェクトに SDK を追加し、authProvider インスタンスを作成する方法の詳細については、SDK のドキュメントを参照してください。
// Code snippets are only available for the latest major version. Current major version is $v1.*
// Dependencies
import (
"context"
msgraphsdk "github.com/microsoftgraph/msgraph-sdk-go"
graphmodels "github.com/microsoftgraph/msgraph-sdk-go/models"
//other-imports
)
requestBody := graphmodels.NewGroup()
additionalData := map[string]interface{}{
odataBind := []string {
"https://graph.microsoft.com/v1.0/directoryObjects/{id}",
"https://graph.microsoft.com/v1.0/directoryObjects/{id}",
"https://graph.microsoft.com/v1.0/directoryObjects/{id}",
}
}
requestBody.SetAdditionalData(additionalData)
// To initialize your graphClient, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=go
groups, err := graphClient.Groups().ByGroupId("group-id").Patch(context.Background(), requestBody, nil)
プロジェクトに SDK を追加し、authProvider インスタンスを作成する方法の詳細については、SDK のドキュメントを参照してください。
// Code snippets are only available for the latest version. Current version is 6.x
GraphServiceClient graphClient = new GraphServiceClient(requestAdapter);
Group group = new Group();
HashMap<String, Object> additionalData = new HashMap<String, Object>();
LinkedList<String> membersOdataBind = new LinkedList<String>();
membersOdataBind.add("https://graph.microsoft.com/v1.0/directoryObjects/{id}");
membersOdataBind.add("https://graph.microsoft.com/v1.0/directoryObjects/{id}");
membersOdataBind.add("https://graph.microsoft.com/v1.0/directoryObjects/{id}");
additionalData.put("members@odata.bind", membersOdataBind);
group.setAdditionalData(additionalData);
Group result = graphClient.groups().byGroupId("{group-id}").patch(group);
プロジェクトに SDK を追加し、authProvider インスタンスを作成する方法の詳細については、SDK のドキュメントを参照してください。
const options = {
authProvider,
};
const client = Client.init(options);
const group = {
'members@odata.bind': [
'https://graph.microsoft.com/v1.0/directoryObjects/{id}',
'https://graph.microsoft.com/v1.0/directoryObjects/{id}',
'https://graph.microsoft.com/v1.0/directoryObjects/{id}'
]
};
await client.api('/groups/{group-id}')
.update(group);
プロジェクトに SDK を追加し、authProvider インスタンスを作成する方法の詳細については、SDK のドキュメントを参照してください。
<?php
use Microsoft\Graph\GraphServiceClient;
use Microsoft\Graph\Generated\Models\Group;
$graphServiceClient = new GraphServiceClient($tokenRequestContext, $scopes);
$requestBody = new Group();
$additionalData = [
'members@odata.bind' => [
'https://graph.microsoft.com/v1.0/directoryObjects/{id}', 'https://graph.microsoft.com/v1.0/directoryObjects/{id}', 'https://graph.microsoft.com/v1.0/directoryObjects/{id}', ],
];
$requestBody->setAdditionalData($additionalData);
$result = $graphServiceClient->groups()->byGroupId('group-id')->patch($requestBody)->wait();
プロジェクトに SDK を追加し、authProvider インスタンスを作成する方法の詳細については、SDK のドキュメントを参照してください。
Import-Module Microsoft.Graph.Groups
$params = @{
"members@odata.bind" = @(
"https://graph.microsoft.com/v1.0/directoryObjects/{id}"
"https://graph.microsoft.com/v1.0/directoryObjects/{id}"
"https://graph.microsoft.com/v1.0/directoryObjects/{id}"
)
}
Update-MgGroup -GroupId $groupId -BodyParameter $params
プロジェクトに SDK を追加し、authProvider インスタンスを作成する方法の詳細については、SDK のドキュメントを参照してください。
# Code snippets are only available for the latest version. Current version is 1.x
from msgraph import GraphServiceClient
from msgraph.generated.models.group import Group
# To initialize your graph_client, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=python
request_body = Group(
additional_data = {
"members@odata_bind" : [
"https://graph.microsoft.com/v1.0/directoryObjects/{id}",
"https://graph.microsoft.com/v1.0/directoryObjects/{id}",
"https://graph.microsoft.com/v1.0/directoryObjects/{id}",
],
}
)
result = await graph_client.groups.by_group_id('group-id').patch(request_body)
プロジェクトに SDK を追加し、authProvider インスタンスを作成する方法の詳細については、SDK のドキュメントを参照してください。
要求本文で、追加する directoryObject、ユーザー または グループ オブジェクトの ID の JSON 表記を指定します。
応答
次の例は応答を示しています。
HTTP/1.1 204 No Content
関連コンテンツ