如何将SharePoint访问令牌从逻辑应用程序传递到HTTP端点



我有一个逻辑应用程序,它每15分钟触发一次我的HTTP端点。然后端点使用Rest API连接到SharePoint,并从特定列表中获取数据,然后将其添加到我的数据库中。

但要从SharePoint获取数据,我需要访问令牌。我需要编写逻辑来在端点本身中获取访问令牌吗?或者在触发我的端点时,有什么可以从我的逻辑应用程序传递访问令牌的吗?

作为第一个答案。是的,使用SharePoint Online REST API实现在HTTP端点中获取访问令牌的逻辑。通过这样的引导件可以是1、2、3、4。我认为不存在任何将访问令牌从Azure逻辑应用程序传递到您的端点的方法。

作为第二个答案,我可以建议使用SharePoint CSOM对象模型。若要使用它,只需在HTTP端点所在的计算机上安装SharePoint Online客户端组件SDK,并添加Microsoft.SharePoint.Client.dll Microsoft.SharePoint.clientRuntime.dll库作为引用。存在良好的SharepointOnlineCredentials类来为请求提供凭据。

或者通过其他方式—您可以重新构建解决方案:

  1. 如果我理解正确,Azure逻辑应用程序必须要求您通过开箱即用的功能设置与SharePoint的连接。请参阅本文。我认为您可以通过Azure Logic应用程序中的操作从SharePoint获取列表项,并将数据传递到您的HTTP端点,而无需任何额外的访问令牌请求作为方法参数
  2. 如果您可以从SharePoint访问HTTP Endpoint,则可以直接将数据从SharePoint发送到端点,而不是从Azure逻辑应用程序发送。您可以从列表项表单页面、网站工作流或一些Flow模板中执行此操作
  3. 如果您无法从SharePoint访问HTTP Endpoint,那么您可以创建Azure托管的web服务,并通过任何方式从SharePoint调用其方法。此web服务将把数据作为方法参数传递给HTTP端点,而不需要任何额外的身份验证。Web服务调用将从SharePoint工作流中的列表项表单保存的JavaScript中完成。可能在此处获取对此Azure web服务的访问令牌将比从您的HTTP端点到SP更容易
  4. 您正在使用Azure SQL数据库吗?如果是,则通过Business Connectivity Services BCS在SharePoint Online和Azure SQL数据库之间创建连接。喜欢这里或这里或这里。这允许用户通过开箱即用的功能在SharePoint列表中内联获取、创建和更新数据库中的项目
  5. 创建定期运行的代码(控制台应用程序、PowerShell脚本、Windows服务(。将其安排在您公司的某个服务器上。该代码将使用CSOM SharePoint对象模型,并通过SharepointOnlineCredentials类更容易地连接到SharePoint,获取数据并直接连接到您的HTTP端点或数据库
  6. 如果您的数据库是位于内部部署的MS SQL Server,则可以使用本指南在SharePoint Online和内部部署SQL Server之间创建Business Connectivity Services内容类型

你可以采取一些奢侈的方式:=(

  1. SharePoint通过某些方式可以将包含列表项中数据的电子邮件发送到某些收件箱,您的HTTP端点可以获取这些电子邮件、解析数据并执行以下步骤
  2. 您可以在某些公司的本地MS Sql Server上创建Sql Server Integration Service(SSIS(包,该包将定期将数据从SharePoint直接发送到数据库或直接发送到HTTP端点
  3. 其他方式

"但是要从SharePoint获取数据,我需要访问令牌。我需要编写逻辑来在端点本身中获取访问令牌吗?">

正确,您确实需要一个承载访问令牌。您在哪里托管HTTP端点的代码?如果你可以将其作为Function或web API放在Azure中,那么你可以实现app-only权限,这将为你提供必要的访问令牌。

有两种选择:

  1. 仅通过Azure AD应用程序授予访问权限
  2. 仅使用SharePoint应用程序授予访问权限

第一个需要更多的参与,因为它需要客户端机密和自签名安全证书,但它将允许您访问任何O365 API。第二个更简单,只需要应用程序/客户端ID和机密,但只允许访问SharePoint Rest API。

上面链接的MSDN文档使用PowerShell脚本来生成安全证书,但我更喜欢Bob German关于手动创建/导出证书的说明。在他的教程中,他还包括为您的Azure功能注册Azure AD应用程序的说明。

相关内容

  • 没有找到相关文章

最新更新