oAuth2PermissionGrant を作成する (委任されたアクセス許可付与)
-
[アーティクル]
-
-
名前空間: microsoft.graph
oAuth2PermissionGrant オブジェクトによって表される委任されたアクセス許可付与を作成します。
委任されたアクセス許可付与は、クライアント サービス プリンシパル (クライアント アプリケーションを表す) が、サインインしているユーザーに代わってリソース サービス プリンシパル (API を表す) にアクセスし、付与された委任されたアクセス許可によって制限されたアクセスレベルを承認します。
アクセス許可
この API を呼び出すには、次のいずれかのアクセス許可が必要です。アクセス許可の選択方法などの詳細については、「アクセス許可」を参照してください。
| アクセス許可の種類 |
アクセス許可 (特権の小さいものから大きいものへ) |
| 委任 (職場または学校のアカウント) |
DelegatedPermissionGrant.ReadWrite.All, Directory.ReadWrite.All |
| 委任 (個人用 Microsoft アカウント) |
サポートされていません。 |
| アプリケーション |
DelegatedPermissionGrant.ReadWrite.All, Directory.ReadWrite.All |
HTTP 要求
POST /oauth2PermissionGrants
| 名前 |
型 |
説明 |
| Authorization |
string |
ベアラー {token}。必須。 |
要求本文
要求本文で、 oAuth2PermissionGrant オブジェクトの JSON 表現を指定します。
応答
成功した場合、このメソッドは 200 シリーズの応答コードと、応答本文に新しい oAuth2PermissionGrant オブジェクトを返します。 次の表は、 oAuth2PermissionGrant を作成するときに必要なプロパティを示しています。
| プロパティ |
型 |
説明 |
| clientId |
String |
API にアクセスするときにサインインしているユーザーの代理として動作することが承認されているアプリケーションのクライアント サービス プリンシパルの ID。 必須です。 |
| consentType |
String |
クライアント アプリケーションに対して、すべてのユーザーまたは特定のユーザーのみを偽装するための承認が許可されているかどうかを示します。 AllPrincipals は、 すべてのユーザーを偽装する承認を示します。 プリンシパル は、特定のユーザーを偽装する承認を示します。 管理者は、すべてのユーザーに代わって同意を与えることができます。 管理者以外のユーザーは、一部の委任されたアクセス許可に対して、場合によっては自分自身に代わって同意する権限を与えられる場合があります。 必須です。 |
| principalId |
String |
consentType が Principal の場合に、クライアントがリソースへのアクセスを許可されているユーザーの ID。 consentType が AllPrincipals の場合、 この値は null です。 consentType が プリンシパル の場合に必要です。 |
| resourceId |
String |
アクセスが承認されるリソース サービス プリンシパルの ID。 これにより、サインインしているユーザーに代わってクライアントが呼び出しを試みる権限を持つ API が識別されます。 |
| scope |
String |
リソース アプリケーション (API) のアクセス トークンに含める必要がある委任されたアクセス許可の要求値のスペース区切りの一覧。 たとえば、「 openid User.Read GroupMember.Read.All 」のように入力します。 各要求値は、リソース サービス プリンシパルの oauth2PermissionScopes プロパティに記載されている、API によって定義されている委任されたアクセス許可の 1 つの 値 フィールドと一致する必要があります。 |
例
要求
POST https://graph.microsoft.com/v1.0/oauth2PermissionGrants
Content-Type: application/json
{
"clientId": "ef969797-201d-4f6b-960c-e9ed5f31dab5",
"consentType": "AllPrincipals",
"resourceId": "943603e4-e787-4fe9-93d1-e30f749aae39",
"scope": "DelegatedPermissionGrant.ReadWrite.All"
}
GraphServiceClient graphClient = new GraphServiceClient( authProvider );
var oAuth2PermissionGrant = new OAuth2PermissionGrant
{
ClientId = "ef969797-201d-4f6b-960c-e9ed5f31dab5",
ConsentType = "AllPrincipals",
ResourceId = "943603e4-e787-4fe9-93d1-e30f749aae39",
Scope = "DelegatedPermissionGrant.ReadWrite.All"
};
await graphClient.Oauth2PermissionGrants
.Request()
.AddAsync(oAuth2PermissionGrant);
SDK をプロジェクトに追加し、authProvider インスタンスを作成する方法の詳細については、SDK のドキュメントを参照してください。
const options = {
authProvider,
};
const client = Client.init(options);
const oAuth2PermissionGrant = {
clientId: 'ef969797-201d-4f6b-960c-e9ed5f31dab5',
consentType: 'AllPrincipals',
resourceId: '943603e4-e787-4fe9-93d1-e30f749aae39',
scope: 'DelegatedPermissionGrant.ReadWrite.All'
};
await client.api('/oauth2PermissionGrants')
.post(oAuth2PermissionGrant);
SDK をプロジェクトに追加し、authProvider インスタンスを作成する方法の詳細については、SDK のドキュメントを参照してください。
MSHTTPClient *httpClient = [MSClientFactory createHTTPClientWithAuthenticationProvider:authenticationProvider];
NSString *MSGraphBaseURL = @"https://graph.microsoft.com/v1.0/";
NSMutableURLRequest *urlRequest = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:[MSGraphBaseURL stringByAppendingString:@"/oauth2PermissionGrants"]]];
[urlRequest setHTTPMethod:@"POST"];
[urlRequest setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
MSGraphOAuth2PermissionGrant *oAuth2PermissionGrant = [[MSGraphOAuth2PermissionGrant alloc] init];
[oAuth2PermissionGrant setClientId:@"ef969797-201d-4f6b-960c-e9ed5f31dab5"];
[oAuth2PermissionGrant setConsentType:@"AllPrincipals"];
[oAuth2PermissionGrant setResourceId:@"943603e4-e787-4fe9-93d1-e30f749aae39"];
[oAuth2PermissionGrant setScope:@"DelegatedPermissionGrant.ReadWrite.All"];
NSError *error;
NSData *oAuth2PermissionGrantData = [oAuth2PermissionGrant getSerializedDataWithError:&error];
[urlRequest setHTTPBody:oAuth2PermissionGrantData];
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();
OAuth2PermissionGrant oAuth2PermissionGrant = new OAuth2PermissionGrant();
oAuth2PermissionGrant.clientId = "ef969797-201d-4f6b-960c-e9ed5f31dab5";
oAuth2PermissionGrant.consentType = "AllPrincipals";
oAuth2PermissionGrant.resourceId = "943603e4-e787-4fe9-93d1-e30f749aae39";
oAuth2PermissionGrant.scope = "DelegatedPermissionGrant.ReadWrite.All";
graphClient.oauth2PermissionGrants()
.buildRequest()
.post(oAuth2PermissionGrant);
SDK をプロジェクトに追加し、authProvider インスタンスを作成する方法の詳細については、SDK のドキュメントを参照してください。
//THE GO SDK IS IN PREVIEW. NON-PRODUCTION USE ONLY
graphClient := msgraphsdk.NewGraphServiceClient(requestAdapter)
requestBody := msgraphsdk.NewOAuth2PermissionGrant()
clientId := "ef969797-201d-4f6b-960c-e9ed5f31dab5"
requestBody.SetClientId(&clientId)
consentType := "AllPrincipals"
requestBody.SetConsentType(&consentType)
resourceId := "943603e4-e787-4fe9-93d1-e30f749aae39"
requestBody.SetResourceId(&resourceId)
scope := "DelegatedPermissionGrant.ReadWrite.All"
requestBody.SetScope(&scope)
result, err := graphClient.Oauth2PermissionGrants().Post(requestBody)
SDK をプロジェクトに追加し、authProvider インスタンスを作成する方法の詳細については、SDK のドキュメントを参照してください。
Import-Module Microsoft.Graph.Identity.SignIns
$params = @{
ClientId = "ef969797-201d-4f6b-960c-e9ed5f31dab5"
ConsentType = "AllPrincipals"
ResourceId = "943603e4-e787-4fe9-93d1-e30f749aae39"
Scope = "DelegatedPermissionGrant.ReadWrite.All"
}
New-MgOauth2PermissionGrant -BodyParameter $params
SDK をプロジェクトに追加し、authProvider インスタンスを作成する方法の詳細については、SDK のドキュメントを参照してください。
応答
HTTP/1.1 201 Created
Content-Type: application/json
{
"@odata.context": "https://graph.microsoft.com/v1.0/$metadata#oauth2PermissionGrants/$entity",
"clientId": "ef969797-201d-4f6b-960c-e9ed5f31dab5",
"consentType": "AllPrincipals",
"id": "l5eW7x0ga0-WDOntXzHateQDNpSH5-lPk9HjD3Sarjk",
"principalId": null,
"resourceId": "943603e4-e787-4fe9-93d1-e30f749aae39",
"scope": "DelegatedPermissionGrant.ReadWrite.All"
}