web-dev-qa-db-fra.com

AADSTS70011: La valeur fournie pour le paramètre d'entrée 'scope' n'est pas valide

J'ai donc un scénario où dans l'application devrait ajouter des utilisateurs au groupe sous certaines conditions. De plus, lorsque l'application démarre, l'utilisateur ne doit pas être invité à se connecter avec son identifiant Microsoft/pwd. J'accède donc au jeton que j'ai créé l'objet Graph Service Client comme suit:

GraphServiceClient graphClient = new GraphServiceClient(
    "https://graph.Microsoft.com/v1.0", 
    new DelegateAuthenticationProvider(
        async (requestMessage) =>
        {
            string clientId = "My APP ID";
            string authorityFormat = "https://login.microsoftonline.com/{0}/v2.0";
            string tenantId = "tenant GUID";
            string[] _scopes = new string[] { 
                "https://graph.Microsoft.com/User.ReadBasic.All" 
            };
            // Custom Redirect URI asigned in the Application Registration 
            // Portal in the native Application Platform
            string redirectUri = "https://localhost:4803/"; 
            string clientSecret = "App Secret";
            ConfidentialClientApplication daemonClient = new ConfidentialClientApplication(
                clientId, 
                String.Format(authorityFormat, tenantId), 
                redirectUri, 
                new ClientCredential(clientSecret), 
                null, new TokenCache()
            );
            AuthenticationResult authResult = await daemonClient.AcquireTokenForClientAsync(_scopes);
            string token = authResult.AccessToken;
            requestMessage.Headers.Authorization = new AuthenticationHeaderValue("bearer", token);
        }
   )
);

J'essaie donc d'exécuter var user = await graphClient.Me.Request().GetAsync();

Je reçois une erreur:

AADSTS70011: La valeur fournie pour le paramètre d'entrée 'scope' n'est pas valide. La portée user.read n'est pas valide.

J'ai également essayé d'utiliser simplement User.ReadBasic Comme portée, mais j'obtiens la même erreur. Qu'est-ce que je fais mal ici?

11
sidi shah

Vous utilisez le flux d'informations d'identification client ici, ce qui signifie que vous ne pouvez pas demander dynamiquement des étendues. Vous devez configurer vos étendues d'autorisation requises lors de l'inscription de votre application dans apps.dev.Microsoft.com, puis vous définissez la valeur de l'étendue dans votre code sur https://graph.Microsoft.com/.default.

Voir https://developer.Microsoft.com/en-us/graph/docs/concepts/auth_v2_service pour plus de détails.

13
Jason Johnston