J'utilise l'autorisation Azure AD OAuth2 pour sécuriser mon API Web. Maintenant, je dois soutenir deux scénarios de OAuth2 (flux) -Azure AD OAuth Client informations d'identification flux contrôle d'accès
application Web accéder à l'API Web et l'API basée sur le rôle servira une ressource de l'utilisateur. Ceci est réalisé en utilisant authoriser le flux oauth, et le contrôle d'accès est effectué en utilisant les attributs Authorize [Role = "Read"]
Une application démon (console) accédant à la même API Web. Bien que je suis en mesure d'obtenir un jeton en utilisant les informations d'identification client flux OAuth, mais je ne suis pas en mesure de comprendre comment gérer l'accès au processus démon
Une fois le jeton est des problèmes de la console peut littéralement accéder à l'une des les méthodes de l'API.
Portée - lorsque grant_type est « client_credentials » portée est pas un paramètre/point final jeton de rôle - ne peux pas utiliser comme cela est associé à l'utilisateur
Quelqu'un peut-il s'il vous plaît suggérer, comment nous pouvons faire un contrôle d'accès au client les informations d'identification circulent? Et comment je peux répondre à la fois aux exigences 1 et 2 en même temps
Cela fonctionne dans le scénario 1, mais comment ce flux de travail des informations d'identification client? En supposant que j'ai une application cliente qui devrait avoir un accès "en lecture" et une autre qui a besoin d'un accès "en écriture" où dois-je spécifier le mappage? Existe-t-il un moyen de définir cet accès dans le portail azure? ou le client peut-il demander cette autorisation de lecture/écriture dans la demande de jeton? – Anoop
Le jeton que vous récupérez avec les informations d'identification du client doit inclure le rôle, après avoir ajouté l'autorisation d'application à l'application de console dans Azure AD et l'avoir accordée. – juunas
Juste pour m'assurer que cela fonctionne comme je me souviens, j'ai testé cela. Dans les deux jetons, vous obtenez un tableau de rôles contenant la valeur définie dans le rôle. Alors soit Things.Read ou Things.Read.All dans ce cas. :) – juunas