Сохрани это

опытке получить доступ к клиенту службы графов я получаю сообщение об ошибке:

Код: Authorization_RequestDenied
Сообщение: недостаточно прав для завершения операции.

После исследования этой ошибки наиболее распространенным решением было установить разрешения для API. Это уже было сделано и имеет права на чтение основных / полных профилей.

Я удалил и заново добавил API.

Ниже код в моемAzureAuthenticationProvider класс, который наследуется отIAuthenticationProvider:

public class AzureAuthenticationProvider : IAuthenticationProvider
{
    private string _azureDomain = "myDevDom.onmicrosoft.com";

    public async Task AuthenticateRequestAsync(HttpRequestMessage request)
    {
        try
        {
            string clientId = "2b823c67-1b0d-4a10-a9e1-737142516f5q";
            string clientSecret = "xxxxxx";

            AuthenticationContext authContext = new AuthenticationContext("https://login.windows.net/" + _azureDomain + "/oauth2/token");

            ClientCredential credentials = new ClientCredential(clientId, clientSecret);

            AuthenticationResult authResult = await authContext.AcquireTokenAsync("https://graph.microsoft.com/", credentials);

            request.Headers.Add("Authorization", "Bearer " + authResult.AccessToken);
        }
        catch (Exception ex)
        {
        }
    }
}

Я попытался изменить секрет клиента на недопустимый идентификатор, и он выдал ошибку, поэтому ключ клиента правильный. Я также пытался проверить, что токен доступа действителен, изменив токен доступа, это также возвращает ошибку.

Код выше, кажется, работает нормально.

Ниже приведен код доступа к Azure AD:

public async Task<IGraphServiceUsersCollectionPage> GetUsersByLastName(string lastname)  
{
    GraphServiceClient graphClient = new GraphServiceClient(new AzureAuthenticationProvider());
    string filter = String.Format("startswith(surname, '{0}')", lastname);
    IGraphServiceUsersCollectionPage users = await graphClient.Users.Request().Filter(filter).GetAsync(); //Fails on this line
    return users;
}

Любая помощь очень ценится, и заранее спасибо за любую помощь.

Ответы на вопрос(6)

Ваш ответ на вопрос