我们去年在自定义母版页中运行了Angular应用程序,使用Sharepoint REST API检索用户属性,列表中的数据等,这些工作正常。由于应用程序托管在Sharepoint Online上,访问该页面需要登录,从而使请求摘要可用,因此无需进一步的身份验证。
但是,现在我们要开始使用Microsoft Graph API中的一些功能。根据我的收集内容,这需要针对Azure Active Directory进行OAuth2身份验证,其中包括重定向到AAD登录页面。
这是否意味着我必须:
1)通过组织(标准Microsoft)登录页面登录以访问Sharepoint Online站点。 2)重定向到Azure AD登录页面并再次返回?
或者我可以利用用户登录Sharepoint Online时已经执行的登录吗?
很抱歉,如果这个问题有点模糊,我们对此仍然很陌生。
答案 0 :(得分:1)
在Azure AD上注册应用程序时,您将授予应用程序访问Files / Sharepoint REST api和Microsoft Graph API的权限。请参阅this picture该应用有权访问几个api(Exchange,Graph和AD),您必须在您的案例中添加sharepoint API。
关于身份验证,我担心Sharepoint模型不会提供使您能够请求Graph API see this的令牌。您将有两个身份验证,一个用于访问Sharepoint站点,如您所述,另一个用于"在" sharepoint iframed插件,用于登录您的AAD注册的应用程序。这将是通过login.microsoft.com的OAUTH流程。看一下Office商店中的Outlook加载项Keluro Mail Team,我认为它与您想要实现的类似。
答案 1 :(得分:1)
您可以使用graph.microsoft.com中的相同令牌。我有一个使用Asp.Net Core 1.0和.Net ADAL的示例,但使用ASP.NET 4.6时使用相同的身份验证流程。只需在启动时针对ms图表发出auth请求,然后获取访问令牌以对SharePoint进行身份验证。 https://github.com/edrohler/com.ericrohler
希望这有帮助。