Я пытаюсь прочитать свойства пользователя из графа ms внутри функции Azure. Для аутентификации я использовал класс DefaultAzureCredential из Azure.Identity.
Локальный доступ с общими учетными данными кэша токенов и учетными данными управляемого удостоверения в Azure — это не проблема! Я хотел использовать учетные данные Visual Studio Code, но получаю Authorization_RequestDenied! Недостаточно привилегий для завершения сообщения об ошибке операции при вызове API графа.
Проблема, похоже, заключается в токене доступа, который я получил с учетными данными VS Code. Учетная запись пользователя та же самая, которую я использовал с учетными данными Shared Token Cache.
Любые идеи? Спасибо.
Код:
DefaultAzureCredentialOptions options = new DefaultAzureCredentialOptions();
options.VisualStudioCodeTenantId = Environment.GetEnvironmentVariable("Debug_VisualStudioCodeTenantId");
var credential = new DefaultAzureCredential(options);
token = credential.GetToken(
new Azure.Core.TokenRequestContext(
new[] { "https://graph.microsoft.com/.default" }));
accessToken = token.Token;
var graphServiceClient = new GraphServiceClient(
new DelegateAuthenticationProvider((requestMessage) =>
{
requestMessage
.Headers
.Authorization = new AuthenticationHeaderValue("bearer", accessToken);
return Task.CompletedTask;
}));
var users = await graphServiceClient.Users.Request().GetAsync(); // throw the forbidden exception
Исключение: Код: Authorization_RequestDenied\r\nСообщение: недостаточно прав для завершения операции.\r\nВнутренняя ошибка:\r\n\tAdditionalData:\r\n\tdate: 2021-04-20T08: 02:23\r\n\идентификатор запроса: ...\r\n\tclient-request-id: ...\r\nClientRequestId: ...\r\n
https://graph.microsoft.com/User.Read.All
в качестве области видимости вместо .default. Это может закончиться ошибкой :\ - person juunas   schedule 20.04.2021