REST API 管理 Sharepoint 上的用户

REST API to manage users on Sharepoint

作为 , I would like to understand how the Sharepoint Server User API differs from MS Graph API for Users 的后续问题。 Graph 文档表明我们可以像管理 Office 365 用户一样使用它来管理 Sharepoint 用户。但是,有独立的 Sharepoint 安装(如 2007、2010 等版本)不属于 Office 365 计划。

上面链接的 Graph API 文档说用户资源代表一个 "Azure AD user account"。但是,Sharepoint 用户文档说它代表 "user in Microsoft SharePoint Foundation." 这些用户彼此完全不同吗?

我们要做的就是为我们的客户管理用户,其中一些客户订阅了 Office 365,一些客户只使用独立的 Sharepoint 设置。我们不关心应用程序特定的功能,例如访问共享点文件、站点甚至管理 Word 文档、Excel 工作表等,那么,在这种情况下,Graph API 是否也支持管理用户?

API 仅适用于 SharePoint 2013+

您问题中链接的用户管理 REST API 专门针对 SharePoint 2013,并且大概也适用于 SharePoint 2016。这与 SharePoint 环境是在本地还是在云中无关。

Office 365 目前在特性和功能方面是 SharePoint 2013/2016 的一个子集。

请注意,SharePoint 2007 和 2010 将没有此 API。

SharePoint 用户和 Azure AD 帐户不是同义词

考虑到 SharePoint 和 AD 可以彼此独立存在。

SharePoint 不需要 使用 Azure Active Directory 进行身份验证。它可以使用传统的 on-premises 或 cloud-hosted Active Directory,或者理论上(从 2010 版开始)可以使用除 Active Directory 之外的任何 claims-based 身份验证提供程序。

SharePoint 2007 和 2010 还可以支持基于简单表单的身份验证以及自定义身份验证提供程序,但如前所述,这两个版本的 SharePoint 都没有公开有问题的 REST API。

AD = 身份验证; SharePoint 用户 = 授权

Azure AD 是声明提供程序。声明提供程序用于身份验证;当您登录到 SharePoint 时,SharePoint 依靠 Active Directory 来确定您是您所说的那个人。用户的 SharePoint 帐户用于授权; SharePoint 帐户被授予逐个站点访问 SharePoint 中内容的权限。

AD 中的信息与 SharePoint 中的信息

使用Azure AD进行身份验证时,SharePoint中的数据和AD中的数据通常会有一些重叠区域。

SharePoint 的用户配置文件服务通常设置为将数据从 Active Directory 同步到 SharePoint,以便 AD 充当用户显示名称和标题等内容的主数据集。但是,并非所有信息都必须从 AD 同步到 SharePoint,并且可以将附加信息附加到 SharePoint 用户配置文件。

AD 中的组成员资格与 SharePoint 中的组成员资格

在 Azure AD 中,一个用户可以是多个组的成员。组可以包括 Active Directory 组(可以嵌套)和 Office 365 (SharePoint) 组(不能嵌套)。

SharePoint 用户只能是 SharePoint 组的成员,因为 SharePoint 不跟踪 Active Directory 组的成员身份。也就是说,由于 Active Directory 组已被授予访问权限,用户可能可以间接访问 SharePoint 中的内容。

AD 用户范围与 SharePoint 用户范围

除非您直接使用用户配置文件服务,否则当您以编程方式使用 SharePoint 用户时,需要从 SharePoint 中的特定站点检索他们。这是因为每个站点 collection 都有自己的一组组,这些组不能在 SharePoint 场内的其他站点 collection 上使用,因此仅在 site-by-site 基础上跟踪组成员身份。

请注意,这意味着用户的查找 ID 号(不同于他们的登录名)可能因站点 collection 而异。这也意味着用户 collection 的组将根据检索用户 object 的站点而有所不同。

Azure AD 用户没有这样的孤岛。