2017-09-18 4 views
0

Je regarde les exemples de codes à https://github.com/Azure-Samples/active-directory-dotnet-graphapi-consoleEst-il possible d'utiliser Active Directory Graph Api sans votre consentement?

Il semble, peu importe que nous obtenons le client AD pour l'application ou de l'utilisateur, il aura besoin du consentement de l'utilisateur. Est-il possible que nous puissions utiliser le graphique api sans le consentement de l'utilisateur étant donné que l'utilisateur peut fournir l'identifiant du client ou tout autre mot de passe/secret?

Je travaille sur le projet qui est censé fonctionner en tant que service Windows en arrière-plan. S'il a besoin d'un consentement de temps en temps, nous ne pouvons probablement pas utiliser le service Windows pour cela.

Merci

Répondre

0

Non, l'ajout d'une autorisation déléguée à une demande n'accorde pas automatiquement le consentement aux utilisateurs du locataire. Les utilisateurs doivent toujours consentir manuellement pour les autorisations déléguées ajoutées à l'exécution, sauf si l'administrateur clique sur le bouton Grant Permissions de la section Required Permissions de la page d'application dans le portail Azure pour obtenir le consentement de l'administrateur. Dans cet exemple de code, si vous choisissez d'exécuter l'application de console en mode application, un utilisateur admin devra donner son accord pour les autorisations d'application.

Veuillez cliquer sur here pour plus de détails sur le consentement de l'utilisateur et de l'administrateur.

Dans votre scénario, vous pouvez utiliser Client Credentials Grant Flow qui permet à un service Web (client confidentiel) d'utiliser ses propres informations d'identification au lieu d'usurper l'identité d'un utilisateur. Après avoir ajouté des autorisations pour l'API Azure AD Graph, cliquez sur le bouton Grant Permissions dans la section Required Permissions de la page de l'application, dans le portail Azure avec un compte administrateur. Après le consentement de l'administrateur, vous pouvez acquérir un jeton pour l'API graphique en utilisant l'identité de l'application et ne pas être invité à donner son consentement à l'exécution. Code samples en utilisant le flux d'informations d'identification client sont pour votre référence.

0

Comme @Nan Yu dit, vous pouvez utiliser le compte administrateur de votre répertoire pour atteindre le Autoriser les autorisations. En outre, il existe une autre solution pour votre cas. C'est dans le bas du lien que vous publiez. Je l'ai essayé dans mon laboratoire de test et ça a marché. La solution est ici:

Si vous souhaitez exécuter l'application de console en mode App (ce qui est quelque peu artificiel, puisque cela devrait vraiment être exécuté en tant que client natif), vous devrez forcer le consentement manuellement, au préalable. Ici, un utilisateur admin devra donner son accord. Vous pouvez forcer le consentement en ouvrant un navigateur, et aller à l'URL suivante, en remplaçant tenantId avec votre TenantID et app-mode-application-id avec votre ID d'application pour votre application en mode application:

https://login.microsoftonline.com/<tenantId>/oauth2/authorize?client_id=app-mode-application-id>&response_type=code &redirect_uri=http%3A%2F%2Flocalhost%2F&response_mode=query &resource=https%3A%2F%2Fgraph.windows.net%2F&state=12345 

Après la signature (si pas déjà connecté), cliquez sur le Acceptez dans la page de consentement. Vous pouvez ensuite fermer le navigateur. Maintenant que vous avez pré-autorisé,, vous pouvez essayer d'exécuter l'exemple de la console en mode App.

+0

Bonjour, @urlreader, Si cette réponse peut vous être utile, veuillez la marquer comme une réponse pour aider plus de gens. Merci! –