我对Office 365 API很陌生 - 我希望以编程方式进行身份验证,但我一直在测试的示例需要通过登录页面。这是否可能,如果是这样,有人能够指出我的一些例子(我将主要用于日历)。感谢。
答案 0 :(得分:4)
Azure AD的OAuth2.0有两种基本身份验证流程。
第一个是授权代码授予流程,用于访问Azure Active Directory(Azure AD)中的本机客户端和网站的Web API。在此流程中,用户委派对客户端应用程序的访问权限。
第二个是客户端凭据授权流程,它允许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/user1@yourdomain.onmicrosoft/messages").Result;
Console.WriteLine(response.Content.ReadAsStringAsync().Result);
要使用Office 365 REST API,我们需要先注册该应用。您可以参考here了解详细信息。