API do Graph - privilégios insuficientes para concluir a operação

Ao tentar acessar o Graph Service Client usando, estou recebendo o erro:

Código: Authorization_RequestDenied
Mensagem: privilégios insuficientes para concluir a operação.

Depois de pesquisar esse erro, a solução mais comum foi definir as permissões para a API. Isso já havia sido feito e tem permissões para ler perfis básicos / completos.

Excluí e adicionei novamente as APIs.

Abaixo está o código no meuAzureAuthenticationProvider classe que herda deIAuthenticationProvider:

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)
        {
        }
    }
}

Tentei alterar o segredo do cliente para um ID inválido e gerou um erro, portanto a chave do cliente está correta. Eu também tentei verificar se o token de acesso é válido alterando o token de acesso, isso também retorna um erro.

O código acima parece funcionar bem.

Abaixo está o código em que estou tentando acessar o 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;
}

Qualquer ajuda é muito apreciada e desde já agradecemos por qualquer ajuda.

questionAnswers(6)

yourAnswerToTheQuestion