Как использовать 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, является конфиденциальным клиентом.

Надеюсь, это поможет!

Другие вопросы по тегам