如何在SharePoint Online中使用ADAL调用MicrosoftGraph API
关键词SharePoint Online, ADAL, 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。
1.2.填写Name, Application type选择Web app / API,Sign-on URL填写任意的URL(如https://localhost),点击Create按钮。
1.3.授予Application相应的 Microsoft Graph API权限。
点击创建好的APP,依次点击Settings > Required
permissions > Add > Select an API > Microsoft Graph,点击Select 按钮。
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中查询)
1.5点击Grant permissions按钮,权限添加完成。
1.6设置“Reply URL”
由于本例子是在SharePoint中访问application,所以只需要在“Reply URL”中添加SharePoint的host name。点击application中的settings,Reply URLs,添加SharePoint的host name,并在URL最后面加上“*”,点击Save按钮保存。
1.7开启OAuth2.0的隐流功能
点击Application 中的“Manifest”,找到“oauth2AllowImplicitFlow” 属性,将值设成 “true”. 然后点击 “Save”按钮。只有开启该功能,ADAL JS才能取到tokens。
2.在SharePoint中,用Javascript引用ADAL,调用Graph API。
2.1在SharePoint中添加Script Editor webpart,在webpart中添加以下JS:
2.2引用ADAL和jquery
2.3初始化ADAL的配置
在JS的config中,clientId填入第一步中创建的Application的“Application ID”,tenant填入
Azure Active Directory的Properties中的Directory ID。
2.4刷新页面,JS通过ADAL获取到token,进行ajax请求调用Graph API,即可在console控制台中看到获取到的当前登录用户的信息。
引用
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
网友评论