名前空間: microsoft.graph
重要
Microsoft Graph の /beta
バージョンの API は変更される可能性があります。 実稼働アプリケーションでこれらの API を使用することは、サポートされていません。 v1.0 で API を使用できるかどうかを確認するには、Version セレクターを使用します。
この API を使用して、アプリ ロールをセキュリティ グループに割り当てます。 グループのすべてのダイレクト メンバーは、割り当て済みと見なされます。 動的メンバーシップを持つセキュリティ グループがサポートされています。 アプリの役割の割り当てをグループに付与するには、次の 3 つの識別子が必要です:
-
principalId: アプリの役割を割り当てるグループの ID。
-
resourceId: アプリの役割を定義したリソース servicePrincipal の ID。
-
appRoleId: グループに割り当てる appRole (リソース サービス プリンシパルで定義) の ID。
グループを使用してアプリケーションへのアクセスを管理する には、追加のライセンスが必要になる場合があります。
この API は、次の国内クラウド展開で使用できます。
グローバル サービス |
米国政府機関 L4 |
米国政府機関 L5 (DOD) |
21Vianet が運営する中国 |
✅ |
✅ |
✅ |
✅ |
アクセス許可
この API の最小特権としてマークされているアクセス許可またはアクセス許可を選択します。
アプリで必要な場合にのみ、より高い特権のアクセス許可またはアクセス許可を使用します。 委任されたアクセス許可とアプリケーションのアクセス許可の詳細については、「アクセス許可の種類」を参照してください。 これらのアクセス許可の詳細については、「アクセス許可のリファレンス」を参照してください。
アクセス許可の種類 |
最小特権アクセス許可 |
より高い特権のアクセス許可 |
委任 (職場または学校のアカウント) |
AppRoleAssignment.ReadWrite.All と Group.Read.All |
注意事項なし。 |
委任 (個人用 Microsoft アカウント) |
サポートされていません。 |
サポートされていません。 |
アプリケーション |
AppRoleAssignment.ReadWrite.All と Group.Read.All |
注意事項なし。 |
重要
職場または学校アカウントを使用した委任されたシナリオでは、サインインしているユーザーに、サポートされているMicrosoft Entraロールまたはサポートされているロールのアクセス許可を持つカスタム ロールを割り当てる必要があります。 この操作では、次の最小特権ロールがサポートされています。
- ディレクトリ同期アカウント - Microsoft Entra接続とクラウド同期サービスのMicrosoft Entra
- ディレクトリ ライター
- ハイブリッド ID 管理者
- ID ガバナンス管理者
- 特権ロール管理者
- ユーザー管理者
- アプリケーション管理者
- クラウド アプリケーション管理者
HTTP 要求
POST /groups/{groupId}/appRoleAssignments
注:
ベストプラクティスとして、割り当てられたユーザー、グループ、またはサービス プリンシパルの appRoleAssignments
のリレーションシップではなく、リソース サービス プリンシパルの appRoleAssignedTo
のリレーションシップを使用して、アプリの役割の割り当てを作成することをお勧めします。
名前 |
説明 |
Authorization |
ベアラー {token}。 必須です。
認証と認可についての詳細をご覧ください。 |
Content-type |
application/json. 必須です。 |
要求本文
要求本文で、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/beta/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"
}
// Code snippets are only available for the latest version. Current version is 5.x
// Dependencies
using Microsoft.Graph.Beta.Models;
var requestBody = 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"),
};
// 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}"].AppRoleAssignments.PostAsync(requestBody);
mgc-beta groups app-role-assignments create --group-id {group-id} --body '{\
"principalId": "7679d9a4-2323-44cd-b5c2-673ec88d8b12",\
"resourceId": "076e8b57-bac8-49d7-9396-e3449b685055",\
"appRoleId": "00000000-0000-0000-0000-000000000000"\
}\
'
// Code snippets are only available for the latest major version. Current major version is $v0.*
// Dependencies
import (
"context"
"github.com/google/uuid"
msgraphsdk "github.com/microsoftgraph/msgraph-beta-sdk-go"
graphmodels "github.com/microsoftgraph/msgraph-beta-sdk-go/models"
//other-imports
)
requestBody := graphmodels.NewAppRoleAssignment()
principalId := uuid.MustParse("7679d9a4-2323-44cd-b5c2-673ec88d8b12")
requestBody.SetPrincipalId(&principalId)
resourceId := uuid.MustParse("076e8b57-bac8-49d7-9396-e3449b685055")
requestBody.SetResourceId(&resourceId)
appRoleId := uuid.MustParse("00000000-0000-0000-0000-000000000000")
requestBody.SetAppRoleId(&appRoleId)
// To initialize your graphClient, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=go
appRoleAssignments, err := graphClient.Groups().ByGroupId("group-id").AppRoleAssignments().Post(context.Background(), requestBody, nil)
// Code snippets are only available for the latest version. Current version is 6.x
GraphServiceClient graphClient = new GraphServiceClient(requestAdapter);
AppRoleAssignment appRoleAssignment = new AppRoleAssignment();
appRoleAssignment.setPrincipalId(UUID.fromString("7679d9a4-2323-44cd-b5c2-673ec88d8b12"));
appRoleAssignment.setResourceId(UUID.fromString("076e8b57-bac8-49d7-9396-e3449b685055"));
appRoleAssignment.setAppRoleId(UUID.fromString("00000000-0000-0000-0000-000000000000"));
AppRoleAssignment result = graphClient.groups().byGroupId("{group-id}").appRoleAssignments().post(appRoleAssignment);
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')
.version('beta')
.post(appRoleAssignment);
<?php
use Microsoft\Graph\Beta\GraphServiceClient;
use Microsoft\Graph\Beta\Generated\Models\AppRoleAssignment;
$graphServiceClient = new GraphServiceClient($tokenRequestContext, $scopes);
$requestBody = new AppRoleAssignment();
$requestBody->setPrincipalId('7679d9a4-2323-44cd-b5c2-673ec88d8b12');
$requestBody->setResourceId('076e8b57-bac8-49d7-9396-e3449b685055');
$requestBody->setAppRoleId('00000000-0000-0000-0000-000000000000');
$result = $graphServiceClient->groups()->byGroupId('group-id')->appRoleAssignments()->post($requestBody)->wait();
Import-Module Microsoft.Graph.Beta.Applications
$params = @{
principalId = "7679d9a4-2323-44cd-b5c2-673ec88d8b12"
resourceId = "076e8b57-bac8-49d7-9396-e3449b685055"
appRoleId = "00000000-0000-0000-0000-000000000000"
}
New-MgBetaGroupAppRoleAssignment -GroupId $groupId -BodyParameter $params
# Code snippets are only available for the latest version. Current version is 1.x
from msgraph_beta import GraphServiceClient
from msgraph_beta.generated.models.app_role_assignment import AppRoleAssignment
# To initialize your graph_client, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=python
request_body = AppRoleAssignment(
principal_id = UUID("7679d9a4-2323-44cd-b5c2-673ec88d8b12"),
resource_id = UUID("076e8b57-bac8-49d7-9396-e3449b685055"),
app_role_id = UUID("00000000-0000-0000-0000-000000000000"),
)
result = await graph_client.groups.by_group_id('group-id').app_role_assignments.post(request_body)
応答
次の例は応答を示しています。
注: ここに示す応答オブジェクトは、読みやすさのために短縮されている場合があります。
HTTP/1.1 201 Created
Content-type: application/json
{
"@odata.context": "https://graph.microsoft.com/beta/$metadata#groups('7679d9a4-2323-44cd-b5c2-673ec88d8b12')/appRoleAssignments/$entity",
"id": "pNl5diMjzUS1wmc-yI2LEkGgWqFFrFdLhG2Ly2CysL4",
"deletedDateTime": null,
"appRoleId": "00000000-0000-0000-0000-000000000000",
"creationTimestamp": "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"
}