2017-09-09 3 views
0

Ce que je veux faire est assez simple: provisionner Office 365 et Azure Account à partir de mon application Web. Et je veux qu'il soit disponible non seulement pour moi, mais pour tous les départements informatiques (d'autres organisations aussi) qui se connecte à mon application.API Microsoft Graph avec provisioning d'utilisateurs Azure

De ma compréhension les mesures que je dois prendre sont:

  • inscrire sur App apps.dev.microsoft.com et obtenir ID et secret.
  • Activer les Scopes Je suis intéressé (dans mon cas Directory.ReadWrite.All et User.ReadWrite.All) - Activé dans les deux Delegated Autorisations et autorisations d'application
  • passés par le processus de connexion

    https://login.microsoftonline.com/common/oauth2/v2.0/authorize?client_id=[My client] & response_type = Code & redirect_uri = [Mon compte]/compte/Bureau & response_mode = requête & scope = Openid% 20User.Read% 20offline_access% 20Directory.ReadWrite.All

  • Confirmer le code que je reçois sur mon URL de retour

POST https://login.microsoftonline.com/common/oauth2/v2.0/token?...secret and so on...

Maintenant, ce que je reçois est un objet avec jeton d'accès, Renew jeton et ainsi de suite et ainsi de suite.

Si je l'utilise pour amener les utilisateurs, il est tout travail:

https://graph.microsoft.com/v1.0/users

Mais lorsque je tente d'effectuer d'autres opérations le jeton semble invalide.

Par exemple:

  • Get abonnements Azure (le compte est administrateur de plusieurs abonnement):

https://management.core.windows.net/subscriptions ==> NON AUTORISÉ

Ce que je fais mal? L'IDÉE est-elle correcte?

J'ai vraiment besoin d'être fait à un niveau "global" sans configurer les étapes manuelles sur chaque abonnement ou mettre un "TenantID" manuellement.

Répondre

1

Vous avez demandé un jeton avec scope pour la Microsoft Graph API qui est la raison pour laquelle vous pouvez utiliser l'API points d'extrémité par apprêté https://graph.microsoft.com/.

L'appel à https://management.core.windows.net/subscriptions est et non partie de Microsoft Graph API donc votre jeton n'est pas valide pour cette ressource. Cet appel est dans le Service Management REST API. L'authentification pour cette API est documented here.