Microsoft Graph / Office 365 REST API使用服务主体登录

时间:2016-12-15 11:30:49

标签: office365 microsoft-graph azure-ad-graph-api

是否可以使用服务主体登录MS或Azure Graph或Office 365 REST API?我目前正在开发一个多租户应用程序,并且使用OAuth我不喜欢我的刷新令牌可能会过期。

2 个答案:

答案 0 :(得分:1)

您可以使用基于证书的基于应用程序的身份验证。

当您将X.509证书添加到应用程序的清单时,您应该能够使用以下内容来获取应用程序令牌。请记住,这是一个应用程序登录,因此权限需要在应用程序上,而不是在登录用户上。

var cert = new X509Certificate2(certBytes, certificatePassword);
var clientAssertionCertificate = new ClientAssertionCertificate(clientId, cert);

var authenticationResult = 
    await authenticationContext.AcquireTokenAsync(resourceToAuthenticate, clientAssertionCertificate);

答案 1 :(得分:1)

建立在最后一个答案上。您应该遵循本文中的信息:https://graph.microsoft.io/en-us/docs/authorization/app_only,它通过使用OAuth2.0 client_credential流程来获取应用程序访问令牌(没有用户上下文),包括如何让客户的管理员和#39 ; s租户授权访问您的多租户应用程序。上面的答案使用auth客户端库(ADAL)向您展示如何获取令牌,但这也可以使用HTTP请求来完成。

注意:您不应该担心上述文档链接的服务主体等 - 这是通过同意/授权流程在幕后发生的所有机制。

希望这有帮助,