2016-07-05 14 views
0

Ich bin ziemlich neu in der Office 365 API- Ich bin auf der Suche nach Programmauthentifizierung, aber die Beispiele, mit denen ich getestet habe, erfordern die Anmeldeseite durchlaufen. Ist das möglich und wenn ja, kann mich jemand auf einige Beispiele hinweisen (ich werde das meistens für den Kalender verwenden). Vielen Dank.Office 365 API programmatische Authentifizierung

+1

Fragen nach Code/Software/Dokumentation/Beispiele/etc .. ist EXPLIZITE off-topic. –

Antwort

1

Es gibt zwei grundlegende Authentifizierungsabläufe von OAuth2.0 für Azure AD.

Die erste ist Berechtigungscode Erteilungsfluss, der für den Zugriff auf Web-APIs durch native Clients und Websites in Azure Active Directory (Azure AD) verwendet wurde. In diesem Ablauf weist der Benutzer den Zugriff auf eine Clientanwendung zu.

Die zweite ist Client-Berechtigungsnachweis Grant Flow, die es einem Webdienst (einem vertraulichen Client) erlaubt, seine eigenen Anmeldeinformationen zu verwenden, um sich beim Aufrufen eines anderen Webdienstes zu authentifizieren, anstatt sich als Benutzer auszugeben. In diesem Szenario ist der Client normalerweise ein Webdienst der mittleren Schicht, ein Dämonendienst oder eine Website.

Hier ist ein Beispiel, dass das Grant-Flow-Client-Credentials mit den Nachrichten von bestimmten Benutzern für Ihre Referenz zu erhalten:

string clientId = ""; 
    string clientsecret = ""; 
    string tenant = "yourdomain.onmicrosoft.com"; 

    var authUri = "https://login.microsoftonline.com/"+tenant+"/oauth2/token"; 
    var RESOURCE_URL = "https://outlook.office.com"; 

    HttpClient client = new HttpClient(); 
    var authContext = new AuthenticationContext(authUri); 
    var credential = new ClientCredential(clientId: clientId, clientSecret: clientsecret); 
    var result = authContext.AcquireTokenAsync(RESOURCE_URL, credential).Result; 
    client.DefaultRequestHeaders.Add("Authorization", "bearer " + result.AccessToken); 


    var response = client.GetAsync("https://outlook.office.com/api/v2.0/users/[email protected]/messages").Result; 

    Console.WriteLine(response.Content.ReadAsStringAsync().Result); 

und das Office-365-REST-API zu verwenden, müssen wir die App registrieren zuerst. Für Details verweisen wir auf here.

+0

Ich bin nicht sicher, ob das funktioniert - alles, was ich gelesen habe, legt nahe, dass Sie ein X.509-Zertifikat im Client-Credential-Flow verwenden müssen. [Siehe diese Seite für weitere Informationen] (https://blogs.msdn.microsoft.com/exchangedev/2015/01/21/building-daemon-or-service-apps-with-office-365-mail-calendar-and -contacts-apis-oauth2-client-credential-flow /) – Ben

+0

Der Client-Credential-Flow unterstützt zwei Möglichkeiten. Einer benutzt das Geheimnis und der andere benutzt das Zertifikat. –

Verwandte Themen