サービス プリンシパルに AppRoleAssignment を付与する
-
[アーティクル]
-
-
名前空間: microsoft.graph
クライアント サービス プリンシパルにアプリの役割を割り当てます。
サービス プリンシパルに割り当てられているアプリの役割は、アプリケーションのアクセス許可 とも呼ばれます。 アプリケーションのアクセス許可は、アプリの役割の割り当てを使用するか、または 同意エクスペリエンス を通じて直接付与できます。
アプリの役割の割り当てをクライアント サービス プリンシパルに付与するには、次の 3 つの識別子が必要です:
principalId: アプリの役割を割り当てるクライアント サービス プリンシパルの id。
resourceId: アプリの役割 (アプリケーションのアクセス許可) を定義するリソース servicePrincipal (API) の id。
appRoleId: クライアント サービス プリンシパルに割り当てる appRole (リソース サービス プリンシパルで定義されている) の id。
アクセス許可
この API を呼び出すには、次のいずれかのアクセス許可が必要です。アクセス許可の選択方法などの詳細については、「アクセス許可」を参照してください。
| アクセス許可の種類 |
アクセス許可 (特権の小さいものから大きいものへ) |
| 委任 (職場または学校のアカウント) |
AppRoleAssignment.ReadWrite.All, Directory.ReadWrite.All |
| 委任 (個人用 Microsoft アカウント) |
サポートされていません。 |
| アプリケーション |
AppRoleAssignment.ReadWrite.All, Directory.ReadWrite.All |
HTTP 要求
POST /servicePrincipals/{id}/appRoleAssignments
| 名前 |
説明 |
| Authorization |
ベアラー {token}。必須。 |
| Content-type |
application/json. Required. |
要求本文
要求本文で、appRoleAssignment オブジェクトの JSON 表記を指定します。
応答
成功した場合、このメソッドは 201 Created 応答コードと、応答本文で appRoleAssignment オブジェクトを返します。
例
要求
以下は、要求の例です。
POST https://graph.microsoft.com/v1.0/servicePrincipals/9028d19c-26a9-4809-8e3f-20ff73e2d75e/appRoleAssignments
Content-Type: application/json
{
"principalId": "9028d19c-26a9-4809-8e3f-20ff73e2d75e",
"resourceId": "8fce32da-1246-437b-99cd-76d1d4677bd5",
"appRoleId": "498476ce-e0fe-48b0-b801-37ba7e2685c6"
}
GraphServiceClient graphClient = new GraphServiceClient( authProvider );
var appRoleAssignment = new AppRoleAssignment
{
PrincipalId = Guid.Parse("9028d19c-26a9-4809-8e3f-20ff73e2d75e"),
ResourceId = Guid.Parse("8fce32da-1246-437b-99cd-76d1d4677bd5"),
AppRoleId = Guid.Parse("498476ce-e0fe-48b0-b801-37ba7e2685c6")
};
await graphClient.ServicePrincipals["{servicePrincipal-id}"].AppRoleAssignments
.Request()
.AddAsync(appRoleAssignment);
SDK をプロジェクトに追加し、authProvider インスタンスを作成する方法の詳細については、SDK のドキュメントを参照してください。
const options = {
authProvider,
};
const client = Client.init(options);
const appRoleAssignment = {
principalId: '9028d19c-26a9-4809-8e3f-20ff73e2d75e',
resourceId: '8fce32da-1246-437b-99cd-76d1d4677bd5',
appRoleId: '498476ce-e0fe-48b0-b801-37ba7e2685c6'
};
await client.api('/servicePrincipals/9028d19c-26a9-4809-8e3f-20ff73e2d75e/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:@"/servicePrincipals/9028d19c-26a9-4809-8e3f-20ff73e2d75e/appRoleAssignments"]]];
[urlRequest setHTTPMethod:@"POST"];
[urlRequest setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
MSGraphAppRoleAssignment *appRoleAssignment = [[MSGraphAppRoleAssignment alloc] init];
[appRoleAssignment setPrincipalId:@"9028d19c-26a9-4809-8e3f-20ff73e2d75e"];
[appRoleAssignment setResourceId:@"8fce32da-1246-437b-99cd-76d1d4677bd5"];
[appRoleAssignment setAppRoleId:@"498476ce-e0fe-48b0-b801-37ba7e2685c6"];
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("9028d19c-26a9-4809-8e3f-20ff73e2d75e");
appRoleAssignment.resourceId = UUID.fromString("8fce32da-1246-437b-99cd-76d1d4677bd5");
appRoleAssignment.appRoleId = UUID.fromString("498476ce-e0fe-48b0-b801-37ba7e2685c6");
graphClient.servicePrincipals("9028d19c-26a9-4809-8e3f-20ff73e2d75e").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 := "9028d19c-26a9-4809-8e3f-20ff73e2d75e"
requestBody.SetPrincipalId(&principalId)
resourceId := "8fce32da-1246-437b-99cd-76d1d4677bd5"
requestBody.SetResourceId(&resourceId)
appRoleId := "498476ce-e0fe-48b0-b801-37ba7e2685c6"
requestBody.SetAppRoleId(&appRoleId)
servicePrincipalId := "servicePrincipal-id"
result, err := graphClient.ServicePrincipalsById(&servicePrincipalId).AppRoleAssignments().Post(requestBody)
SDK をプロジェクトに追加し、authProvider インスタンスを作成する方法の詳細については、SDK のドキュメントを参照してください。
Import-Module Microsoft.Graph.Applications
$params = @{
PrincipalId = "9028d19c-26a9-4809-8e3f-20ff73e2d75e"
ResourceId = "8fce32da-1246-437b-99cd-76d1d4677bd5"
AppRoleId = "498476ce-e0fe-48b0-b801-37ba7e2685c6"
}
New-MgServicePrincipalAppRoleAssignment -ServicePrincipalId $servicePrincipalId -BodyParameter $params
SDK をプロジェクトに追加し、authProvider インスタンスを作成する方法の詳細については、SDK のドキュメントを参照してください。
この例では、サービス プリンシパル ID として要求 URL (9028d19c-26a9-4809-8e3f-20ff73e2d75e) に使用される値は、本文内の principalId プロパティと同一であるという点に注意してください。この resourceId 値はリソース サービス プリンシパル (API) の ID です。
応答
以下は、応答の例です。
注: ここに示す応答オブジェクトは、読みやすさのために短縮されている場合があります。
HTTP/1.1 201 Created
Content-type: application/json
{
"@odata.context": "https://graph.microsoft.com/v1.0/$metadata#appRoleAssignments/$entity",
"id": "2jLOj0YSe0OZzXbR1Gd71fDqFUrPM1xIgUfvWBHJ9n0",
"createdDateTime": "2021-02-15T16:39:38.2975029Z",
"appRoleId": "498476ce-e0fe-48b0-b801-37ba7e2685c6",
"principalDisplayName": "Fabrikam App",
"principalId": "9028d19c-26a9-4809-8e3f-20ff73e2d75e",
"principalType": "ServicePrincipal",
"resourceDisplayName": "Microsoft Graph",
"resourceId": "8fce32da-1246-437b-99cd-76d1d4677bd5"
}