教程:为基于标头的单一登录配置 F5 BIG-IP 访问策略管理器
了解如何使用 F5 BIG-IP 高级配置通过对基于标头的应用程序的单一登录 (SSO) 实现安全混合访问 (SHA)。 BIG-IP 发布的应用和 Microsoft Entra 配置权益:
- 通过 Microsoft Entra 预身份验证和条件访问改进了零信任治理
- Microsoft Entra ID 与 BIG-IP 已发布服务之间的完整 SSO
- 从一个控制平面管理标识和访问
了解详细信息:
方案描述
对于此方案,可使用旧版应用程序(使用 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 和应用程序的用户流。
- 用户连接到应用程序 SAML SP 终结点 (BIG-IP)。
- BIG-IP APM 访问策略将用户重定向到 Microsoft Entra ID (SAML IdP)。
- Microsoft Entra 对用户进行预身份验证,并应用条件访问策略。
- 用户被重定向到 BIG-IP (SAML SP),并使用颁发的 SAML 令牌执行 SSO。
- BIG-IP 将 Microsoft Entra 特性作为标头注入到应用程序请求。
- 应用程序授权请求并返回有效负载。
先决条件
对于该方案,需要:
- 一个 Azure 订阅
- 如果没有,获取一个 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 发布服务)或者在测试时使用默认证书
- 请参阅 SSL 配置文件
- 用于测试的基于标头的应用或 IIS 标头应用
BIG-IP 配置方法
以下说明是高级配置方法,是实现 SHA 的一种灵活方式。 手动创建 BIG-IP 配置对象。 对于引导式配置模板中未包含的方案,请使用此方法。
注意
请将示例字符串或值替换为你环境中的字符串或值。
从 Microsoft Entra 库添加 F5 BIG-IP
提示
本文中的步骤可能因开始使用的门户而略有不同。
要实现 SHA,第一步是在 BIG-IP APM 和 Microsoft Entra ID 之间建立 SAML 联盟信任。 信任建立了 BIG-IP 的集成,以便在授予对已发布服务的访问权限之前,将预身份验证和条件访问移交给 Microsoft Entra ID。
详细了解:什么是条件访问?
至少以云应用程序管理员身份登录到 Microsoft Entra 管理中心。
浏览到“标识”>“应用程序”>“企业应用程序”>“所有应用程序”。
在顶部功能区上,选择”+ 新建应用”。
在库中,搜索 F5。
请选择“F5 BIG-IP APM Microsoft Entra ID 集成”。
输入应用程序名称。
选择“添加/创建”。
名称反映了服务。
配置 Microsoft Entra SSO
新的 F5 应用属性会出现
选择“管理”>“单一登录”
在“选择单一登录方法”页上选择“SAML” 。
跳过保存单一登录设置的提示。
选择“否,稍后保存”。
在“设置 SAML 单一登录”时,为“基本 SAML 配置”选择“笔”图标。
将标识符 URL 替换为 BIG-IP 发布的服务 URL。 例如:
https://mytravel.contoso.com
对“回复 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 模式。
对于“注销 URL”,请输入 BIG-IP APM 单一退出登录 (SLO) 终结点,以服务主机头作为前缀。 SLO URI 确保用户 BIG-IP APM 会话在 Microsoft Entra 注销后结束。例如,
https://mytravel.contoso.com/saml/sp/profile/redirect/slr
注意
从流量管理操作系统 (TMOS) v16 开始,SAML SLO 终结点更改为
/saml/sp/profile/redirect/slo
。选择“保存”。
退出 SAML 配置。
跳过 SSO 测试提示。
要编辑“用户属性和声明”>“+ 添加新声明”,请选择“笔”图标。
选择 Employeeid 作为“名称”。
选择 user.employeeid 作为“源属性”。
选择“保存”
- 选择“+ 添加组声明”
- 选择“分配给应用程序的组”>“源属性”>“sAMAccountName”。
- 选择“保存”配置。
- 关闭视图。
- 观察“用户属性和声明”部分属性。 Microsoft Entra ID 向用户颁发 BIG-IP APM 身份验证和 SSO 的属性给后端应用程序。
注意
添加 BIG-IP 发布的应用期望作为标头的其他声明。 如果在 Microsoft Entra ID 中,则会发布更多定义的声明。 在发布声明之前,在 Microsoft Entra ID 中定义目录成员身份和用户对象。 请参阅使用 Microsoft Entra ID 为应用程序配置组声明。
- 在“SAML 签名证书”部分中,选择“下载”。
- 联合元数据 XML 文件将保存到计算机。
Microsoft Entra ID 创建的 SAML 签名证书的有效期为三年。
Microsoft Entra 授权
默认情况下,Microsoft Entra ID 仅向已被授予应用程序访问权限的用户颁发令牌。
- 在应用程序的配置视图中,选择“用户和组”。
- 选择“+ 添加用户”,然后在“添加分配”中,选择“用户和组”。
- 在“用户和组”对话框中,添加有权访问基于标头的应用的用户组。
- 选择“选择”。
- 选择“分配”。
Microsoft Entra SAML 联合身份验证信任已完成。 接下来,设置 BIG-IP APM 以发布 Web 应用,并配置属性以完成 SAML 预身份验证信任。
高级配置
使用以下部分配置 SAML、标头 SSO、访问配置文件等。
SAML 配置
要通过 Microsoft Entra ID 对已发布的应用程序进行联合身份验证,请创建 BIG-IP SAML 服务提供程序和相应的 SAML IdP 对象。
选择“访问”>“联合”>“SAML 服务提供程序”>“本地 SP 服务”>“创建”。
输入“名称”。
输入在 Microsoft Entra ID 中定义的“实体 ID”。
对于“SP 名称设置”,如果实体 ID 与发布的 URL 的主机名不匹配,请进行选择;如果不是常规的基于主机名的 URL 格式,则进行选择。 如果实体 ID 为
urn:mytravel:contosoonline
,请提供外部方案和应用程序主机名。向下滚动以选择新的“SAML SP 对象”。
选择“绑定/取消绑定 IdP 连接器”。
选择“创建新的 IdP 连接器”。
从下拉列表中,选择“从元数据”。
浏览到下载的联合元数据 XML 文件。
为外部 SAML IdP 的 APM 对象输入“标识提供者名称”。 例如:
MyTravel_EntraID
- 选择“添加新行”。
- 选择新的 SAML IdP 连接器。
- 选择“更新”。
- 选择“确定”。
标头 SSO 配置
创建 APM SSO 对象。
选择“访问”>“配置文件/策略”>“每个请求策略”>“创建”。
输入“名称”。
至少添加一种“接受的语言”。
选择“完成”。
对于新的每个请求策略,请选择“编辑”。
会启动视觉策略编辑器。
在“回退”下,选择 + 符号。
在“常规用途”选项卡上,选择“HTTP 标头”>“添加项目”。
选择“添加新条目”。
创建三个 HTTP 和标头修改条目。
对于“标头名称”,输入 upn。
对于“标头值”,输入 %{session.saml.last.identity}。
对于“标头名称”,输入 employeeid。
对于“标头值”,输入 %{session.saml.last.attr.name.employeeid}。
对于“标头名称”,输入 group_authz。
对于“标头值”,输入 %{session.saml.last.attr.name.
http://schemas.microsoft.com/ws/2008/06/identity/claims/groups
}。
注意
大括号中的 APM 会话变量区分大小写。 我们建议以小写形式定义属性。
- 选择“保存”。
- 关闭视觉策略编辑器。
访问配置文件配置
访问配置文件绑定了许多 APM 元素,包括访问策略、SSO 配置和 UI 设置,这些元素用于管理对 BIG-IP 虚拟服务器的访问权限。
选择“访问”>“配置文件/策略”>“访问配置文件 (每会话策略)”>“创建”。
对于“名称”,输入 MyTravel。
对于“配置文件类型”,选择“全部”。
对于“接受的语言”,选择至少一种语言。
选择“完成”。
选择创建的按会话配置文件对应的“编辑”。
会启动视觉策略编辑器。
在“回退”下,选择 + 符号。
选择“身份验证”>“SAML 身份验证”>“添加项”。
对于 SAML 身份验证 SP 配置,从 AAA 服务器下拉列表中,选择创建的 SAML SP 对象。
选择“保存”。
属性映射
以下说明是可选的。 使用 LogonID_Mapping 配置时,BIG-IP 活动会话列表具有已登录用户主体名称 (UPN),而不是会话编号。 在分析日志或进行疑难解答时使用此数据。
对于“SAML 身份验证成功”分支,选择 + 符号。
在弹出窗口中选择“分配”>“变量分配”>“添加项”。
输入名称
在“变量分配”部分中,选择“添加新项”>“更改”。 例如 LogonID_Mapping。
对于“自定义变量”,请设置 session.saml.last.identity。
对于“会话变量”,请设置 session.logon.last.username。
选择“完成”。
选择“保存”。
在“访问策略成功”分支上,选择“拒绝”终端。
选择“允许”。
选择“保存”。
选择“添加访问策略”。
关闭视觉策略编辑器。
后端池配置
要使 BIG-IP 能够正确转发客户端流量,请创建 APM 节点对象,表示承载应用程序的后端服务器。 将节点放置在 APM 池中。
选择“本地流量>池>”池列表“>创建”。
对于服务器池对象,请输入“名称”。 例如 MyApps_VMs。
添加池成员对象。
在“节点名称”中,输入承载后端 Web 应用程序的服务器的名称。
对于“地址”,输入承载应用程序的服务器的 IP 地址。
对于“服务器端口”,输入应用程序正在侦听的 HTTP/S 端口。
选择 添加 。
注意
要了解更多信息,请访问 my.f5.com 了解 K13397:BIG-IP DNS 系统的 HTTP 健康监视器请求格式概述。
虚拟服务器配置
虚拟服务器是一个 BIG-IP 数据平面对象,由虚拟 IP 地址表示,用于侦听客户端向应用程序发出的请求。 使用与虚拟服务器相关联的 APM 访问配置文件来处理和评估接收到的流量。 流量会根据策略进行定向。
选择“本地流量”>“虚拟服务器”>“虚拟服务器列表”>“创建”。
输入虚拟服务器名称。
对于“目标地址/掩码”,选择“主机”
输入要分配给 BIG-IP 以接收客户端流量的未使用 IP IPv4 或 IPv6。
对于“服务端口”,选择“端口”、“443”和“HTTPS”。
对于“HTTP 配置文件(客户端)”,选择“http”。
对于“SSL 配置文件(客户端)”,选择创建的客户端 SSL 配置文件,或者保留默认值以进行测试。
对于“源地址转换”,选择“自动映射”。
对于“访问策略”,选择前面创建的“访问配置文件”。 此操作会将 Microsoft Entra SAML 预身份验证配置文件和标头 SSO 策略绑定到虚拟服务器。
对于“每个请求策略”,选择“SSO_Headers”。
- 选择创建的后端池对象作为“默认池”。
- 选择“完成”。
会话管理
使用 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。 若要了解详细信息,请访问以下链接:
- 转到 support.f5.com 以获取 K42052145:根据 URI 引用的文件名配置自动会话终止(注销)
- 转到 my.f5.com 以获取 K12056“退出登录 URI 包括”选项概述
部署
- 选择“部署”以提交设置。
- 验证应用是否出现在租户中。
- 应用程序已发布,并且可通过 SHA、通过其 URL 或 Microsoft 门户进行访问。
测试
以用户身份执行以下测试。
选择应用程序外部 URL,或者在 MyApps 门户中选择应用程序图标。
对 Microsoft Entra ID 进行身份验证。
将重定向到应用的 BIG-IP 虚拟服务器,并通过 SSO 登录。
注入标头输出显示在基于标头的应用旁边。
为了提高安全性,阻止对应用程序的直接访问,通过 BIG-IP 强制执行路径。
故障排除
使用以下指南进行疑难解答。
日志详细程度
BIG-IP 日志包含有助于隔离身份验证和 SSO 问题的信息。 增加日志详细级别:
- 转到“访问策略”>“概述”>“事件日志”。
- 选择“设置”。
- 选择已发布应用程序所在的行。
- 选择“编辑”>“访问系统日志”。
- 从 SSO 列表中,选择“调试”。
- 选择“确定”。
- 重现此问题。
- 查看日志。
- 完成后,还原设置。
BIG-IP 错误消息
如果重定向后出现 BIG-IP 错误,则问题可能与从 Microsoft Entra ID 到 BIG-IP 的 SSO 有关。
- 导航到“访问策略”>“概述”。
- 选择“访问报告”。
- 运行过去一小时的报告。
- 查看日志以获取线索。
- 对于会话,请选择“查看会话变量”链接。
- 验证 APM 是否接收到来自 Microsoft Entra ID 的预期声明。
无 BIG-IP 错误消息
如果没有出现 BIG-IP 错误消息,那么问题可能更多地与从 BIG-IP 到后端应用程序的 SSO 有关。
- 导航到“访问策略”>“概述”。
- 选择“活动会话”。
- 选择活动会话的链接。
- 选择“查看变量”链接以确定任何 SSO 问题。
- 确认 BIG-IP APM 失败或成功获取正确的用户和域标识符。
了解详细信息:
- 转到 devcentral.f5.com 查看 APM 变量分配示例
- 转到 techdocs.f5.com 获取 BIG-IP 访问策略管理器:视觉策略编辑器