在 SharePoint Server 中规划应用身份验证

适用于:yes-img-132013 yes-img-162016 yes-img-192019 yes-img-seSubscription Edition no-img-sopSharePoint in Microsoft 365

应用程序身份验证是指在应用程序请求访问安全的 SharePoint 资源时对外部 SharePoint 相关应用程序的标识进行验证并对应用程序和关联用户进行授权的过程。 当 SharePoint 商店应用程序或应用程序目录应用程序的外部组件(如位于 Intranet 或 Internet 中的 Web 服务器)尝试访问安全的 SharePoint 资源时,将进行应用程序身份验证。 例如,包含在 Microsoft Azure 中运行的组件的 SharePoint 相关应用程序是一个外部应用程序。 应用程序身份验证支持一组新的功能和方案,它们可通过允许应用程序在其处理并为用户显示的结果中包括 SharePoint 资源中的数据来实现。

若要提供 SharePoint 相关应用程序请求获取的资源,运行 SharePoint Server 的服务器必须执行以下操作:

  • 验证请求的应用程序是否受信任。

    若要对发出请求的应用进行身份验证,必须将运行 SharePoint Server 的服务器配置为信任正在向其发送请求的应用。 这是单向信任关系。

  • 验证应用程序所请求的访问的类型是否已获得授权。

    若要授予访问权限,SharePoint Server 必须依赖在安装应用清单文件时在其中指定的一组应用权限,以及与应用代表其操作的用户相关联的权限。 SharePoint Server 还依赖在使用 Set-SPAppPrincipalPermission PowerShell cmdlet 建立信任时向 SPAppPrincipal 授予的权限。

请注意,SharePoint Server 中的应用程序身份验证与用户身份验证分开进行,SharePoint 用户不会将它用作登录身份验证协议。 应用程序身份验证使用 Open Authorization (OAuth) 2.0 协议,不会添加到用户身份验证或登录协议(如 WS 联合身份验证)集中。 SharePoint Server 中没有新的用户身份验证协议。 应用程序身份验证和 OAuth 不会显示在标识提供程序列表中。

简介

规划应用程序身份验证包含以下任务:

  • 标识必须在运行 SharePoint Server 的场上配置的一组信任关系,这些信任关系对应于将请求获取 SharePoint 资源的外部应用。

  • 提供来自 Internet 上承载的外部应用程序的传入访问。

重要

[!重要说明] 必须将包括应用身份验证终结点(对于 SharePoint 相关应用程序发出的传入请求)的 Web 应用配置为使用安全套接字层 (SSL)。 可以在 SharePoint Server 中配置 OAuth,这样就不需要 SSL 了。 不过,建议仅出于以下目的这样做:评估、简化配置或创建应用开发环境。

注意

您仅在以下情况下必须在 SharePoint 场上规划应用程序身份验证:您使用的一个或多个 SharePoint 相关应用程序需要其资源。

标识信任关系集

您必须将 SharePoint 场配置为信任与以下类型的外部应用程序发送的资源请求对应的访问令牌:

  • 提供程序承载的应用程序,这些应用程序运行于其在 Internet 或您的 Intranet 上的服务器上,注册到 Microsoft Azure 并使用 ACS 获取访问令牌。

    对于提供程序承载的应用程序,您必须将 SharePoint 场配置为信任提供程序承载的应用程序的 ACS 实例。

  • 高度信任的应用程序,这些应用程序运行于您的 Intranet 上的独立服务器上并使用签名证书对应用程序生成的访问令牌进行数字签名。

    高度信任的应用程序使用服务器间协议代表用户请求资源。 对于高度信任的应用程序,可通过托管应用程序的服务器的 JavaScript Object Notation (JSON) 元数据终结点配置 SharePoint 场。 或者,也可以手动配置信任。 有关详细信息,请参阅Configure app authentication in SharePoint Server

    有关高信任应用程序的详细信息,请参阅如何:使用服务器间协议为 SharePoint 2013 创建高信任应用程序

为本地应用程序选择用户身份验证方法

本地应用可以是托管在本地服务器上的提供程序托管应用,也可以是 SharePoint 托管应用。 表 1 列出了 SharePoint Server 的不同用户身份验证方法以及这些方法能否用于 SharePoint Server 本地应用。

表 1. 用户身份验证方法以及本地应用程序的支持情况

身份验证方法 受 SharePoint 承载的应用程序支持 受提供程序承载的应用程序支持
NTLM


Kerberos
支持,但仅在其配置为将 NTLM 作为备用身份验证方法时。 不支持仅 Kerberos。

基本


匿名


使用默认 ASP.NET 提供程序的基于表单的身份验证


使用轻型目录访问协议 (LDAP) 的基于表单的身份验证


安全声明标记语言 (SAML) 验证
是,如果标识提供者支持通配符返回统一资源定位符 (URL) 注册并遵循 wreply 参数。 .
若要将 SharePoint Server 配置为使用 wreply 参数,请通过 Microsoft PowerShell 命令提示符运行以下命令:
$p = Get-SPTrustedIdentityTokenIssuer$p.UseWReplyParameter = $true$p.Update() > [!注意]> Active Directory 联合身份验证服务 (AD FS) 2.0 版本不支持通配符进行返回 URL 注册。

若要详细了解 SharePoint Server 中的用户身份验证方法,请参阅在 SharePoint Server 中计划用户身份验证方法

提供来自承载于 Internet 上的外部应用程序的传入访问

如果外部提供程序托管的应用程序位于 Internet 上,则您必须将反向 Web 代理配置为执行应用程序身份验证并从 Intranet SharePoint 场请求资源。 位于网络边缘的已配置的反向 Web 代理必须允许从应用程序到 SharePoint 场的传入 HTTP over SSL (HTTPS) 连接。 您通常会标识外部应用程序将访问的基于 HTTPS 的 URL,并将反向代理配置为发布这些 URL 并提供适当的安全性。

处理用户配置文件应用程序服务注意事项

高度信任应用会生成自己的访问令牌,这包括断言应用代表其操作的用户的标识。 运行 SharePoint Server 且为传入资源请求提供服务的服务器必须能够将请求解析为特定 SharePoint 用户的专属请求,此过程被称为"解除冻结用户标识"。 请注意,此过程不同于提供程序托管应用的应用身份验证,后者会标识用户,但不会断言用户。

为了解除冻结用户标识,运行 SharePoint Server 的服务器会从传入访问令牌中提取声明,并将声明解析为特定 SharePoint 用户的专属声明。 默认情况下,SharePoint Server 会将内置 User Profile Service 应用用作标识解析程序。

用户标识解除冻结的关键用户属性如下所示:

  • Windows 安全标识符 (SID)

  • Active Directory 域服务 (AD DS) 用户主体名称 (UPN)

  • 简单邮件传输协议 (SMTP) 地址

  • 会话初始协议 (SIP) 地址

因此,应用程序必须包括这些用户属性中的至少一个属性,并且该属性必须是用户配置文件中的最新属性。 建议您定期执行从标识存储到 User Profile Service 应用程序的同步。

此外,对于基于这四个属性中的一个或多个属性的给定查找查询,SharePoint Server 还要求 User Profile Service 应用只有一个条目。 否则,它会返回已找到多个用户配置文件的错误状态。 因此,应定期删除 User Profile Service 应用中的过时用户配置文件,以免存在多个用户配置文件。

如果用户具有用户配置文件并且未同步相关的组成员身份,则在应向用户授予对给定资源的访问权时,访问可能会被拒绝。 因此,请确保组成员身份已与 User Profile Service 应用程序同步。

另请参阅

概念

SharePoint Server 身份验证概述