通过 Flow/Azure 为外部用户自动访问 SharePoint Online

Automating SharePoint Online access for External Users through Flow/Azure

我是 SharePoint/Azure/PowerShell 的新手,如果我问的是一个愚蠢的问题,我深表歉意!

我们目前在我们的 O365 租户上托管了客户端 SharePoint 站点,每个站点的访问权限将很快推广到我们各自的每个客户。最初,只有每个客户的高级管理人员才能访问这些站点,但是随着时间的推移,我们很可能也会添加其他所有人;为了简化新用户流程并使我们不必添加每个员工,我们一直在考虑使用 Flow 来自动化用户访问,目标是添加经过身份验证的外部用户,而不需要管理员的太多实际输入,除了一个简单的approval/rejection 进程。

总体方案如下:

Visio 大纲<

  1. 每个客户站点都有一个名为 "Employee Access List" 的 SharePoint 自定义列表。所述列表将包含以下列:请求 ID(文本)、名字(文本)、姓氏(文本)、职位(文本)、公司(文本)、联系电话(文本)、电子邮件(文本)、 SharePoint Access(Yes/No 布尔值)。
  2. 如果员工需要访问 SharePoint 网站,则他们各自的经理会将员工添加到列表中并填写以上所有字段,将 "SharePoint Access" 项目值设置为 "Yes".
  3. 这将触发流程并向我自己和另一位管理员发送一封批准电子邮件,该电子邮件详细说明要创建的用户以及提交请求的人。
  4. 以某种方式插入脚本 - 如果请求被批准,这将 运行 并为用户设置访问权限。
  5. 电子邮件通知会自动发送给 SharePoint 列表项的创建者,通知他们用户现在可以访问。

在第 4 步中,如果请求获得批准,我有点不知所措 - 我在下面编写了一个小的 PowerShell 脚本,它几乎实现了我的目标,因为它创建了外部用户 PnP 组和 PnP 角色定义(如果还没有的话),拉取 "Employee Access" 列表中 "E-mail" 字段中的内容和 运行s Add-PnPUsertoGroup 拉取将用户添加到 PnP 组,然后该组向用户发送一封带有 link 的电子邮件到 SharePoint 站点,允许他们访问它。然而:

PowerShell脚本如下:

希望这一切都有意义 - 任何指导将不胜感激。

谢谢!

编辑: 作为一些额外的信息,这里是当前的流程:

Flow Part 1

Flow Part 2

Flow Part 3

已经找到上述问题的答案 - 虽然 Azure Functions/Automation 是一个选项,但您不一定需要它们或来自 Flow 的 PowerShell 脚本 运行ning,在这种情况下是我的目标场景是使用 MS Graph 邀请 API、应用程序权限和 HTTP SharePoint 调用来实现的。

见附件截图:

Flow Answer 1

Flow Answer 2

Flow Answer 3

第 1 步:设置具有调用 MS Graph 权限的应用程序 - 使用本指南获取有关如何执行此操作的帮助 - http://blogopaxio.azurewebsites.net/accessing-graph-api-from-microsoft-flow-using-application-permissions-2/

第 2 步:将 HTTP 添加到 MS Graph 并设置参数,如屏幕截图 1 post - 此操作将创建来宾用户和邀请 URL 用户需要登录到地点。

第 3 步:此时,运行 流,以便我们可以从 HTTP 步骤的输出正文中获取 'inviteRedeemURL' - 您将需要这个特定的 URL 在您的电子邮件中单独发送给最终用户。

第 4 步:暂停 1 或 2 分钟,以确保来自先前操作的信息 'sticks' - 如果一切正常,在这一点上,用户实际上将拥有他们的客人帐户已创建,您将能够在 O365 管理中心的“用户”下看到他们,但是他们还不知道他们的帐户访问权限(我们会在最后的电子邮件中通知他们)。

第 5 步:使用 "Send HTTP Request to SharePoint" 操作将用户添加到 SharePoint 安全组。请注意,此操作的 URI 中的 "sitegroups(19)" 指的是您将它们放入的 PnP 组的 ID 号,因此在我的示例中,组 ID 为 19。如果您不确定您的组,使用 PnP 命令通过 PowerShell 连接到您的 SharePoint 站点,然后 运行 Get-PnPGroup.

第 6 步:使用 Outlook 发送电子邮件操作将电子邮件发送给受邀用户 - 仅供参考 - 我的屏幕截图中的 "SharePoint Site" 变量实际上是 "inviteRedeemURL".

希望这对不确定如何执行此操作的其他人有所帮助。如果有人有更好的解决方案可以实现这一点 post 它!

谢谢!