2016-07-05 2 views
0

Je suis assez nouveau dans l'API Office 365 - Je cherche à m'authentifier par programmation, mais les exemples que j'ai testés nécessitent de passer par la page de connexion. Est-ce possible et, si oui, quelqu'un pourrait-il me montrer quelques exemples (je vais surtout l'utiliser pour le calendrier). Merci.Authentification par programmation de l'API Office 365

+1

La demande de code/software/documentation/examples/etc .. est EXPLICITEMENT hors-sujet. –

Répondre

1

Il existe deux flux d'authentification de base de OAuth2.0 pour Azure AD.

Le code d'autorisation Grant Flow permettait d'accéder aux API Web par des clients natifs et des sites Web dans Azure Active Directory (Azure AD). Dans ce flux, l'utilisateur délègue l'accès à une application cliente. La seconde est Credentials Client Grant Flow qui permet à un service Web (un client confidentiel) d'utiliser ses propres informations d'identification pour s'authentifier lors de l'appel d'un autre service Web, au lieu d'usurper l'identité d'un utilisateur. Dans ce scénario, le client est généralement un service Web de niveau intermédiaire, un service démon ou un site Web.

Voici un exemple que l'utilisation de la subvention de vérification des pouvoirs clients flux pour obtenir les messages de l'utilisateur spécifique pour votre référence:

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); 

Et pour utiliser Office 365 API REST, nous devons enregistrer l'application premier. Vous pouvez vous référer à here pour le détail.

+0

Je ne sais pas si cela fonctionnera - tout ce que j'ai lu suggère que vous devez utiliser un certificat X.509 dans le flux d'informations d'identification du client. [Voir cette page pour plus d'informations] (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

Le flux d'informations d'identification client prend en charge deux manières. L'un utilise le secret et l'autre utilise le certificat. –