如何在SharePoint Online中使用ADAL调用Microsoft Graph API

如何在SharePoint Online中使用ADAL调用Microsoft Graph API

摘要:
在 SharePoint Online 中, SPFx可以通过引用“MSGraphClient”模块轻松调用Graph API,获取到需要的Microsoft Office365中的信息。由于项目现有框架与SPFx不兼容,本文介绍的是如何在普通的SharePoint webpart中,通过 Azure Active Directory Authentication Library (ADAL)进行身份验证,获取token来进行安全的Graph API调用,获取到最基本的当前登录用户信息。

文章正文:
1.新建 Azure AD Application Registration,通过Azure Application,我们可以在SharePoint中进行身份验证,调用Graph API。
1.1登录https://portal.azure.com,点击Azure Active Directory > App registrations > New application registration。

如何在SharePoint Online中使用ADAL调用Microsoft Graph API_第1张图片

1.2.填写Name, Application type选择Web app / API,Sign-on URL填写任意的URL(如https://localhost),点击Create按钮。
如何在SharePoint Online中使用ADAL调用Microsoft Graph API_第2张图片

1.3.授予Application相应的 Microsoft Graph API权限。
点击创建好的APP,依次点击Settings > Required permissions > Add > Select an API > Microsoft Graph,点击Select 按钮。

如何在SharePoint Online中使用ADAL调用Microsoft Graph API_第3张图片
如何在SharePoint Online中使用ADAL调用Microsoft Graph API_第4张图片

1.4勾选Delegated Permissions 中的Read and write access to user profile权限,点击Select按钮和Done按钮。(本文调用的API是查询当前登录用户的信息,只需要Read and write access to user profile权限。调用其他Graph API需要的权限可以在https://docs.microsoft.com/en-us/graph/api/resources/users?view=graph-rest-1.0 中查询)

如何在SharePoint Online中使用ADAL调用Microsoft Graph API_第5张图片

1.5点击Grant permissions按钮,权限添加完成。

如何在SharePoint Online中使用ADAL调用Microsoft Graph API_第6张图片
1.6设置“Reply URL”
由于本例子是在SharePoint中访问application,所以只需要在“Reply URL”中添加SharePoint的host name。点击application中的settings,Reply URLs,添加SharePoint的host name,并在URL最后面加上“*”,点击Save按钮保存。
如何在SharePoint Online中使用ADAL调用Microsoft Graph API_第7张图片

1.7开启OAuth2.0的隐流功能
点击Application 中的“Manifest”,找到“oauth2AllowImplicitFlow” 属性,将值设成 “true”. 然后点击 “Save”按钮。只有开启该功能,ADAL JS才能取到tokens。
如何在SharePoint Online中使用ADAL调用Microsoft Graph API_第8张图片
如何在SharePoint Online中使用ADAL调用Microsoft Graph API_第9张图片

2.在SharePoint中,用Javascript引用ADAL,调用Graph API。
2.1在SharePoint中添加Script Editor webpart,在webpart中添加以下JS:
如何在SharePoint Online中使用ADAL调用Microsoft Graph API_第10张图片
如何在SharePoint Online中使用ADAL调用Microsoft Graph API_第11张图片

2.2引用ADAL和jquery

2.3初始化ADAL的配置
在JS的config中,clientId填入第一步中创建的Application的“Application ID”, tenant填入
Azure Active Directory的Properties中的Directory ID。
如何在SharePoint Online中使用ADAL调用Microsoft Graph API_第12张图片

2.4刷新页面,JS通过ADAL获取到token,进行ajax请求调用Graph API,即可在console控制台中看到获取到的当前登录用户的信息。
如何在SharePoint Online中使用ADAL调用Microsoft Graph API_第13张图片

引用
https://docs.microsoft.com/en-us/azure/active-directory/develop/quickstart-v1-add-azure-ad-app
https://developer.microsoft.com/en-us/graph/graph-explorer#
https://docs.microsoft.com/en-us/azure/active-directory/develop/reference-app-manifest
https://github.com/AzureAD/azure-activedirectory-library-for-js

你可能感兴趣的:(sharepoint)