グループに appRoleAssignment を付与する
-
[アーティクル]
-
-
名前空間: microsoft.graph
この API を使用して、アプリの役割をグループに割り当てます。 グループのすべてのダイレクト メンバーは、割り当て済みと見なされます。 アプリの役割の割り当てをグループに付与するには、次の 3 つの識別子が必要です:
- principalId: アプリの役割を割り当てる グループ の ID。
- resourceId: アプリの役割を定義したリソース servicePrincipal の ID。
- appRoleId: グループに割り当てる appRole (リソース サービス プリンシパルで定義) の ID。
グループを使用してアプリケーションへのアクセスを管理する には、追加のライセンスが必要になる場合があります。
アクセス許可
この API を呼び出すには、次のいずれかのアクセス許可が必要です。アクセス許可の選択方法などの詳細については、「アクセス許可」を参照してください。
| アクセス許可の種類 |
アクセス許可 (特権の小さいものから大きいものへ) |
| 委任 (職場または学校のアカウント) |
AppRoleAssignment.ReadWrite.All |
| 委任 (個人用 Microsoft アカウント) |
サポートされていません。 |
| アプリケーション |
AppRoleAssignment.ReadWrite.All |
HTTP 要求
POST /groups/{groupId}/appRoleAssignments
注意
ベストプラクティスとして、割り当てられたユーザー、グループ、またはサービス プリンシパルの appRoleAssignments のリレーションシップではなく、リソース サービス プリンシパルの appRoleAssignedTo のリレーションシップを使用して、アプリの役割の割り当てを作成することをお勧めします。
| 名前 |
説明 |
| Authorization |
ベアラー {token}。必須。 |
| Content-type |
application/json. Required. |
要求本文
要求本文で、appRoleAssignment オブジェクトの JSON 表記を指定します。
次の表に、appRoleAssignment の作成時に必要になるプロパティを示します。 appRoleAssignment の必要に応じて他の書き込み可能なプロパティを指定します。
| プロパティ |
種類 |
説明 |
| appRoleId |
Guid |
プリンシパルに割り当てられる アプリの役割 の識別子 (id)。 このアプリの役割は、リソース アプリケーションのサービス プリンシパル (resourceId) の appRoles プロパティに公開される必要があります。 リソース アプリケーションがアプリの役割を宣言していない場合は、既定のアプリの役割 ID 00000000-0000-0000-0000-000000000000 を指定できます。これは、プリンシパルが、特定のアプリの役割なしでリソース アプリに割り当てられることを示します。 |
| principalId |
Guid |
アクセス権が付与されている グループの一意の識別子 (id) です。 |
| resourceId |
Guid |
割り当てが行われる対象となるリソース サービス プリンシパル の一意識別子 (id)。 |
応答
成功した場合、このメソッドは 201 Created 応答コードと、応答本文で appRoleAssignment オブジェクトを返します。
例
要求
以下は、要求の例です。 この例では、URL の ID と principalId の値の両方が、割り当てられたグループの ID になります。
POST https://graph.microsoft.com/v1.0/groups/7679d9a4-2323-44cd-b5c2-673ec88d8b12/appRoleAssignments
Content-Type: application/json
{
"principalId": "7679d9a4-2323-44cd-b5c2-673ec88d8b12",
"resourceId": "076e8b57-bac8-49d7-9396-e3449b685055",
"appRoleId": "00000000-0000-0000-0000-000000000000"
}
GraphServiceClient graphClient = new GraphServiceClient( authProvider );
var appRoleAssignment = new AppRoleAssignment
{
PrincipalId = Guid.Parse("7679d9a4-2323-44cd-b5c2-673ec88d8b12"),
ResourceId = Guid.Parse("076e8b57-bac8-49d7-9396-e3449b685055"),
AppRoleId = Guid.Parse("00000000-0000-0000-0000-000000000000")
};
await graphClient.Groups["{group-id}"].AppRoleAssignments
.Request()
.AddAsync(appRoleAssignment);
SDK をプロジェクトに追加し、authProvider インスタンスを作成する方法の詳細については、SDK のドキュメントを参照してください。
const options = {
authProvider,
};
const client = Client.init(options);
const appRoleAssignment = {
principalId: '7679d9a4-2323-44cd-b5c2-673ec88d8b12',
resourceId: '076e8b57-bac8-49d7-9396-e3449b685055',
appRoleId: '00000000-0000-0000-0000-000000000000'
};
await client.api('/groups/7679d9a4-2323-44cd-b5c2-673ec88d8b12/appRoleAssignments')
.post(appRoleAssignment);
SDK をプロジェクトに追加し、authProvider インスタンスを作成する方法の詳細については、SDK のドキュメントを参照してください。
MSHTTPClient *httpClient = [MSClientFactory createHTTPClientWithAuthenticationProvider:authenticationProvider];
NSString *MSGraphBaseURL = @"https://graph.microsoft.com/v1.0/";
NSMutableURLRequest *urlRequest = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:[MSGraphBaseURL stringByAppendingString:@"/groups/7679d9a4-2323-44cd-b5c2-673ec88d8b12/appRoleAssignments"]]];
[urlRequest setHTTPMethod:@"POST"];
[urlRequest setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
MSGraphAppRoleAssignment *appRoleAssignment = [[MSGraphAppRoleAssignment alloc] init];
[appRoleAssignment setPrincipalId:@"7679d9a4-2323-44cd-b5c2-673ec88d8b12"];
[appRoleAssignment setResourceId:@"076e8b57-bac8-49d7-9396-e3449b685055"];
[appRoleAssignment setAppRoleId:@"00000000-0000-0000-0000-000000000000"];
NSError *error;
NSData *appRoleAssignmentData = [appRoleAssignment getSerializedDataWithError:&error];
[urlRequest setHTTPBody:appRoleAssignmentData];
MSURLSessionDataTask *meDataTask = [httpClient dataTaskWithRequest:urlRequest
completionHandler: ^(NSData *data, NSURLResponse *response, NSError *nserror) {
//Request Completed
}];
[meDataTask execute];
SDK をプロジェクトに追加し、authProvider インスタンスを作成する方法の詳細については、SDK のドキュメントを参照してください。
GraphServiceClient graphClient = GraphServiceClient.builder().authenticationProvider( authProvider ).buildClient();
AppRoleAssignment appRoleAssignment = new AppRoleAssignment();
appRoleAssignment.principalId = UUID.fromString("7679d9a4-2323-44cd-b5c2-673ec88d8b12");
appRoleAssignment.resourceId = UUID.fromString("076e8b57-bac8-49d7-9396-e3449b685055");
appRoleAssignment.appRoleId = UUID.fromString("00000000-0000-0000-0000-000000000000");
graphClient.groups("7679d9a4-2323-44cd-b5c2-673ec88d8b12").appRoleAssignments()
.buildRequest()
.post(appRoleAssignment);
SDK をプロジェクトに追加し、authProvider インスタンスを作成する方法の詳細については、SDK のドキュメントを参照してください。
//THE GO SDK IS IN PREVIEW. NON-PRODUCTION USE ONLY
graphClient := msgraphsdk.NewGraphServiceClient(requestAdapter)
requestBody := msgraphsdk.NewAppRoleAssignment()
principalId := "7679d9a4-2323-44cd-b5c2-673ec88d8b12"
requestBody.SetPrincipalId(&principalId)
resourceId := "076e8b57-bac8-49d7-9396-e3449b685055"
requestBody.SetResourceId(&resourceId)
appRoleId := "00000000-0000-0000-0000-000000000000"
requestBody.SetAppRoleId(&appRoleId)
groupId := "group-id"
result, err := graphClient.GroupsById(&groupId).AppRoleAssignments().Post(requestBody)
SDK をプロジェクトに追加し、authProvider インスタンスを作成する方法の詳細については、SDK のドキュメントを参照してください。
Import-Module Microsoft.Graph.Applications
$params = @{
PrincipalId = "7679d9a4-2323-44cd-b5c2-673ec88d8b12"
ResourceId = "076e8b57-bac8-49d7-9396-e3449b685055"
AppRoleId = "00000000-0000-0000-0000-000000000000"
}
New-MgGroupAppRoleAssignment -GroupId $groupId -BodyParameter $params
SDK をプロジェクトに追加し、authProvider インスタンスを作成する方法の詳細については、SDK のドキュメントを参照してください。
応答
以下は、応答の例です。
注: ここに示す応答オブジェクトは、読みやすさのために短縮されている場合があります。
HTTP/1.1 201 Created
Content-type: application/json
{
"@odata.context": "https://graph.microsoft.com/v1.0/$metadata#groups('7679d9a4-2323-44cd-b5c2-673ec88d8b12')/appRoleAssignments/$entity",
"id": "pNl5diMjzUS1wmc-yI2LEkGgWqFFrFdLhG2Ly2CysL4",
"deletedDateTime": null,
"appRoleId": "00000000-0000-0000-0000-000000000000",
"createdDateTime": "2021-02-19T17:55:08.3369542Z",
"principalDisplayName": "Young techmakers",
"principalId": "7679d9a4-2323-44cd-b5c2-673ec88d8b12",
"principalType": "Group",
"resourceDisplayName": "Yammer",
"resourceId": "076e8b57-bac8-49d7-9396-e3449b685055"
}