2017-09-06 10 views
0

J'essaie d'appeler une API authentifiée à partir de mon application cliente. Cependant, lors de AcquireTokenAsync, je me suivais erreur "authority_not_in_valid_list: 'autorité' n'est pas dans la liste des adresses valides"authority_not_in_valid_list: 'autorité' n'est pas dans la liste des adresses valides

Voici mon extrait de code:

resourceUrl = "https://myApiEndPoint.com"; 

var clientCredential = 
    new ClientCredential(myClientAppId, myClientSecretKey); 

// myClientAppId et myClientSecretKey sont les valeurs de Portal Azure

var authContext = 
    new AuthenticationContext("https://my_authority/myApiEndPoint"); 

return await authContext.AcquireTokenAsync(resourceUrl, clientCredential); 

Dans mon portail azur pour mon client Id de l'application, j'ai accordé une autorisation déléguée pour accéder https://myApiEndPOint.com api.

Avez-vous des idées sur ce qui pourrait être à l'origine de ce problème et qu'est-ce que cela signifie par ne pas figurer dans une liste valide?

Répondre

0

Je comprends que:

  • vous avez créé votre application dans le portail Azure, et donc l'autorité est le point final AD Azure. Par conséquent, l'autorité est probablement https://login.microsoftonline.com/common? Ou avez-vous de bonnes raisons d'utiliser "https://my_authority"?

  • vous avez accordé autorisations déléguées pour accéder à l'API. Cela signifie que votre application accédera à l'API au nom de l'utilisateur. Toutefois, la méthode AcquireTokenAsync que vous utilisez utilise le flux « ClientCredential » (ce qui signifie avec un secret d'application) Vous voulez sans doute plutôt d'utiliser une autre dérogation passer le ResourceURI, le clientId, ...

Si cela est votre cas d'utilisation, je vous suggère de jeter un oeil à l'échantillon active-directory-dotnet-webapi-onbehalfof (Voir here)