Office 365 API 程序化身份验证
Office 365 API programmatic authentication
我是 Office 365 的新手 API- 我希望以编程方式进行身份验证,但我一直在测试的示例需要通过登录页面。这可能吗?如果可能的话,有人能给我指出一些例子吗(我主要将其用于日历)。谢谢
Azure AD 的 OAuth2.0 有两个基本的身份验证流程。
第一个是授权代码授予流程,它用于通过 Azure Active Directory (Azure AD) 中的本机客户端和网站访问 Web APIs。在此流程中,用户委托对客户端应用程序的访问。
第二个是 Client Credentials Grant Flow,它允许 Web 服务(机密客户端)在调用另一个 Web 服务时使用自己的凭据进行身份验证,而不是模拟用户.在这种情况下,客户端通常是中间层 Web 服务、守护程序服务或网站。
下面是一个使用Client Credentials Grant Flow获取特定用户消息的例子,供您参考:
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
我是 Office 365 的新手 API- 我希望以编程方式进行身份验证,但我一直在测试的示例需要通过登录页面。这可能吗?如果可能的话,有人能给我指出一些例子吗(我主要将其用于日历)。谢谢
Azure AD 的 OAuth2.0 有两个基本的身份验证流程。
第一个是授权代码授予流程,它用于通过 Azure Active Directory (Azure AD) 中的本机客户端和网站访问 Web APIs。在此流程中,用户委托对客户端应用程序的访问。
第二个是 Client Credentials Grant Flow,它允许 Web 服务(机密客户端)在调用另一个 Web 服务时使用自己的凭据进行身份验证,而不是模拟用户.在这种情况下,客户端通常是中间层 Web 服务、守护程序服务或网站。
下面是一个使用Client Credentials Grant Flow获取特定用户消息的例子,供您参考:
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