可以为通过受集成 Windows 身份验证保护的应用程序代理发布的本地应用程序提供单一登录。 这些应用程序需要 Kerberos 票证进行访问。 应用程序代理使用 Kerberos 约束委派(KCD)来支持这些应用程序。
若要详细了解单一登录(SSO),请参阅什么是单一登录?
可以通过向 Active Directory 中的专用网络连接器授予模拟用户的权限,允许使用集成 Windows 身份验证(IWA)对应用程序启用单一登录。 连接器使用此权限代表自身发送和接收令牌。
KCD 的单一登录的工作原理
此图说明了当用户尝试访问使用 IWA 的本地应用程序时流。
- 用户输入 URL 以通过应用程序代理访问本地应用程序。
- 应用程序代理将请求重定向到 Microsoft Entra 身份验证服务以预身份验证。 此时,Microsoft Entra ID 应用任何适用的身份验证和授权策略,例如多重身份验证。 如果验证用户,Microsoft Entra ID 会创建令牌并将其发送给用户。
- 用户将令牌传递给应用程序代理。
- 应用程序代理验证令牌并从中检索用户主体名称(UPN),然后连接器通过双重身份验证的安全通道拉取 UPN 和服务主体名称(SPN)。
- 连接器与本地 AD 进行 Kerberos 约束委派(KCD)协商,代表用户模拟身份以获取应用程序的 Kerberos 令牌。
- Active Directory 将应用程序的 Kerberos 令牌发送到连接器。
- 连接器使用从 AD 收到的 Kerberos 令牌将原始请求发送到应用程序服务器。
- 应用程序将响应发送到连接器,然后返回到应用程序代理服务,最后向用户发送响应。
先决条件
在开始使用 IWA 应用程序的单一登录之前,请确保环境已准备好使用以下设置和配置:
- 你的应用(如 SharePoint Web 应用)设置为使用集成的 Windows 身份验证。 有关详细信息,请参阅 “启用对 Kerberos 身份验证的支持”,或“ SharePoint”请参阅 SharePoint 2013 中的 Kerberos 身份验证计划。
- 所有应用都有 服务主体名称。
- 运行连接器的服务器和运行应用的服务器已加入域,属于同一域或信任域。 有关域加入的详细信息,请参阅 “将计算机加入域”。
- 确保连接器服务器可以读取用户的
TokenGroupsGlobalAndUniversal属性。 安全强化可能会限制此访问。 通过将连接器服务器添加到 Windows 授权访问 组来启用它们。
配置 Active Directory
Active Directory 配置会有所不同,具体取决于专用网络连接器和应用程序服务器是否位于同一域中。
同一域中的连接器和应用程序服务器
在 Active Directory 中,转到 “工具>用户和计算机”。
选择运行连接器的服务器。
右键单击并选择 “属性>委派”。
选择“仅信任此计算机来委派指定的服务”。
选中“使用任意身份验证协议”。
在此 帐户可以向其提供委派凭据的服务 下,为应用程序服务器的 SPN 标识添加值。 此设置使专用网络连接器能够针对列表中定义的应用程序模拟 AD 中的用户。
不同域中的连接器和应用程序服务器
有关跨域使用 KCD 的先决条件列表,请参阅 跨域的 Kerberos 约束委派。
若要从应用程序代理(连接器)启用 Kerberos 身份验证委派,请使用
PrincipalsAllowedToDelegateToWeb 应用程序服务帐户的属性(webserviceaccount)。 应用程序服务器在运行下webserviceaccount,委托服务器为connectorcomputeraccount。 在与webserviceaccount在同一域中的域控制器(Windows Server 2012 R2 或更高版本)上运行以下命令。 将非 UPN 的平名用于这两个帐户。webserviceaccount如果为计算机帐户,请使用以下命令:$connector= Get-ADComputer -Identity connectorcomputeraccount -server dc.connectordomain.com Set-ADComputer -Identity webserviceaccount -PrincipalsAllowedToDelegateToAccount $connector Get-ADComputer webserviceaccount -Properties PrincipalsAllowedToDelegateToAccountwebserviceaccount如果为用户帐户,请使用以下命令:$connector= Get-ADComputer -Identity connectorcomputeraccount -server dc.connectordomain.com Set-ADUser -Identity webserviceaccount -PrincipalsAllowedToDelegateToAccount $connector Get-ADUser webserviceaccount -Properties PrincipalsAllowedToDelegateToAccount
配置单一登录
根据 使用应用程序代理发布应用程序中所述的说明发布应用程序。 请确保选择 Microsoft Entra ID 作为 预身份验证方法。
应用程序显示在企业应用程序列表中后,选择它并选择 “单一登录”。
将单一登录模式设置为 集成 Windows 身份验证。
输入应用程序服务器的 内部应用程序SPN 。 在此示例中,已发布应用程序的 SPN 为
http/www.contoso.com. SPN 需要位于连接器可以向其提供委派凭据的服务列表中。针对你要代表你的用户使用的连接器选择“委派的登录标识”。 有关详细信息,请参阅使用不同的本地标识和云标识。
非 Windows 应用的 SSO
Microsoft Entra 应用程序代理中的 Kerberos 委派流在 Microsoft Entra 对云中的用户进行身份验证时启动。 请求到达本地后,Microsoft Entra 专用网络连接器通过与本地 Active Directory 交互代表用户颁发 Kerberos 票证。 此过程称为 Kerberos 约束委派(KCD)。
在下一阶段,使用此 Kerberos 票证将请求发送到后端应用程序。
有多种机制定义如何在此类请求中发送 Kerberos 票证。 大多数非 Windows 服务器都希望以 SPNEGO 令牌的形式接收它。 Microsoft Entra 应用程序代理支持该机制,但默认处于禁用状态。 可以为 SPNEGO 或标准 Kerberos 令牌配置连接器,但不能同时配置连接器。
如果为 SPNEGO 配置连接器计算机,请确保该连接器组中的所有其他连接器也配置了 SPNEGO。 需要标准 Kerberos 令牌的应用程序应通过未为 SPNEGO 配置的其他连接器进行路由。 某些 Web 应用程序接受这两种格式,而无需在配置中进行任何更改。
若要启用 SPNEGO,请执行以下作:
打开以管理员身份运行的命令提示符。
在需要 SPNEGO 的连接器服务器上运行以下命令。
REG ADD "HKLM\SOFTWARE\Microsoft\Microsoft Entra private network connector" /v UseSpnegoAuthentication /t REG_DWORD /d 1 net stop WAPCSvc & net start WAPCSvc
非 Windows 应用通常是用户用户名或 SAM 帐户名称,而不是域电子邮件地址。 如果这种情况适用于应用程序,则需要配置委托的登录标识字段,将云标识连接到应用程序标识。
使用不同的本地和云标识
应用程序代理假定用户在云和本地具有相同的标识。 但是,由于公司策略或应用程序要求,某些组织需要使用备用 ID 进行登录。 仍可以通过为每个应用程序配置 委派登录标识 来启用 KCD 进行单一登录。 此设置指定要用于单一登录的标识。
此功能允许组织启用从云到本地应用的 SSO,而无需用户管理不同的用户名和密码。 常见方案包括:
- 将多个内部域(例如,joe@us.contoso.com、joe@eu.contoso.com)与单个云域(例如,joe@contoso.com)一起使用。
- 具有不可路由的内部域名(例如 joe@contoso.usa),同时在云中使用有效域名。
- 在没有内部域名(例如 joe)的情况下运行。
- 为本地和云中的用户分配不同的别名(例如, joe-johns@contoso.com 与) joej@contoso.com。
使用应用代理时,您可以选择用于获取 Kerberos 票证的身份。 此设置按应用程序配置,并支持需要无邮件格式或替代登录方法的系统。
如果使用委托的登录标识,则该值在组织中所有域或目录林中可能不是唯一的。 可以通过使用两个不同的连接器组两次发布这些应用程序来避免此问题。 由于每个应用程序具有不同的用户受众,因此你可以将其连接器加入其他域。
如果 本地 SAM 帐户名称 用于登录标识,则必须将托管连接器的计算机添加到用户帐户所在的域中。
为不同的身份配置 SSO
配置Microsoft Entra Connect 设置,以便主标识是电子邮件地址(邮件)。 通过在同步设置中更改 “用户主体名称” 字段,在自定义过程中完成配置。 这些设置还确定用户如何登录到 Microsoft 365、Windows 计算机和其他使用 Microsoft Entra ID 作为其标识存储的应用程序。
在要修改的应用程序的应用程序配置设置中,选择要使用的 委派登录标识 :
- 用户主体名称(例如
joe@contoso.com) - 备用用户主体名称(例如
joed@contoso.local) - 用户主体名称的用户名部分(例如)
joe - 备用用户主体名称 (Alternate User Principal Name) 中的用户名部分(例如
joed) - 本地 SAM 帐户名称(取决于域控制器配置)
- 用户主体名称(例如
排查不同身份标识的 SSO 问题
如果后端应用程序响应意外的 HTTP 回复,请通过在连接器计算机的应用程序代理会话事件登录中检查事件 24029 开始故障排除。 事件详细信息中的“user”字段显示用于委派的标识。 若要启用会话日志,请转到事件查看器,打开 “视图 ”菜单,然后选择“ 显示分析和调试日志”。