教程:为基于标头的单一登录配置 F5 BIG-IP 访问策略管理器

了解如何使用 F5 BIG-IP 高级配置通过对基于标头的应用程序的单一登录 (SSO) 实现安全混合访问 (SHA)。 BIG-IP 发布的应用和 Microsoft Entra 配置权益:

了解详细信息:

方案描述

对于此方案,可使用旧版应用程序(使用 HTTP 授权标头)来控制对受保护内容的访问。 理想情况下,Microsoft Entra ID 管理应用程序访问。 但是,旧版缺少新式身份验证协议。 现代化需要付出努力和时间,同时也会带来故障时间成本和风险。 相反,在 公共 Internet 和内部应用之间部署 BIG-IP,以对应用进行入站访问。

应用程序前面的 BIG-IP 支持使用 Microsoft Entra 预身份验证和基于标头的 SSO 来叠加服务。 配置提高了应用程序的安全状况。

方案体系结构

此方案的安全混合访问解决方案由以下组件构成:

  • 应用程序 - BIG-IP 发布的服务由 Microsoft Entra SHA 保护
  • Microsoft Entra ID - 用于向 BIG-IP 验证凭据、条件访问和 SSO 的安全断言标记语言 (SAML) 标识提供者 (IdP)
    • 通过 SSO,Microsoft Entra ID 提供 BIG-IP 所需的会话属性,包括用户标识符
  • BIG-IP - 应用程序的反向代理和 SAML 服务提供程序 (SP),将身份验证委托给 SAML IdP,然后将基于标头的 SSO 委托给后端应用程序

下图说明了使用 Microsoft Entra ID、BIG-IP、APM 和应用程序的用户流。

该图显示使用 Microsoft Entra ID、BIG-IP、APM 和应用程序的用户流

  1. 用户连接到应用程序 SAML SP 终结点 (BIG-IP)。
  2. BIG-IP APM 访问策略将用户重定向到 Microsoft Entra ID (SAML IdP)。
  3. Microsoft Entra 对用户进行预身份验证,并应用条件访问策略。
  4. 用户被重定向到 BIG-IP (SAML SP),并使用颁发的 SAML 令牌执行 SSO。
  5. BIG-IP 将 Microsoft Entra 特性作为标头注入到应用程序请求。
  6. 应用程序授权请求并返回有效负载。

先决条件

对于该方案,需要:

  • 一个 Azure 订阅
  • 以下角色之一:云应用程序管理员或应用程序管理员
  • BIG-IP,或者在 Azure 中部署 BIG-IP Virtual Edition (VE)
  • 以下任意 F5 BIG-IP 许可证:
    • F5 BIG-IP® Best 捆绑包
    • F5 BIG-IP Access Policy Manager™ (APM) 独立许可证
    • BIG-IP F5 BIG-IP® Local Traffic Manager™ (LTM) 上的 F5 BIG-IP Access Policy Manager™ (APM) 加载项许可证
    • 90 天的 BIG-IP 完整功能试用版。 请参阅免费试用版
  • 从本地目录同步到 Microsoft Entra ID 的用户标识
  • SSL 证书(用于通过 HTTPS 发布服务)或者在测试时使用默认证书
  • 用于测试的基于标头的应用或 IIS 标头应用

BIG-IP 配置方法

以下说明是高级配置方法,是实现 SHA 的一种灵活方式。 手动创建 BIG-IP 配置对象。 对于引导式配置模板中未包含的方案,请使用此方法。

注意

请将示例字符串或值替换为你环境中的字符串或值。

提示

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

要实现 SHA,第一步是在 BIG-IP APM 和 Microsoft Entra ID 之间建立 SAML 联盟信任。 信任建立了 BIG-IP 的集成,以便在授予对已发布服务的访问权限之前,将预身份验证和条件访问移交给 Microsoft Entra ID。

详细了解:什么是条件访问?

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

  2. 浏览到“标识”>“应用程序”>“企业应用程序”>“所有应用程序”。

  3. 在顶部功能区上,选择”+ 新建应用”。

  4. 在库中,搜索 F5

  5. 请选择“F5 BIG-IP APM Microsoft Entra ID 集成”。

  6. 输入应用程序名称

  7. 选择“添加/创建”。

  8. 名称反映了服务。

配置 Microsoft Entra SSO

  1. 新的 F5 应用属性会出现

  2. 选择“管理”>“单一登录

  3. 在“选择单一登录方法”页上选择“SAML” 。

  4. 跳过保存单一登录设置的提示。

  5. 选择“否,稍后保存”。

  6. 在“设置 SAML 单一登录”时,为“基本 SAML 配置”选择“”图标。

  7. 标识符 URL 替换为 BIG-IP 发布的服务 URL。 例如: https://mytravel.contoso.com

  8. 对“回复 URL”重复此操作,并包括 APM SAML 终结点路径。 例如: https://mytravel.contoso.com/saml/sp/profile/post/acs

    注意

    在此配置中,SAML 流以 IdP 模式运行:Microsoft Entra ID 在重定向到应用的 BIG-IP 服务端点之前向用户发出 SAML 断言。 BIG-IP APM 支持 IdP 和 SP 模式。

  9. 对于“注销 URL”,请输入 BIG-IP APM 单一退出登录 (SLO) 终结点,以服务主机头作为前缀。 SLO URI 确保用户 BIG-IP APM 会话在 Microsoft Entra 注销后结束。例如,https://mytravel.contoso.com/saml/sp/profile/redirect/slr

    标识符、回复 URL、登录 URL 等的基本 SAML 配置输入的屏幕截图。

    注意

    从流量管理操作系统 (TMOS) v16 开始,SAML SLO 终结点更改为 /saml/sp/profile/redirect/slo

  10. 选择“保存”。

  11. 退出 SAML 配置。

  12. 跳过 SSO 测试提示。

  13. 要编辑“用户属性和声明”>“+ 添加新声明”,请选择“笔”图标。

  14. 选择 Employeeid 作为“名称”。

  15. 选择 user.employeeid 作为“源属性”。

  16. 选择“保存”

“管理声明”对话框中“名称”和“源属性”输入的屏幕截图。

  1. 选择“+ 添加组声明
  2. 选择“分配给应用程序的组”>“源属性”>“sAMAccountName”。

“组声明”对话框中源属性输入的屏幕截图。

  1. 选择“保存”配置。
  2. 关闭视图。
  3. 观察“用户属性和声明”部分属性。 Microsoft Entra ID 向用户颁发 BIG-IP APM 身份验证和 SSO 的属性给后端应用程序。

用户属性和声明信息(例如姓氏、电子邮件地址、标识等)的屏幕截图。

注意

添加 BIG-IP 发布的应用期望作为标头的其他声明。 如果在 Microsoft Entra ID 中,则会发布更多定义的声明。 在发布声明之前,在 Microsoft Entra ID 中定义目录成员身份和用户对象。 请参阅使用 Microsoft Entra ID 为应用程序配置组声明

  1. 在“SAML 签名证书”部分中,选择“下载”。
  2. 联合元数据 XML 文件将保存到计算机。

Microsoft Entra ID 创建的 SAML 签名证书的有效期为三年。

Microsoft Entra 授权

默认情况下,Microsoft Entra ID 仅向已被授予应用程序访问权限的用户颁发令牌。

  1. 在应用程序的配置视图中,选择“用户和组”。
  2. 选择“+ 添加用户”,然后在“添加分配”中,选择“用户和组”。
  3. 在“用户和组”对话框中,添加有权访问基于标头的应用的用户组。
  4. 选择“选择”。
  5. 选择“分配”。

Microsoft Entra SAML 联合身份验证信任已完成。 接下来,设置 BIG-IP APM 以发布 Web 应用,并配置属性以完成 SAML 预身份验证信任。

高级配置

使用以下部分配置 SAML、标头 SSO、访问配置文件等。

SAML 配置

要通过 Microsoft Entra ID 对已发布的应用程序进行联合身份验证,请创建 BIG-IP SAML 服务提供程序和相应的 SAML IdP 对象。

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

    SAML 服务提供商选项卡下“创建”选项的屏幕截图。

  2. 输入“名称”。

  3. 输入在 Microsoft Entra ID 中定义的“实体 ID”。

    在“创建新 SAML SP 服务”对话框上输入的名称和实体 ID 的屏幕截图。

  4. 对于“SP 名称设置”,如果实体 ID 与发布的 URL 的主机名不匹配,请进行选择;如果不是常规的基于主机名的 URL 格式,则进行选择。 如果实体 ID 为 urn:mytravel:contosoonline,请提供外部方案和应用程序主机名。

  5. 向下滚动以选择新的“SAML SP 对象”。

  6. 选择“绑定/取消绑定 IdP 连接器”。

    SAML 服务提供程序选项卡下的绑定/取消绑定 IdP 连接器选项的屏幕截图。

  7. 选择“创建新的 IdP 连接器”。

  8. 从下拉列表中,选择“从元数据”。

    创建新 IdP 连接下拉菜单中“从元数据”选项的屏幕截图。

  9. 浏览到下载的联合元数据 XML 文件。

  10. 为外部 SAML IdP 的 APM 对象输入“标识提供者名称”。 例如: MyTravel_EntraID

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

  1. 选择“添加新行”。
  2. 选择新的 SAML IdP 连接器
  3. 选择“更新”。

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

  1. 选择“确定”。

已保存设置的屏幕截图

标头 SSO 配置

创建 APM SSO 对象。

  1. 选择“访问”>“配置文件/策略”>“每个请求策略”>“创建”。

  2. 输入“名称”。

  3. 至少添加一种“接受的语言”。

  4. 选择“完成”。

    名称和接受的语言输入的屏幕截图。

  5. 对于新的每个请求策略,请选择“编辑”。

    “每个请求策略”列中“编辑”选项的屏幕截图。

  6. 会启动视觉策略编辑器。

  7. 在“回退”下,选择 + 符号。

    回退下的加号选项的屏幕截图。

  8. 在“常规用途”选项卡上,选择“HTTP 标头”>“添加项目”。

    “HTTP 标头”选项的屏幕截图。

  9. 选择“添加新条目”。

  10. 创建三个 HTTP 和标头修改条目。

  11. 对于“标头名称”,输入 upn

  12. 对于“标头值”,输入 %{session.saml.last.identity}

  13. 对于“标头名称”,输入 employeeid

  14. 对于“标头值”,输入 %{session.saml.last.attr.name.employeeid}

  15. 对于“标头名称”,输入 group_authz

  16. 对于“标头值”,输入 %{session.saml.last.attr.name.http://schemas.microsoft.com/ws/2008/06/identity/claims/groups}

注意

大括号中的 APM 会话变量区分大小写。 我们建议以小写形式定义属性。

“属性”选项卡上“HTTP 标头修改”下的标头输入的屏幕截图。

  1. 选择“保存”。
  2. 关闭视觉策略编辑器。

视觉策略编辑器的屏幕截图。

访问配置文件配置

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

  1. 选择“访问”>“配置文件/策略”>“访问配置文件 (每会话策略)”>“创建”。

  2. 对于“名称”,输入 MyTravel

  3. 对于“配置文件类型”,选择“全部”。

  4. 对于“接受的语言”,选择至少一种语言。

  5. 选择“完成”。

    “名称”、“配置文件类型”和“接受语言”条目的屏幕截图。

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

    “每会话策略”列中“编辑”选项的屏幕截图。

  7. 会启动视觉策略编辑器。

  8. 在“回退”下,选择 + 符号。

    加号选项的屏幕截图。

  9. 选择“身份验证”>“SAML 身份验证”>“添加项”。

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

  10. 对于 SAML 身份验证 SP 配置,从 AAA 服务器下拉列表中,选择创建的 SAML SP 对象。

  11. 选择“保存”。

AAA 服务器选择的屏幕截图。

属性映射

以下说明是可选的。 使用 LogonID_Mapping 配置时,BIG-IP 活动会话列表具有已登录用户主体名称 (UPN),而不是会话编号。 在分析日志或进行疑难解答时使用此数据。

  1. 对于“SAML 身份验证成功”分支,选择 + 符号。

    SAML 身份验证成功分支上的加号的屏幕截图。

  2. 在弹出窗口中选择“分配”>“变量分配”>“添加项”。

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

  3. 输入名称

  4. 在“变量分配”部分中,选择“添加新项”>“更改”。 例如 LogonID_Mapping。

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

  5. 对于“自定义变量”,请设置 session.saml.last.identity

  6. 对于“会话变量”,请设置 session.logon.last.username

  7. 选择“完成”。

  8. 选择“保存”。

  9. 在“访问策略成功”分支上,选择“拒绝”终端。

  10. 选择“允许”

  11. 选择“保存”。

  12. 选择“添加访问策略”。

  13. 关闭视觉策略编辑器。

后端池配置

要使 BIG-IP 能够正确转发客户端流量,请创建 APM 节点对象,表示承载应用程序的后端服务器。 将节点放置在 APM 池中。

  1. 选择“本地流量>池>”池列表“>创建”。

  2. 对于服务器池对象,请输入“名称”。 例如 MyApps_VMs。

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

  3. 添加池成员对象。

  4. 在“节点名称”中,输入承载后端 Web 应用程序的服务器的名称。

  5. 对于“地址”,输入承载应用程序的服务器的 IP 地址。

  6. 对于“服务器端口”,输入应用程序正在侦听的 HTTP/S 端口。

  7. 选择 添加

    节点名称、地址、服务端口和添加选项的输入屏幕截图。

    注意

    要了解更多信息,请访问 my.f5.com 了解 K13397:BIG-IP DNS 系统的 HTTP 健康监视器请求格式概述

虚拟服务器配置

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

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

  2. 输入虚拟服务器名称

  3. 对于“目标地址/掩码”,选择“主机

  4. 输入要分配给 BIG-IP 以接收客户端流量的未使用 IP IPv4 或 IPv6。

  5. 对于“服务端口”,选择“端口”、“443”和“HTTPS”。

    名称、目标地址掩码和服务端口条目的屏幕截图。

  6. 对于“HTTP 配置文件(客户端)”,选择“http”。

  7. 对于“SSL 配置文件(客户端)”,选择创建的客户端 SSL 配置文件,或者保留默认值以进行测试。

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

  8. 对于“源地址转换”,选择“自动映射”。

    “源地址转换”选项的屏幕截图。

  9. 对于“访问策略”,选择前面创建的“访问配置文件”。 此操作会将 Microsoft Entra SAML 预身份验证配置文件和标头 SSO 策略绑定到虚拟服务器。

  10. 对于“每个请求策略”,选择“SSO_Headers”。

访问配置文件和请求前策略条目的屏幕截图。

  1. 选择创建的后端池对象作为“默认池”。
  2. 选择“完成”。

“资源”下的“默认池”选项的屏幕截图。

会话管理

使用 BIG-IP 会话管理设置来定义用户会话终止或继续的条件。 使用“访问策略”>“访问配置文件”创建策略。 从列表中选择应用。

在 SLO 功能方面,Microsoft Entra ID 中的 SLO URI 可确保 IdP 从 MyApps 门户发起的注销能够终止客户端和 BIG-IP APM 之间的会话。 导入的应用程序联合元数据.xml 为 APM 提供了 Microsoft Entra SAML 注销端点,用于 SP 启动的注销。因此,使 APM 能够知道用户何时注销。

如果没有 BIG-IP 门户网站,则用户无法指示 APM 进行注销。如果用户退出应用程序,则 BIG-IP 不会注意到该操作。 可以通过 SSO 恢复应用程序会话。 因此,需要仔细考虑 SP 发起的注销。

为了确保会话安全终止,请在应用程序的“注销”按钮中添加 SLO 功能。 使其能够将客户端重定向到 Microsoft Entra SAML 注销端点。 对于租户的 SAML 注销端点,请转到应用程序注册>终结点

如果无法更改应用,请启用 BIG-IP 以侦听应用程序退出登录调用并触发 SLO。 若要了解详细信息,请访问以下链接:

部署

  1. 选择“部署”以提交设置。
  2. 验证应用是否出现在租户中。
  3. 应用程序已发布,并且可通过 SHA、通过其 URL 或 Microsoft 门户进行访问。

测试

以用户身份执行以下测试。

  1. 选择应用程序外部 URL,或者在 MyApps 门户中选择应用程序图标。

  2. 对 Microsoft Entra ID 进行身份验证。

  3. 将重定向到应用的 BIG-IP 虚拟服务器,并通过 SSO 登录。

  4. 注入标头输出显示在基于标头的应用旁边。

    服务器变量的屏幕截图,例如 UPN、员工 ID 和组授权。

为了提高安全性,阻止对应用程序的直接访问,通过 BIG-IP 强制执行路径。

故障排除

使用以下指南进行疑难解答。

日志详细程度

BIG-IP 日志包含有助于隔离身份验证和 SSO 问题的信息。 增加日志详细级别:

  1. 转到“访问策略”>“概述”>“事件日志”。
  2. 选择“设置”。
  3. 选择已发布应用程序所在的行。
  4. 选择“编辑”>“访问系统日志”。
  5. 从 SSO 列表中,选择“调试”。
  6. 选择“确定”。
  7. 重现此问题。
  8. 查看日志。
  9. 完成后,还原设置。

BIG-IP 错误消息

如果重定向后出现 BIG-IP 错误,则问题可能与从 Microsoft Entra ID 到 BIG-IP 的 SSO 有关。

  1. 导航到“访问策略”>“概述”。
  2. 选择“访问报告”。
  3. 运行过去一小时的报告。
  4. 查看日志以获取线索。
  5. 对于会话,请选择“查看会话变量”链接。
  6. 验证 APM 是否接收到来自 Microsoft Entra ID 的预期声明。

无 BIG-IP 错误消息

如果没有出现 BIG-IP 错误消息,那么问题可能更多地与从 BIG-IP 到后端应用程序的 SSO 有关。

  1. 导航到“访问策略”>“概述”。
  2. 选择“活动会话”。
  3. 选择活动会话的链接。
  4. 选择“查看变量”链接以确定任何 SSO 问题。
  5. 确认 BIG-IP APM 失败或成功获取正确的用户和域标识符。

了解详细信息:

资源