教程:针对 Kerberos 身份验证配置 F5 BIG-IP 访问策略管理器

本教程介绍如何使用 F5 BIG-IP 高级配置,通过对 Kerberos 应用程序的单一登录 (SSO) 实现安全混合访问 (SHA)。 为 Microsoft Entra SSO 启用 BIG-IP 发布的服务有许多好处,其中包括:

若要详细了解权益,请参阅将 F5 BIG-IP 与 Microsoft Entra ID 集成

方案描述

对于此场景,你将针对 Kerberos 身份验证(也称为集成 Windows 身份验证)配置关键业务线应用程序。

若要将应用程序与 Microsoft Entra ID 集成,需要基于联合身份验证的协议的支持,例如安全断言标记语言 (SAML)。 但是,由于应用程序的现代化带来了潜在的停机风险,因此还有其他选项。

使用 Kerberos 约束委派 (KCD) 进行 SSO 时,可以使用 Microsoft Entra 应用程序代理远程访问应用程序。 你可以实现将旧版应用程序桥接到现代标识控制平面所需的协议转换。

另一种方法是使用 F5 BIG-IP 应用程序传递控制器。 此方法支持使用 Microsoft Entra 预身份验证和 KCD SSO 覆盖应用程序。 它显著改进了应用程序零信任的整体状况。

方案体系结构

此场景的 SHA 解决方案包含以下元素:

  • 应用程序:基于 Kerberos 的后端服务,由 BIG-IP 在外部发布,受 SHA 保护

  • BIG-IP:反向代理功能,支持发布后端应用程序。 访问策略管理器 (APM) 使用 SAML 服务提供程序 (SP) 和 SSO 功能覆盖已发布的应用程序。

  • Microsoft Entra ID:标识提供者 (IdP),用于通过 SAML 验证用户凭据、Microsoft Entra 条件访问和 BIG-IP APM 的 SSO

  • KDC:域控制器 (DC) 上的密钥分发中心角色,颁发 Kerberos 票证

下图演示了此场景中 SAML SP 发起的流,但 IdP 发起的流也受支持。

方案体系结构的示意图。

用户流

  1. 用户连接到应用程序终结点 (BIG-IP)
  2. BIG-IP 访问策略将用户重定向到 Microsoft Entra ID (SAML IdP)
  3. Microsoft Entra ID 对用户进行预身份验证,并应用强制实施的条件访问策略
  4. 用户被重定向到 BIG-IP (SAML SP),并通过已颁发的 SAML 令牌执行 SSO
  5. BIG-IP 对用户进行身份验证,然后从 KDC 请求 Kerberos 票证
  6. BIG-IP 将请求连同 SSO 的 Kerberos 票证一起发送到后端应用程序
  7. 应用程序授权请求并返回有效负载

先决条件

以前的 BIG-IP 体验不是必需的,但你需要: 需要:

  • 一个 Azure 免费帐户或更高层级的订阅。
  • BIG-IP 或在 Azure 中部署 BIG-IP Virtual Edition
  • 以下任意 F5 BIG-IP 许可证:
    • F5 BIG-IP Best 捆绑包
    • F5 BIG-IP APM 独立许可证
    • BIG-IP Local Traffic Manager (LTM) 上的 F5 BIG-IP APM 加载项许可证
    • 90 天 BIG-IP 免费试用版许可证
  • 从本地目录同步到 Microsoft Entra ID 的用户标识,或在 Microsoft Entra ID 中创建并流回本地目录的用户标识。
  • Microsoft Entra 租户中的以下角色之一:云应用程序管理员或应用程序管理员。
  • 用于通过 HTTPS 发布服务的 Web 服务器证书,或者在测试时使用默认 BIG-IP 证书。
  • Kerberos 应用程序,或转到 active-directory-wp.com 了解如何在 Windows 上使用 IIS 配置 SSO

BIG-IP 配置方法

本文介绍高级配置,这是一种灵活的 SHA 实现,可创建 BIG-IP 配置对象。 你也可以将此方法用于引导式配置模板未涵盖的场景。

注意

应将本文中的所有示例字符串或值替换为适用于你的实际环境的字符串或值。

在 Microsoft Entra ID 中注册 F5 BIG-IP

提示

本文中的步骤可能因开始使用的门户而略有不同。

在 BIG-IP 可以将预身份验证移交给 Microsoft Entra ID 之前,必须在租户中注册它。 此过程在两个实体之间启动 SSO。 从 F5 BIG-IP 库模板创建的应用是表示 BIG-IP 已发布应用程序的 SAML SP 的信赖方。

  1. 至少以云应用程序管理员身份登录到 Microsoft Entra 管理中心

  2. 浏览到“标识”>“应用程序”>“企业应用程序”>“所有应用程序”,然后选择“新建应用程序”。

  3. 浏览 Microsoft Entra 库”窗格随即将打开并显示云平台、本地应用程序和特别推荐应用程序的图块。 “特别推荐应用程序”部分中列出的应用程序带有指示其是否支持联合 SSO 和预配的图标。

  4. 在 Azure 库中,搜索 F5 并选择“F5 BIG-IP APM Microsoft Entra ID 集成”。

  5. 输入新应用程序的名称以识别应用程序实例。

  6. 选择“添加/创建”,将其添加到租户。

向 F5 BIG-IP 启用 SSO

配置 BIG-IP 注册以满足 BIG-IP APM 请求的 SAML 令牌。

  1. 在左侧菜单的“管理”部分,选择“单一登录”。 此时会显示“单一登录”窗格。
  2. 在“选择单一登录方法”页上选择“SAML” 。 选择“否,稍后保存”以跳过提示。
  3. 在“设置 SAML 单一登录”窗格上,选择笔形图标以编辑“基本 SAML 配置”。
  4. 将预定义的“标识符”值替换为 BIG-IP 发布的应用程序的完整 URL。
  5. 替换“回复 URL”值,但保留应用程序的 SAML SP 终结点的路径。

注意

在此配置中,SAML 流将在 IdP 发起的模式下运行。 Microsoft Entra ID 会在将用户重定向到应用程序的 BIG-IP 终结点之前发出 SAML 断言。

  1. 若要使用 SP 发起的模式,请在“登录 URL”中输入应用程序 URL。

  2. 对于“退出登录 URI”,请输入 BIG-IP APM 单一退出登录 (SLO) 终结点,并以要发布的服务的主机头作为前缀。 此操作可确保用户的 BIG-IP APM 会话在用户退出登录 Microsoft Entra ID 后结束。

    基本 SAML 配置中的 URL 条目的屏幕截图。

注意

自 BIG-IP 流量管理操作系统 (TMOS) v16 起,SAML SLO 终结点已更改为 /saml/sp/profile/redirect/slo。

  1. 在关闭 SAML 配置之前,请选择“保存”。
  2. 跳过 SSO 测试提示。
  3. 请注意“用户属性和声明”部分的属性。 Microsoft Entra ID 会将用于 BIG-IP APM 身份验证和后端应用程序的 SSO 的属性颁发给用户。
  4. 若要将联合元数据 XML 文件保存到计算机上,请在“SAML 签名证书”窗格中选择“下载”。

注意

Microsoft Entra ID 创建的 SAML 签名证书的有效期为三年。 有关详细信息,请参阅联合单一登录的托管证书

向用户和组授予访问权限

默认情况下,Microsoft Entra ID 仅向已被授予应用程序访问权限的用户颁发令牌。 若要向用户和组授予对应用程序的访问权限,请执行以下操作:

  1. 在“F5 BIG-IP 应用程序的概述”窗格上,选择“分配用户和组”。

  2. 选择“+ 添加用户/组”。

    “用户和组”上的“添加用户或组”选项的屏幕截图。

  3. 选择用户和组,然后选择“分配”。

配置 Active Directory Kerberos 约束委派

若要使 BIG-IP APM 代表用户对后端应用程序执行 SSO,必须在目标 Active Directory (AD) 域中配置 KCD。 委托身份验证要求使用域服务帐户预配 BIG-IP APM。

对于这种情况,应用程序托管在服务器 APP-VM-01 上,并在名为 web_svc_account 的服务帐户(而不是计算机标识)的上下文中运行。 分配给 APM 的委托服务帐户是 F5-BIG-IP。

创建 BIG-IP APM 委派帐户

由于 BIG-IP 不支持组托管服务帐户 (gMSA),因此请创建一个标准用户帐户以用作 APM 服务帐户。

  1. 输入以下 PowerShell 命令。 将 UserPrincipalName 和 SamAccountName 值替换为你的环境值。 为了提高安全性,请使用与应用程序的主机头匹配的专用服务主体名称 (SPN)。

    New-ADUser -Name "F5 BIG-IP Delegation Account" UserPrincipalName $HOST_SPN SamAccountName "f5-big-ip" -PasswordNeverExpires $true Enabled $true -AccountPassword (Read-Host -AsSecureString "Account Password")

    HOST_SPN = host/f5-big-ip.contoso.com@contoso.com

    注意

    使用主机时,主机上运行的任何应用程序都将委托帐户,而使用 HTTPS 时,将仅允许与 HTTP 协议相关的操作。

  2. 为 APM 服务帐户创建一个服务主体名称 (SPN),以便在委派到 Web 应用程序服务帐户期间使用:

    Set-AdUser -Identity f5-big-ip -ServicePrincipalNames @Add="host/f5-big-ip.contoso.com"}

    注意

    必须以 UserPrincipleName (host/name.domain@domain) 或 ServicePrincipleName (host/name.domain) 格式包含主机/部件。

  3. 在指定目标 SPN 之前,请查看其 SPN 配置。 确保 SPN 针对 APM 服务帐户显示。 Web 应用程序的 APM 服务帐户委托:

    • 确认 Web 应用程序在计算机上下文或专用服务帐户中运行。

    • 对于计算机上下文,请使用以下命令在 Active Directory 中查询帐户对象以查看其定义的 SPN。 将 name_of_account 替换为环境的帐户<>。

      Get-ADComputer -identity <name_of_account> -properties ServicePrincipalNames | Select-Object -ExpandProperty ServicePrincipalNames

      例如:Get-ADUser -identity f5-big-ip -properties ServicePrincipalNames | Select-Object -ExpandProperty ServicePrincipalNames

    • 对于专用服务帐户,请使用以下命令查询 Active Directory 中的帐户对象以查看其定义的 SPN。 将 name_of_account 替换为环境的帐户<>。

      Get-ADUser -identity <name_of_account> -properties ServicePrincipalNames | Select-Object -ExpandProperty ServicePrincipalNames

      例如:Get-ADComputer -identity f5-big-ip -properties ServicePrincipalNames | Select-Object -ExpandProperty ServicePrincipalNames

  4. 如果应用在计算机上下文中运行,请将 SPN 添加到 Active Directory 中计算机帐户的对象:

    Set-ADComputer -Identity APP-VM-01 -ServicePrincipalNames @{Add="http/myexpenses.contoso.com"}

定义 SPN 后,请为委派给该服务的 APM 服务帐户建立信任。 配置将因 BIG-IP 实例和应用程序服务器的拓扑而异。

在同一域中配置 BIG-IP 和目标应用程序

  1. 为 APM 服务帐户设置信任以委托身份验证:

    Get-ADUser -Identity f5-big-ip | Set-ADAccountControl -TrustedToAuthForDelegation $true

  2. APM 服务帐户需要知道要委派给哪个受信任的目标 SPN。 将目标 SPN 设置为运行 Web 应用程序的服务帐户:

    Set-ADUser -Identity f5-big-ip -Add @{'msDS-AllowedToDelegateTo'=@('HTTP/myexpenses.contoso.com')}

    注意

    可以通过域控制器上的 Active Directory 用户和计算机、Microsoft 管理控制台 (MMC) 管理单元完成这些任务。

在不同域中配置 BIG-IP 和目标应用程序

在 Windows Server 2012 版本及更高版本中,跨域 KCD 使用基于资源的约束委派 (RCD)。 服务的约束从域管理员转移到了服务管理员。 该委派使后端服务管理员可以允许或拒绝 SSO。 这种情况在配置委派中创建了一种不同的方法,当使用 PowerShell 或 Active Directory 服务接口编辑器 (ADSI Edit) 时便可实现该方法。

可以使用应用程序服务帐户(计算机或专用服务帐户)的 PrincipalsAllowedToDelegateToAccount 属性授予来自 BIG-IP 的委派。 对于此场景,请在与应用程序相同的域中的域控制器(Windows Server 2012 R2 或更高版本)上使用以下 PowerShell 命令。

使用针对 Web 应用程序服务帐户定义的 SPN。 为了提高安全性,请使用与应用程序的主机头匹配的专用 SPN。 例如,由于此示例中的 Web 应用程序主机头是 myexpenses.contoso.com,因此请将 HTTP/myexpenses.contoso.com 添加到 Active Directory (AD) 中的应用程序服务帐户对象:

Set-AdUser -Identity web_svc_account -ServicePrincipalNames @{Add="http/myexpenses.contoso.com"}

对于以下命令,请注意上下文。

如果 web_svc_account 服务在用户帐户的上下文中运行,请使用以下命令:

$big-ip= Get-ADComputer -Identity f5-big-ip -server dc.contoso.com Set-ADUser -Identity web_svc_account -PrincipalsAllowedToDelegateToAccount $big-ip Get-ADUser web_svc_account -Properties PrincipalsAllowedToDelegateToAccount

如果 web_svc_account 服务在用户帐户的上下文中运行,请使用以下命令:

$big-ip= Get-ADComputer -Identity f5-big-ip -server dc.contoso.com Set-ADComputer -Identity web_svc_account -PrincipalsAllowedToDelegateToAccount $big-ip Get-ADComputer web_svc_account -Properties PrincipalsAllowedToDelegateToAccount

有关详细信息,请参阅跨域的 Kerberos 约束委派

BIG-IP 高级配置

使用以下部分继续设置 BIG-IP 配置。

配置 SAML 服务提供程序设置

SAML 服务提供程序设置定义了 SAML SP 属性,APM 将使用这些属性通过 SAML 预身份验证来覆盖旧版应用程序。 进行配置:

  1. 通过浏览器登录到 F5 BIG-IP 管理控制台。

  2. 选择“访问”>“联合”>“SAML 服务提供程序”>“本地 SP 服务”>“创建”。

    “本地 SP 服务”上的“SAML 服务提供程序”下的“创建”选项的屏幕截图。

  3. 提供为 Microsoft Entra ID 配置 SSO 时保存的“名称”和“实体 ID”值。

    “创建新的 SAML SP 服务”上的“名称”和“实体 ID”条目的屏幕截图。

  4. 如果 SAML 实体 ID 与已发布应用程序的 URL 完全匹配,则可以跳过“SP 名称设置”。 例如,如果实体 ID 为 urn:myexpenses:contosoonline,则“架构”值为 https,“主机”值为 myexpenses.contoso.com。 如果实体 ID 为 https://myexpenses.contoso.com",则不需要提供此信息。

配置外部 IdP 连接器

SAML IdP 连接器定义 BIG-IP APM 信任 Microsoft Entra ID 作为其 SAML IdP 所需的设置。 这些设置会将 SAML SP 映射到 SAML IdP,从而在 APM 和 Microsoft Entra ID 之间建立联合身份验证信任。 配置连接器:

  1. 向下滚动以选择新的 SAML SP 对象,然后选择“绑定/取消绑定 IdP 连接器”。

    “本地 SP 服务”的“SAML 服务提供程序”上的“绑定/取消绑定 IdP 连接器”选项的屏幕截图。

  2. 选择“创建新的 IdP 连接器”>“从元数据”。

    “编辑 SAML IdP”上的“创建新的 IdP 连接器”下的“从元数据”选项的屏幕截图

  3. 浏览到之前下载的联合元数据 XML 文件,并为表示外部 SAML IdP 的 APM 对象提供“标识提供者名称”。 以下示例显示 MyExpenses_AzureAD。

    “创建新的 SAML IdP 连接器”上的“选择文件”下的“选择文件”和“标识提供者名称”条目的屏幕截图。

  4. 选择“添加新行”以选择新的“SAML IdP 连接器”值,然后选择“更新”。

    “SAML IdP 连接器”条目的“更新”选项的屏幕截图。

  5. 选择“确定”。

配置 Kerberos SSO

创建一个 APM SSO 对象,用于对后端应用程序执行 KCD SSO。 使用创建的 APM 委派帐户。

  1. 选择“访问”>“单一登录”>“Kerberos”>“创建”,并提供以下信息:
  • 名称:创建后,其他已发布的应用程序也可使用 Kerberos SSO APM 对象。 例如,Contoso_KCD_sso 可用于 Contoso 域的多个已发布应用程序。 对单个应用程序使用 MyExpenses_KCD_sso。

  • 用户名源:指定用户 ID 源。 使用 APM 会话变量作为源。 建议使用 session.saml.last.identity,因为它包含 Microsoft Entra 声明中的登录用户 ID。

  • 用户领域源:如果用户域与 KCD 的 Kerberos 领域不同,则此为必填项。 如果用户位于单独的受信任的域中,则通过指定包含已登录用户域的 APM 会话变量来使 APM 可识别。 例如 session.saml.last.attr.name.domain。 在用户主体名称 (UPN) 基于备用后缀的情况下,可以执行此操作。

  • Kerberos 领域:大写的用户域后缀

  • KDC:域控制器 IP 地址。 或者如果 DNS 已配置且高效,则输入一个完全限定的域名。

  • UPN 支持:如果用户名源采用 UPN 格式(例如 session.saml.last.identity 变量),请选中此复选框。

  • 帐户名称和帐户密码:用于执行 KCD 的 APM 服务帐户凭据

  • SPN 模式:如果使用 HTTP/%h,则 APM 使用客户端请求的主机头来生成它为其请求 Kerberos 令牌的 SPN。

  • 发送授权:对于首选协商身份验证而不是在第一个请求(例如 Tomcat)中接收 Kerberos 令牌的应用程序,禁用此选项。

    “常规属性”上的“名称”、“用户名源”和“SSO 方法配置”条目的屏幕截图。

如果用户领域与后端服务器领域不同,可以将 KDC 保留为未定义状态。 此规则也适用于多域领域场景。 如果未定义 KDC,BIG-IP 会尝试通过后端服务器域的 SRV 记录的 DNS 查找来发现 Kerberos 领域。 它要求域名与领域名称相同。 如果域名不同,请在 /, and so on/krb5.conf 文件中指定它。

当 IP 地址指定 KDC 时,Kerberos SSO 处理速度更快。 当主机名指定 KDC 时,Kerberos SSO 处理速度更慢。 由于存在其他 DNS 查询,因此当未定义 KDC 时,处理速度较慢。 在将概念证明迁移到生产环境之前,请确保 DNS 性能最佳。

注意

如果后端服务器位于多个领域,请为每个领域创建单独的 SSO 配置对象。

可以将标头作为 SSO 请求的一部分注入后端应用程序。 将“常规属性”设置从“基础”更改为“高级”。

有关为 KCD SSO 配置 APM 的详细信息,请参阅 F5 文章 K17976428:Kerberos 约束委派概述

配置访问配置文件

访问配置文件绑定了许多管理对 BIG-IP 虚拟服务器的访问的 APM 元素。 这些元素包括访问策略、SSO 配置和 UI 设置。

  1. 选择“访问”>“配置文件/策略”>“访问配置文件(每会话策略)”>“创建”,并输入以下属性:

    • 名称:例如,输入 MyExpenses

    • 配置文件类型:选择“全部”

    • SSO 配置:选择刚创建的 KCD SSO 配置对象

    • 接受的语言:添加至少一种语言

    “常规属性”、“跨身份验证域的 SSO”和“语言设置”条目的屏幕截图。

  2. 选择创建的按会话配置文件对应的“编辑”。

    “按会话策略”下的“编辑”选项的屏幕截图。

  3. 此时会打开可视化策略编辑器。 选择回退旁边的加号。

    “应用访问策略”上的加号按钮的屏幕截图。

  4. 在对话框中,选择“身份验证”>“SAML 身份验证”>“添加项”。

    “身份验证”选项卡上的“SAML 身份验证”选项的屏幕截图。

  5. 在“SAML 身份验证 SP”配置中,请将“AAA 服务器”选项设置为使用前面创建的 SAML SP 对象。

    “属性”选项卡上的“AAA 服务器”条目的屏幕截图。

  6. 若要将“成功”分支更改为“允许”,请选择上方“拒绝”框中的链接。

  7. 选择“保存”。

    访问策略上“拒绝”选项的屏幕截图。

配置属性映射

虽然添加 LogonID_Mapping 配置是一项可选操作,但该操作可使 BIG-IP 活动会话列表显示已登录用户的 UPN,而不是会话编号。 此信息对于分析日志或排查问题非常有用。

  1. 选择“SAML 身份验证成功”分支对应的加号。

  2. 在对话框中,选择“分配”>“变量分配”>“添加项”。

    “分配”选项卡上的“变量分配”选项的屏幕截图。

  3. 输入“名称”。

  4. 在“变量分配”窗格上,选择“添加新项”>“更改”。 下面的示例显示“名称”框中的“LogonID_Mapping”。

    添加新条目和更改选项的屏幕截图。

  5. 设置两个变量:

    • 自定义变量:输入 session.logon.last.username
    • 会话变量:输入 session.saml.last.identity
  6. 选择“完成”>“保存”。

  7. 选择访问策略“成功”分支的“拒绝”终端。 将其更改为“允许”。

  8. 选择“保存”。

  9. 选择“应用访问策略”,然后关闭编辑器。

    “应用访问策略”选项的屏幕截图。

配置后端池

要使 BIG-IP 准确转发客户端流量,请创建一个表示托管应用程序的后端服务器的 BIG-IP 节点对象。 然后,将该节点放入 BIG-IP 服务器池。

  1. 选择“本地流量”>“池”>“池列表”>“创建”,并提供服务器池对象的名称。 例如,输入 MyApps_VMs。

    “新池上的配置”下的“名称”条目的屏幕截图。

  2. 添加具有以下资源详细信息的池成员对象:

    • 节点名称:托管后端 Web 应用程序的服务器的显示名称
    • 地址:托管应用程序的服务器的 IP 地址
    • 服务器端口:应用程序正在侦听的 HTTP/S 端口

    “节点名称”、“地址”和“服务端口”条目以及“添加”选项的屏幕截图。

注意

本文不介绍运行状况监视器所需的其他配置。 请参阅 K13397:BIG-IP DNS 系统的 HTTP 运行状况监视器请求格式概述

配置虚拟服务器

虚拟服务器是一个 BIG-IP 数据平面对象,由虚拟 IP 地址表示,用于侦听客户端向应用程序发出的请求。 接收到的流量会根据与虚拟服务器关联的 APM 配置文件进行处理和评估,然后根据策略进行定向。

配置虚拟服务器:

  1. 选择“本地流量”>“虚拟服务器”>“虚拟服务器列表”>“创建”。

  2. 输入“名称”和未分配给已连接网络上的 BIG-IP 对象或设备的 IPv4/IPv6 地址。 该 IP 地址专用于接收已发布后端应用程序的客户端流量。

  3. 将“服务端口”设置为 443。

    “常规属性”下的“名称”、“目标地址/掩码”和“服务端口”条目的屏幕截图。

  4. 将“HTTP 配置文件(客户端)”设置为“http”。

  5. 为虚拟服务器启用传输层安全性 (TLS),以允许通过 HTTPS 发布服务。

  6. 对于“SSL 配置文件(客户端)”,选择为先决条件创建的配置文件。 或者在测试时使用默认值。

    客户端的 HTTP 配置文件和 SSL 配置文件条目的屏幕截图。

  7. 将“源地址转换”更改为“自动映射”。

    “源地址转换”条目的屏幕截图。

  8. 在“访问策略”下,基于之前创建的配置文件设置“访问配置文件”。 该选择会将 Microsoft Entra SAML 预身份验证配置文件和 KCD SSO 策略绑定到虚拟服务器。

    “访问策略”下的“访问配置文件”条目的屏幕截图。

  9. 设置“默认池”以使用在上一部分中创建的后端池对象。

  10. 选择“完成”。

    “资源”的“默认池”条目的屏幕截图。

配置会话管理设置

BIG-IP 会话管理设置定义终止或允许用户会话继续的条件、用户和 IP 地址的限制以及错误页。 你可以在此处创建策略。

转到“访问策略”>“访问配置文件”>“访问配置文件”,然后从列表中选择应用程序。

如果在 Microsoft Entra ID 中定义了“单一退出登录 URI”值,它将确保从 MyApps 门户发起的 IdP 退出登录会结束客户端与 BIG-IP APM 之间的会话。 导入的应用程序联合身份验证元数据 XML 文件为 APM 提供了 Microsoft Entra SAML 退出登录终结点,用于 SP 发起的退出登录。要使这一做法真正有效,APM 需要了解用户何时退出登录。

考虑不使用 BIG-IP Web 门户的情况。 用户无法指示 APM 退出登录。即使用户退出登录应用程序,BIG-IP 在技术上也不会注意到这一点,因此可以通过 SSO 轻松恢复应用程序会话。 需要考虑 SP 发起的退出登录,以确保会话安全终止。

注意

可以将 SLO 功能添加到应用程序退出登录按钮。 此功能可以将客户端重定向到 Microsoft Entra SAML 退出登录终结点。 可以在“应用注册”>“终结点”中找到此 SAML 退出登录终结点。

如果无法更改应用,请考虑让 BIG-IP 侦听应用的退出登录调用。 当它检测到请求时,它会触发 SLO。

有关详细信息,请参阅 F5 文章:

摘要

你的应用程序应已发布,并可通过 SHA(通过其 URL 或通过 Microsoft 的应用程序门户)进行访问。 该应用程序也应该在 Microsoft Entra 条件访问中作为目标资源可见。

为提高安全性,使用此模式的组织可以阻止对应用程序的直接访问,从而强制要求使用严格的路径通过 BIG-IP 进行访问。

后续步骤

以用户身份打开浏览器,并连接到应用程序的外部 URL。 可以在 Microsoft MyApps 门户中选择应用程序图标。 针对 Microsoft Entra 租户进行身份验证后,将重定向到应用程序的 BIG-IP 终结点,并通过 SSO 登录。

示例应用程序的网站的图像。

Microsoft Entra B2B 来宾访问

SHA 支持 Microsoft Entra B2B 来宾访问。 来宾标识从 Microsoft Entra 租户同步到目标 Kerberos 域。 BIG-IP 必须具有来宾对象的本地表示形式,才能对后端应用程序执行 KCD SSO。

故障排除

排查问题时,请注意以下几点:

  • Kerberos 区分时间。 它要求将服务器和客户端设置为正确的时间,并尽可能同步到可靠的时间源。
  • 确保域控制器和 Web 应用程序的主机名可在 DNS 中解析
  • 确保环境中没有重复的 SPN。 在命令行中运行以下查询:setspn -q HTTP/my_target_SPN

注意

若要验证是否为 KCD 配置了 IIS 应用程序,请参阅排查应用程序代理的 Kerberos 约束委派配置问题。 另请参阅 AskF5 文章 Kerberos 单一登录方法

增加日志详细程度

BIG-IP 日志是可靠的信息源。 增加日志详细级别:

  1. 转到“访问策略”>“概述”>“事件日志”>“设置” 。
  2. 为已发布的应用程序选择该行。
  3. 选择“编辑”>“访问系统日志”。
  4. 从“SSO”列表中选择“调试”。
  5. 选择“确定”。

在查看日志之前重现问题。 完成后,还原此功能。 否则,详细程度会非常重要。

BIG-IP 错误

如果在 Microsoft Entra 预身份验证后出现 BIG-IP 错误,则问题可能与从 Microsoft Entra ID 到 BIG-IP 的 SSO 有关。

  1. 转到“访问”>“概述”>“访问报告”。
  2. 若要查看日志中是否有任何线索,请运行过去一小时的报告。
  3. 使用会话的“查看会话变量”链接了解 APM 是否正在从 Microsoft Entra ID 接收预期的声明。

后端请求

如果未出现 BIG-IP 错误,则问题可能与后端请求有关,或者与从 BIG-IP 到应用程序的 SSO 有关。

  1. 转到“访问策略”>“概述”>“活动会话” 。
  2. 选择活动会话的链接。
  3. 使用“查看变量”链接可确定 KCD 问题的根本原因,尤其是在 BIG-IP APM 无法获取正确的用户和域标识符的情况下。

有关诊断 KCD 相关问题的帮助,请参阅存档的 F5 BIG-IP 部署指南配置 Kerberos 约束委派

资源