Как использовать ConfidentialClientApplication для выполнения запросов AppOnly к Graph (Group.ReadWrite.All)
Я играл с MSAL Microsoft.Identity.Client.ConfidentialClientApplication для выполнения операций Microsoft Graph - Группы только для приложений.
var RedirectUri = "urn:ietf:wg:oauth:2.0:oob";
var clientApplication = new ConfidentialClientApplication(ClientId, RedirectUri, new ClientCredential(ClientSecret), null);
Я застрял на следующем шаге:
authenticationResult = clientApplication.AcquireTokenSilentAsync(new string[]{"Group.ReadWrite.All"}).GetAwaiter().GetResult();
Я получаю сообщение об ошибке failed_to_acquire_token_silently
authenticationResult = clientApplication.AcquireTokenForClient(new string[]{"Group.ReadWrite.All"}, string.Empty).GetAwaiter().GetResult();
Я получаю ошибку invalid_scope
Не уверен, в каком направлении я должен продолжать.
(примечания - с PublicClientApplication один и тот же код работает нормально - приложение имеет как AppOnly Group.ReadWrite.All, так и Delegate Group.ReadWrite.All разрешения - с PublicClienApplication есть нежелательный диалог пользовательского интерфейса...)
var clientApplication = new PublicClientApplication(ClientId);
authenticationResult = clientApplication.AcquireTokenAsync(Scopes).GetAwaiter().GetResult();
1 ответ
Пожалуйста, попробуйте дать согласие на Уверенный клиент, которого вы создали. Вы можете сделать это, изменив следующий URL с вашими настройками:
https://login.microsoftonline.com/<TenantID>/oauth2/authorize?client_id=<AppID>&response_type=code&redirect_uri=<RedirectURI>&resource=<ResourceURI>&prompt=admin_consent
Убедитесь, что информация, которую вы указали в этом URL, является конфиденциальным клиентом.
Надеюсь, это поможет!