OneDrive 和 SharePoint 数据连接器身份验证介绍
OneDrive 和 SharePoint 数据连接器插件现已支持 JMP 19 EA6 及更高版本。本篇博文旨在为您提供更多关于如何连接到 Microsoft 帐户并使用这些新数据连接器访问数据的信息。
如果您尚未安装,请访问JMP 应用市场查找插件或点击此处下载。安装说明和简要概述可在 JMP Marketplace 列表中找到。安装插件后,请访问此页面获取连接信息。
在本指南中,我将向您展示:
OneDrive 和 SharePoint 数据连接器依赖于称为OAuth2 的身份验证和授权协议,该协议允许您使用 Microsoft 帐户进行身份验证和访问数据。
连接到数据后,您可以像使用其他数据连接器一样导入和查询数据。之后,您就可以使用 JMP 提供的所有数据处理功能。
授权选项
数据连接器的身份验证有两种选项:
- JMP托管授权服务器
- 自定义授权服务器
有关连接这些选项的更多详细信息,请参阅下文。
这些选项取决于租户 ID 和客户端 ID 参数的包含。
willmorgan_0-1740585689093.pngwillmorgan_0-1740585689093.png
选项 1:JMP 托管授权服务器
如果您未在连接器编辑器中添加租户 ID 和客户端 ID,则会自动使用此选项。连接时,JMP 会打开默认浏览器并提示您登录所需的 Microsoft 帐户。然后,系统会要求您授予 SharePoint 数据连接器应用程序的访问权限。
如果您无权访问 Azure(例如使用个人 Microsoft 帐户时),则此选项将是您唯一可用的选项。如果您遇到权限问题,请联系您的 IT 部门以授予应用访问权限。
选项 2:授权服务器配置
注意:您需要拥有 Microsoft Azure 的访问权限(拥有创建应用程序的权限)才能创建您自己的 Azure 授权应用。如果您无权访问 Azure,请联系您的 IT 部门为您创建应用或授予访问权限。此流程每个公司(租户)只需完成一次,因此如果您工作场所的其他人已经完成此流程,您可以从现有应用程序中获取必要的凭据。
如果您尝试使用选项 1,但发现难以获取所需的访问权限,则可以设置自己的 Azure 应用程序来授予对连接器的访问权限。此选项确实包含一些有关 OAuth2 标准的技术细节,因此我建议您在继续之前在此处阅读更多相关信息。
有关 Azure 应用程序注册的更多详细信息,请查看此处的 Microsoft 文档。
阅读完这些材料后,请确保您理解它们,然后再继续。
现在您已经熟悉了 OAuth2 和 Microsoft Azure 应用程序注册流程,以下是让您连接到 OneDrive 或 SharePoint 数据的重要步骤。
注册应用后,请为应用程序添加重定向 URI,以确保连接器正常工作。您需要将 URI“ http://本地主机 ”添加到“移动和桌面应用程序”下的列表中。有关更多信息,请参阅 Microsoft 文档的“配置平台设置”部分。
接下来,向您的应用添加更多 API 权限。为此,请在应用门户中转到“管理”>“API 权限” 。单击“添加权限” ,然后搜索并添加以下 API 权限:
- 文件.读写
- 站点.阅读.全部
- 站点.选定
- 用户.读取
通过这样做,它添加了必要的 API 权限,以便您的应用程序可以授予对您的 OneDrive 和 SharePoint 文件的访问权限。
测试连接
要确保连接正确,请选择数据连接器编辑器中的“测试”按钮。打开浏览器并提示输入 Microsoft 帐户凭据后,它会对 OneDrive 或 SharePoint 运行基本的 API 调用,以确保连接正常。
故障排除提示
Microsoft 联盟的访问要求可能非常严格,因此如果您使用选项 1,则可能无法通过连接器访问您的帐户。由于授权服务器由 JMP 托管,外部租户需要获得其 IT 部门的明确许可才能访问该应用程序。如果是这种情况,请向您的 IT 部门申请访问权限,或者继续使用选项 2 创建您自己的授权服务器。
关于浏览器登录交互的注意事项:设置了 150 秒的超时时间,这样即使浏览器在身份验证序列完成之前关闭,JMP 也不会永远挂起。如果您不小心关闭了浏览器,您可以等待 150 秒直至超时结束,或者关闭并重新打开 JMP 尝试再次连接。
这篇博文旨在帮助您了解和排除 OneDrive 和 SharePoint 数据连接器身份验证过程的故障。
数据访问回复:OneDrive 和 SharePoint 数据连接器身份验证哇!我等这个等了好久了!
回复:OneDrive 和 SharePoint 数据连接器身份验证你好,
我尝试了选项 2,但是如果 Sites.Read.All 存在,那么 Sites.Selected 就无法限制对其他站点的访问。
我已经创建了应用,并按照文章中的说明添加了权限。我还使用 PowerShell 限制了应用的访问权限。OneDrive 和其他 URL 似乎都可以访问。
如果我从权限中移除 Sites.Read.All,系统会提示我进行同意。
有没有办法移除 Sitese.Read.All 而不涉及用户许可?
回复:OneDrive 和 SharePoint 数据连接器身份验证@computerhabit感谢您的评论!如果您希望限制 SharePoint 数据连接器的访问级别,则应仅使用 Sites.Selected API 权限。目前无法单独绕过 Sites.Selected 权限的授权,因为它需要管理员同意并批准所选网站集。我添加了 Sites.Read.All 权限,以便连接器可以访问用户有权访问的所有网站。您可以点击此处了解更多关于 SharePoint 网站 API 权限的信息。希望对您有所帮助。
最好的,
将要
回复:OneDrive 和 SharePoint 数据连接器身份验证你好,威尔,
感谢您的回复。
通常情况下,我在开发这类应用时会使用应用密钥或证书进行身份验证。以上细节并未提及。
输入租户 ID 和应用程序 ID 并连接后,总会弹出管理员授权请求。为了好玩,我批准了它,看看会发生什么。它添加了 Sites.Read.All 权限以及其他一些高亮显示的权限。
computerhabit_0-1761918181174.pngcomputerhabit_0-1761918181174.png
可能是我在创建应用的过程中理解错了某个步骤。您能指点一下吗?我非常希望使用方案二来限制这个应用的使用。
此致
回复:OneDrive 和 SharePoint 数据连接器身份验证@computerhabit你的问题很可能是你的应用请求的是“应用”级别的 API 权限,而你应该请求的是“委托”级别的 API 权限。尝试将 Sites.Selected 改为“委托”,然后重试。只要 API 权限是“委托”级别的并且已经获得批准,那就没问题了。请告诉我是否有效,以便我能进一步提供帮助。
最好的,
将要
回复:OneDrive 和 SharePoint 数据连接器身份验证你好,
我尝试了以下设置,但它仍然要求管理员同意。
computerhabit_0-1761924504575.pngcomputerhabit_0-1761924504575.png
此致
回复:OneDrive 和 SharePoint 数据连接器身份验证@computerhabit您很可能需要为您的应用添加权限,以便访问您想要访问的网站集。请参考这篇文章了解如何在 PowerShell 中添加这些权限。请告诉我这是否有帮助。
最好的,
将要
回复:OneDrive 和 SharePoint 数据连接器身份验证你好,威尔,
感谢您一直以来的支持。以下是向网站提交申请的示例。
computerhabit_0-1761927202345.pngcomputerhabit_0-1761927202345.png
我只授予了它读取权限,但这似乎很合适。正如您在下方看到的,权限是存在的。
computerhabit_1-1761927345833.pngcomputerhabit_1-1761927345833.png
此致
回复:OneDrive 和 SharePoint 数据连接器身份验证@computerhabit谢谢您提供的信息。当您尝试使用数据连接器连接到该网站时,登录页面是否会要求您同意?如果是,能否提供一下该页面的截图?谢谢。
回复:OneDrive 和 SharePoint 数据连接器身份验证我建议举办一个关于如何建立这种连接的小型研讨会。或者,或许可以安排几次一对一的Zoom会议,指导我们小组成员完成这项工作?我在一家国防公司工作,数据限制非常严格,而且很多时候弹出窗口和警告信息都是我独有的。我非常希望能够参与到这个工作组中来,因为我的大量元数据都来自存储在SharePoint上的Excel表格和其他表格。
回复:OneDrive 和 SharePoint 数据连接器身份验证举办一个关于如何使用 SharePoint 连接器入门的研讨会或演示是个好主意。我很想尝试一下这项新功能。
回复:OneDrive 和 SharePoint 数据连接器身份验证嗨@chris_dennis ,好主意! @Jordan_Hiller和@Jed_Campbell也这么想,并计划在本次网络研讨会上讲解。如有需要,我们会考虑增加研讨会时长。https
/community.jmp.com/t5/Learn-JMP-Events/Accessing-Querying-and-Importing-Data-from-Databases/ec-p/919219
回复:OneDrive 和 SharePoint 数据连接器身份验证4月10日——越早越好!
回复:OneDrive 和 SharePoint 数据连接器身份验证您好@willmorgan ,感谢您的博文和应用。我已经和我的 IT 部门讨论过使用该应用以及授予权限的事宜,但他们有些犹豫,因为该应用需要访问用户文件,读取并维护对所有网站集中项目的访问权限……
就数据安全而言,您知道使用该应用程序的安全性如何吗?是否有其他文档/链接可以发送给我的IT部门,让他们了解任何风险(如果有的话)或连接的安全性?或者,是否有办法将访问权限限制在特定SharePoint中的特定文件夹?
再次感谢!
回复:OneDrive 和 SharePoint 数据连接器身份验证您好@Thibarely ,感谢您的评论!我很乐意进一步解释 SharePoint 数据连接器的安全性。JMP 中驱动数据连接器的 Python 代码完全运行在您本地的系统上,因此 JMP 无法访问您公司的 SharePoint 数据。
我们托管的授权应用程序仅提供您使用 Microsoft 帐户登录的机制。它会在您自己的租户(而非 JMP 的租户)中验证您的身份(身份验证),并授予您访问所需 API 权限(授权)。然后,该令牌将在您的本地计算机上用于向贵公司的 SharePoint 服务器发出请求,从而提供对 SharePoint 站点、OneDrive 等的访问权限。您只能访问您的 Microsoft 帐户已拥有访问权限的数据。
至于限制对特定文件夹的访问,连接器将有权访问您拥有的任何数据,因此目前无法禁止连接器访问您有权访问的数据。如果您需要,可以使用文件夹参数来阻止连接器读取整个 SharePoint 库。
请参见下图了解 OAuth2:
willmorgan_0-1788196856428.png
在这种情况下,JMP 的授权应用程序就是 OAuth 服务器。正如您所见,它不会向资源服务器(即您的 SharePoint 站点)发出任何请求或尝试访问该资源服务器。
您也可以查看此页面了解更多信息。希望这能帮到您,如有任何其他疑问,请随时联系。
此致,威尔。