通过 Flow/Azure 为外部用户自动访问 SharePoint Online
Automating SharePoint Online access for External Users through Flow/Azure
我是 SharePoint/Azure/PowerShell 的新手,如果我问的是一个愚蠢的问题,我深表歉意!
我们目前在我们的 O365 租户上托管了客户端 SharePoint 站点,每个站点的访问权限将很快推广到我们各自的每个客户。最初,只有每个客户的高级管理人员才能访问这些站点,但是随着时间的推移,我们很可能也会添加其他所有人;为了简化新用户流程并使我们不必添加每个员工,我们一直在考虑使用 Flow 来自动化用户访问,目标是添加经过身份验证的外部用户,而不需要管理员的太多实际输入,除了一个简单的approval/rejection 进程。
总体方案如下:
Visio 大纲<
- 每个客户站点都有一个名为 "Employee Access List" 的 SharePoint 自定义列表。所述列表将包含以下列:请求 ID(文本)、名字(文本)、姓氏(文本)、职位(文本)、公司(文本)、联系电话(文本)、电子邮件(文本)、 SharePoint Access(Yes/No 布尔值)。
- 如果员工需要访问 SharePoint 网站,则他们各自的经理会将员工添加到列表中并填写以上所有字段,将 "SharePoint Access" 项目值设置为 "Yes".
- 这将触发流程并向我自己和另一位管理员发送一封批准电子邮件,该电子邮件详细说明要创建的用户以及提交请求的人。
- 以某种方式插入脚本 - 如果请求被批准,这将 运行 并为用户设置访问权限。
- 电子邮件通知会自动发送给 SharePoint 列表项的创建者,通知他们用户现在可以访问。
在第 4 步中,如果请求获得批准,我有点不知所措 - 我在下面编写了一个小的 PowerShell 脚本,它几乎实现了我的目标,因为它创建了外部用户 PnP 组和 PnP 角色定义(如果还没有的话),拉取 "Employee Access" 列表中 "E-mail" 字段中的内容和 运行s Add-PnPUsertoGroup 拉取将用户添加到 PnP 组,然后该组向用户发送一封带有 link 的电子邮件到 SharePoint 站点,允许他们访问它。然而:
- 我编写的脚本以 SharePoint 列表中的每个人为目标,而理想情况下,我只希望脚本以新添加到批准电子邮件中列出的 list/is 中的唯一用户为目标,并且仅他们。我假设我必须将 Flow 中的信息通过管道传输到脚本中,我什至不确定这是否可能,如果是的话,我不知道如何去做。
- 我知道可以使用 Azure Functions 和 Azure Automation 将脚本插入到 Flows 中,但我没有任何经验,所以我不确定哪个更合适。是否有关于如何将 PowerShell 脚本与它们一起插入以及如何将流中的内容通过管道传输到所述脚本的指导?
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 它!
谢谢!
我是 SharePoint/Azure/PowerShell 的新手,如果我问的是一个愚蠢的问题,我深表歉意!
我们目前在我们的 O365 租户上托管了客户端 SharePoint 站点,每个站点的访问权限将很快推广到我们各自的每个客户。最初,只有每个客户的高级管理人员才能访问这些站点,但是随着时间的推移,我们很可能也会添加其他所有人;为了简化新用户流程并使我们不必添加每个员工,我们一直在考虑使用 Flow 来自动化用户访问,目标是添加经过身份验证的外部用户,而不需要管理员的太多实际输入,除了一个简单的approval/rejection 进程。
总体方案如下:
Visio 大纲<
- 每个客户站点都有一个名为 "Employee Access List" 的 SharePoint 自定义列表。所述列表将包含以下列:请求 ID(文本)、名字(文本)、姓氏(文本)、职位(文本)、公司(文本)、联系电话(文本)、电子邮件(文本)、 SharePoint Access(Yes/No 布尔值)。
- 如果员工需要访问 SharePoint 网站,则他们各自的经理会将员工添加到列表中并填写以上所有字段,将 "SharePoint Access" 项目值设置为 "Yes".
- 这将触发流程并向我自己和另一位管理员发送一封批准电子邮件,该电子邮件详细说明要创建的用户以及提交请求的人。
- 以某种方式插入脚本 - 如果请求被批准,这将 运行 并为用户设置访问权限。
- 电子邮件通知会自动发送给 SharePoint 列表项的创建者,通知他们用户现在可以访问。
在第 4 步中,如果请求获得批准,我有点不知所措 - 我在下面编写了一个小的 PowerShell 脚本,它几乎实现了我的目标,因为它创建了外部用户 PnP 组和 PnP 角色定义(如果还没有的话),拉取 "Employee Access" 列表中 "E-mail" 字段中的内容和 运行s Add-PnPUsertoGroup 拉取将用户添加到 PnP 组,然后该组向用户发送一封带有 link 的电子邮件到 SharePoint 站点,允许他们访问它。然而:
- 我编写的脚本以 SharePoint 列表中的每个人为目标,而理想情况下,我只希望脚本以新添加到批准电子邮件中列出的 list/is 中的唯一用户为目标,并且仅他们。我假设我必须将 Flow 中的信息通过管道传输到脚本中,我什至不确定这是否可能,如果是的话,我不知道如何去做。
- 我知道可以使用 Azure Functions 和 Azure Automation 将脚本插入到 Flows 中,但我没有任何经验,所以我不确定哪个更合适。是否有关于如何将 PowerShell 脚本与它们一起插入以及如何将流中的内容通过管道传输到所述脚本的指导?
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 它!
谢谢!