2017-03-21 4 views
0

Der Versuch, die E-Mails der einzelnen Benutzer in der Domäne auf office365 zu lesen/schreiben/zu aktualisieren. Ich verwende Azure Active Directory und eine Azure App. Ich bin der Kontoadministrator. Ich habe zu diesem Zeitpunkt eine ganze Reihe von Berechtigungen aktiviert, da ich nicht sicher bin, welche notwendig sind.Azure-delegierte E-Mail-Lesevorgänge in der office365-Domäne (nodejs)

Ich programmiere in Nodejs. So ...

  1. Authentifizieren Sie meine App mithilfe von OAuth gegen Azure, damit ich auf meine eigene Anwendung zugreifen kann. < - ARBEITEN.
  2. Fordern Sie Administratorrechte für das Konto unter dieser URL an: https://login.microsoftonline.com/common/adminconsent?client_id='+clientID+'&redirect_uri'+uri, wobei clientID und uri ersetzt werden. Dies leitet mich zur Authentifizierung gegen Microsoft-Plattform um. Sie können alle Berechtigungen sehe ich angefordert (beim Debuggen) hier: enter image description here

  3. Sobald ich akzeptiere die Berechtigungen es mich zu meiner App gibt, wo es ein Token anfordert aus: https://login.windows.net/[my-app-tenant-id]/oauth2/token. Das gibt das Zugriffstoken zurück. So weit so gut

  4. Danach versuche ich dann, diesen Token zu verwenden, um einen Benutzer meiner Organisationen E-Mails (zum Beispiel ich, aber es gibt ein paar Benutzer habe ich es versucht) zu lesen. Es geht um: https://graph.microsoft.com/v1.0/[[email protected]/messages. Ich gebe den Token als bearer weiter. Das ist das Problem, ich

    { "Fehler" erhalten: { "Code": "InvalidAuthenticationToken", "message": "Der Zugriff Token Prüfungsfehler", "innerError": { „-Anfrage -id ": "[request-id]", "Datum": "2017-03-21T17: 31: 24" } } }

ich habe dies von URLs mit ein paar versucht, B. die Outlook-API, mit dieser URL https://outlook.office.com/api/v2.0. Ich denke aber, das ist für einfache OAuth und würde sowieso nicht so funktionieren.

Wenn jemand erklären kann, wie man das Zugangstoken erhält, um gültig zu sein, wäre groß.

FYI, ich bin auch gleichzeitig die npm Bibliothek azure-graphapi testet und mit:

var clientID = '[client id]' 
    var clientSecret = '[client secret]' 
    var tenant = '[tenant id]' 
    var graph = new GraphAPI(tenant, clientID, clientSecret); 
    graph.get('users/', function(err, user) { 
     resp.json({users: user});  
    }) 

ich die Liste der Benutzer bekommen. Vielleicht bin ich also dumm, und irgendwie kann ich damit die E-Mail eines Benutzers lesen?

Dank

Antwort

0

Vielleicht haben Sie einen Fehler in den Request-Header gemacht Zugriffstoken zu erhalten.

Wie Sie sehen können, habe ich ein Token durch eine POST-Anforderung an den https://login.microsoftonline.com/common/oauth2/v2.0/token Endpunkt zu senden und den Wert mail.read zum scope Parameter in dieser Anforderung übergeben.

enter image description here

Nun, ich bin in der Lage mit dem Token-E-Mails des Benutzers zu erhalten.

enter image description here

+0

Also ich denke, das für Standard-oAuth ist .... Ich versuche, eine App zu erstellen, die im Namen der Benutzer in AD handeln können, anstatt ein Benutzer anmeldet und ihre eigenen Daten zugreifen. ... – amlwwalker