2016-07-05 13 views
0

私はOffice 365 APIの新機能を使用しています。プログラムで認証しようとしていますが、テストした例ではログインページを通過する必要があります。これが可能なのか、もしそうなら、誰かが私にいくつかの例を指摘することができるでしょう(私は主にこれをカレンダーに使用します)。ありがとう。Office 365 APIプログラムによる認証

+1

コード/ソフトウェア/ドキュメント/ examples/etcの入力は、明らかにオフトピックです。 –

答えて

1

Azure ADのOAuth2.0には2つの基本的な認証フローがあります。

最初は承認コード許可フロー Azure Active Directory(Azure AD)のネイティブクライアントとWebサイトによるWeb APIへのアクセスに使用されていました。このフローでは、ユーザーはクライアントアプリケーションへのアクセスを委任します。

第二は、クライアントの資格別のWebサービスを呼び出すときに代わりにユーザーを偽装の、認証するために、独自の資格情報を使用するWebサービス(機密クライアント)を許可するグラント・フローです。このシナリオでは、クライアントは通常、中間層のWebサービス、デーモンサービス、またはWebサイトです。

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

とOffice 365のREST APIを使用するために、我々はアプリを登録する必要があります。ここでは

はあなたの参照のための特定のユーザーからメッセージを取得するためにクライアントの資格情報グラントフローを使用した例であります最初。詳細については、hereを参照してください。

+0

これがうまくいくかどうかは分かりません。私が読んだことは、クライアント資格情報フローでX.509証明書を使用する必要があることを示唆しています。 [詳細はこのページをご覧ください](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

クライアントの資格フローは、2つの方法をサポートします。 1つは秘密を使用し、もう1つは証明書を使用しています。 –

関連する問題