Используя приведенный ниже код, я могу подтвердить, что впервые даю согласие администратора. Но когда я вызываю код во второй раз. Код возвращает ошибку.
Пример:
Я могу предоставить доступ для User.Read.All
по первому запросу. Но когда я хочу дать администратору согласие на вторую роль AccessReview.Read.All
, запрос выдает ниже ошибку
Код
IConfidentialClientApplication app = ConfidentialClientApplicationBuilder.Create("Client ID")
.WithClientSecret("Client Secret")
.WithTenantId("Tenant ID")
.Build();
string scopes = "https://graph.microsoft.com/.default";
ClientCredentialProvider authProvider = new ClientCredentialProvider(app, scopes);
Beta.GraphServiceClient graphClient = new Beta.GraphServiceClient(authProvider);
Beta.OAuth2PermissionGrant test = new Beta.OAuth2PermissionGrant { ClientId = model.clientId, ConsentType = model.consentType, ExpiryTime = model.expiryTime, ResourceId = model.resourceId, Scope = model.scope };
var response = await graphClient.Oauth2PermissionGrants
.Request()
.AddAsync(test);
return response.ToString();
Ошибка
Status Code: Conflict
Microsoft.Graph.ServiceException: Code: Request_MultipleObjectsWithSameKeyValue
Message: Permission entry already exists.
Inner error:
AdditionalData:
request-id: b9e44bc2-7588-4390-a3ca-9abdc213d930
date: 2020-04-23T19:43:03
ClientRequestId: b9e44bc2-7588-4390-a3ca-9abdc213d930