教程:为基于标头的 SSO 配置 F5 BIG-IP Easy Button

通过 F5 BIG-IP Easy Button 引导式配置 v16.1,了解如何使用 Microsoft Entra ID 保护基于标头的应用程序。

将 BIG-IP 与 Microsoft Entra ID 集成可提供许多好处,具体包括:

了解详细信息:

方案描述

此方案涵盖使用 HTTP 授权标头来管理对受保护内容的访问的旧版应用程序。 旧版应用程序缺少新式协议来支持与 Microsoft Entra ID 的直接集成。 现代化成本高昂、耗时,并会带来停机风险。 相反,可使用 F5 BIG-IP 应用程序传送控制器 (ADC),通过协议转换来弥补旧版应用程序和新式 ID 控制平面之间的差距。

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

注意

组织可以使用 Microsoft Entra 应用程序代理远程访问此应用程序类型。 详细了解:通过 Microsoft Entra 应用程序代理远程访问本地应用程序

方案体系结构

SHA 解决方案包含:

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

对于此方案,SHA 支持 SP 和 IdP 启动的流。 下图演示了 SP 启动的流。

SP 启动的流的配置示意图。

  1. 用户连接到应用程序终结点 (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 的用户标识
  • 用于通过 HTTPS 发布服务的 SSL Web 证书,或者使用默认 BIG-IP 证书进行测试
  • 基于标头的应用程序,或设置一个 IIS 标头应用进行测试

BIG-IP 配置

本教程使用具有 Easy Button 模板的最新引导式配置 v16.1。 有了 Easy Button,管理员无需再来回启用 SHA 服务。 引导式配置向导和 Microsoft Graph 处理部署和策略管理。 BIG-IP APM 和 Microsoft Entra 集成确保应用程序支持联合身份验证、SSO 和条件访问。

注意

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

注册 Easy Button

提示

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

在客户端或服务访问 Microsoft Graph 之前,Microsoft 标识平台必须信任它。

了解详细信息:快速入门:将应用程序注册到 Microsoft 标识平台

创建租户应用注册,以授权 Easy Button 访问 Graph。 有了这些权限,BIG-IP 就能推送配置以在已发布应用程序的 SAML SP 实例和作为 SAML IdP 的 Microsoft Entra ID 之间建立信任。

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

  2. 浏览到“标识”>“应用程序”>“应用注册”>“新建注册”。

  3. 在“管理”下,选择“应用注册”>“新建注册”。

  4. 输入应用程序名称

  5. 指定谁使用应用程序。

  6. 选择“仅此组织目录中的帐户”。

  7. 选择“注册”。

  8. 导航到“API 权限”。

  9. 授权以下 Microsoft Graph 应用程序权限:

    • Application.Read.All
    • Application.ReadWrite.All
    • Application.ReadWrite.OwnedBy
    • Directory.Read.All
    • Group.Read.All
    • IdentityRiskyUser.Read.All
    • Policy.Read.All
    • Policy.ReadWrite.ApplicationConfiguration
    • Policy.ReadWrite.ConditionalAccess
    • User.Read.All
  10. 向组织授予管理员同意。

  11. 在“证书和机密”上,生成新的客户端密码。 记下客户端密码。

  12. 在“概述”上,记下客户端 ID 和租户 ID。

配置 Easy Button

  1. 启动 APM 引导式配置。

  2. 启动 Easy Button 模板。

  3. 导航到“访问”>“引导式配置”。

  4. 选择“Microsoft Integration

  5. 选择“Microsoft Entra 应用程序”。

  6. 查看配置步骤。

  7. 选择“下一步”

  8. 使用图示的步骤顺序发布应用程序。

    发布顺序示意图。

Configuration Properties

使用“配置属性”选项卡创建 BIG-IP 应用程序配置和 SSO 对象。 “Azure 服务帐户详细信息”表示你在 Microsoft Entra 租户中注册的客户端。 使用 BIG-IP OAuth 客户端的设置,通过 SSO 属性在租户中注册 SAML SP。 Easy Button 针对为 SHA 发布和启用的 BIG-IP 服务执行此操作。

可以重复使用设置来发布更多应用程序。

  1. 输入配置名称

  2. 对于“单一登录 (SSO) 和 HTTP 标头”,选择“启用”

  3. 对于“租户 ID”、“客户端 ID”和“客户端密码”,请输入所记录的内容。

  4. 确认 BIG-IP 连接到租户。

  5. 选择“下一步”

    屏幕截图显示配置属性的条目和选项。

服务提供商

在“服务提供程序设置”中,为受 SHA 保护的应用程序定义 SAML SP 实例设置。

  1. 输入主机,即应用程序公共 FQDN。

  2. 输入实体 ID,即 Microsoft Entra ID 用于标识请求令牌的 SAML SP 的标识符。

    服务提供商的输入字段的屏幕截图。

  3. (可选)在“安全设置”中选择“启用加密断言”,使 Microsoft Entra ID 能够加密颁发的 SAML 断言。 Microsoft Entra ID 和 BIG-IP APM 加密断言有助于确保内容令牌不会被截获,也不会泄露个人或公司数据。

  4. 在“安全设置”中,从“断言解密私钥”列表中,选择“新建”。

    屏幕截图显示“断言解密私钥”列表中的“新建”选项。

  5. 选择“确定”。

  6. 此时将显示“导入 SSL 证书和密钥”对话框。

  7. 对于“导入类型”,请选择“PKCS 12 (IIS)”。 此操作将导入证书和私钥。

  8. 对于“证书和密钥名称”,选择“新建”并输入相关内容。

  9. 输入密码

  10. 选择“导入” 。

  11. 关闭浏览器选项卡以返回到主选项卡。

屏幕截图显示 SSL 证书密钥源的选择和条目。

  1. 选中“启用加密断言”框。
  2. 如果启用了加密,请从“断言解密私钥”列表中选择证书。 BIG-IP APM 使用此证书私钥解密 Microsoft Entra 断言。
  3. 如果启用了加密,请从“断言解密证书”列表中选择证书。 BIG-IP 将此证书上传到 Microsoft Entra ID,以加密颁发的 SAML 断言。

屏幕截图显示安全设置的两个条目和一个选项。

Microsoft Entra ID

使用以下说明在 Microsoft Entra 租户中配置新的 BIG-IP SAML 应用程序。 Easy Button 具有适用于 Oracle PeopleSoft、Oracle E-business Suite、Oracle JD Edwards、SAP ERP 的应用程序模板以及通用 SHA 模板。

  1. 在“Azure 配置”中的“配置属性”下,选择“F5 BIG-IP APM Microsoft Entra ID 集成”。
  2. 选择 添加

Azure 配置

  1. 输入 BIG-IP 在 Microsoft Entra 租户中创建的应用显示名称。 用户在 Microsoft“我的应用”上看到带有图标的名称。

  2. 跳过“登录 URL (可选)”。

  3. 在“签名密钥”和“签名证书”旁边,选择“刷新”以找到导入的证书。

  4. 在“签名密钥通行短语”中输入证书密码。

  5. (可选)启用“签名选项”以确保 BIG-IP 接受 Microsoft Entra ID 签名的令牌和声明。

    Azure 配置的屏幕截图 - 添加签名证书信息

  6. 将动态查询“用户和用户组”的输入。

    重要

    添加用于测试的用户或组,否则所有访问都将被拒绝。 在“用户和用户组”上,选择“+ 添加”。

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

用户属性和声明

当用户进行身份验证时,Microsoft Entra ID 会颁发 SAML 令牌,其中包含用于标识用户的声明和属性。 “用户属性和声明”选项卡包含应用程序的默认声明。 使用该令牌来配置更多声明。

包括一个或多个属性:

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

  2. 对于“源属性”,输入 user.employeeid

    “其他声明”下的值的屏幕截图。

其他用户属性

在“其他用户属性”选项卡中,启用会话扩充。 对于需要将属性存储在其他目录中的分布式系统(例如 Oracle、SAP 和其他 JAVA 实现),请使用此功能。 从轻型目录访问协议 (LDAP) 源提取的属性将作为更多 SSO 标头注入。 此操作有助于基于角色、合作伙伴 ID 等控制访问权限。

注意

此功能与 Microsoft Entra ID 无关。 它是一个属性源。 

条件性访问策略

条件访问策略基于设备、应用程序、位置和风险信号控制访问权限。

  • 在“可用策略”中,查找没有用户操作的条件访问策略
  • 在“所选策略”中,查找云应用策略
    • 不能取消选中这些策略或将其移动到“可用策略”,因为它们是在租户级别强制实施的

若要选择将应用于要发布的应用程序的策略,请执行以下操作:

  1. 在“条件访问策略”选项卡上的“可用策略”列表中,选择一个策略。
  2. 选择向右箭头,将其移动到“选定策略”列表。

注意

可以为策略选择“包括”或“排除”选项。 如果同时选择了这两个选项,则策略将取消强制执行。

屏幕截图显示为“所选策略”中的策略选择的“排除”选项。

注意

当你选择“条件访问策略”选项卡时,系统将显示策略列表。请选择“刷新”,向导将查询租户。 应用程序部署后将显示刷新。

虚拟服务器属性

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

  1. 对于“目标地址”,请输入 BIG-IP 用于接收客户端流量的 IPv4 或 IPv6 地址。 确保域名服务器 (DNS) 中有与 BIG-IP 发布的应用程序对应的记录,使客户端能够将外部 URL 解析为此 IP。 可使用计算机的 localhost DNS 进行测试。

  2. 对于“服务端口”,输入 443,然后选择 HTTPS

  3. 选中“启用重定向端口”框。

  4. 输入“重定向端口”的值。 此选项会将传入 HTTP 客户端流量重定向到 HTTPS。

  5. 选择创建的客户端 SSL 配置文件,或者保留默认值以进行测试。 利用客户端 SSL 配置文件,可为 HTTPS 启用虚拟服务器,以便通过 TLS 加密客户端连接。

    屏幕截图显示“虚拟服务器属性”上的目标地址、服务端口和所选配置文件。

池属性

应用程序池”选项卡包含 BIG-IP 背后的服务,这些服务表示为一个池,包含一个或多个应用程序服务器。

  1. 对于“选择池”,选择“新建”,或选择另一个池。

  2. 对于“负载平衡方法”,选择“轮循机制”。

  3. 对于“池服务器”,选择一个节点,或者为托管基于标头的应用程序的服务器选择 IP 地址和端口。

    屏幕截图显示“池属性”上的 IP 地址或节点名称以及端口输入。

    注意

    Microsoft 后端应用程序位于 HTTP 端口 80 上。 如果选择 HTTPS,请使用 443

单一登录和 HTTP 标头

使用 SSO,用户无需输入凭据即可访问 BIG-IP 发布的服务。 Easy Button 向导支持适用于 SSO 的 Kerberos、OAuth 持有者和 HTTP 授权标头。

  1. 在“单一登录和 HTTP 标头”上的“SSO 标头”中,对于“标头操作”,选择“insert”

  2. 对于“标头名称”,使用 upn

  3. 对于“标头值”,使用 %{session.saml.last.identity}

  4. 对于“标头操作”,选择“insert”。

  5. 对于“标头名称”,使用 employeeid

  6. 对于“标头值”,请使用 %{session.saml.last.attr.name.employeeid}

    SSO 标头的条目和选择的屏幕截图。

    注意

    大括号中的 APM 会话变量区分大小写。 不一致会导致属性映射失败。

会话管理

使用 BIG-IP 会话管理设置定义用户会话终止或继续的条件。

若要了解详细信息,请转到 support.f5.com 查看“K18390492:安全性 | BIG-IP APM 操作指南

单一退出登录 (SLO) 可确保 IdP、BIG-IP 和用户代理会话在用户退出登录后终止。当 Easy Button 在 Microsoft Entra 租户中实例化 SAML 应用程序时,还会使用 APM SLO 终结点来填充退出登录 URL。 IdP 发起的从“我的应用”注销会终止 BIG-IP 和客户端会话。

了解详细信息:请参阅我的应用

已发布应用程序的 SAML 联合身份验证元数据是从租户导入的。 导入为 APM 提供了 Microsoft Entra ID 的 SAML 退出登录终结点。 此操作可确保 SP 发起的退出登录能够终止客户端和 Microsoft Entra 会话。 确保 APM 知道用户退出登录的时间。

如果 BIG-IP Webtop 门户访问已发布的应用程序,则 eAPM 将处理退出登录以调用 Microsoft Entra 退出登录终结点。 如果不使用 BIG-IP Webtop 门户,则用户无法指示 APM 退出登录。如果用户退出登录应用程序,则 BIG-IP 也无法获知此情况。 因此,请确保 SP 发起的退出登录安全地终止会话。 可以将 SLO 函数添加到应用程序的“退出登录”按钮,然后,客户端将重定向到 Microsoft Entra SAML 或 BIG-IP 退出登录终结点。 若要查找租户的 SAML 退出登录终结点 URL,请转到“应用注册”>“终结点”。

如果无法更改应用,请启用 BIG-IP 以侦听应用程序退出登录调用并触发 SLO。

了解详细信息:

部署

部署提供了你的配置明细。

  1. 若要提交设置,请选择“部署”。
  2. 验证企业应用程序的租户列表中的应用程序。
  3. 应用程序已发布,并且可通过 SHA(通过其 URL 或在 Microsoft 应用程序门户上)进行访问。

测试

  1. 在浏览器中,连接到应用程序外部 URL,或在“我的应用”中选择应用程序图标。
  2. 对 Microsoft Entra ID 进行身份验证。
  3. 将重定向到应用程序的 BIG-IP 虚拟服务器,并通过 SSO 登录。

以下屏幕截图是从基于标头的应用程序注入的标头输出。

屏幕截图显示“服务器变量”下的 UPN、员工 ID 和事件角色。

注意

你可以阻止对应用程序的直接访问,从而通过 BIG-IP 强制执行路径。

高级部署

在某些情况下,引导式配置模板缺乏灵活性。

了解详细信息:教程:为基于标头的 SSO 配置 F5 BIG-IP 访问策略管理器

在 BIG-IP 中,可以禁用引导式配置严格管理模式。 然后,请手动更改配置,但是大多数配置都是使用向导模板自动执行的。

  1. 若要禁用严格模式,请导航到“访问”>“引导式配置”。

  2. 在应用程序配置的行上,选择挂锁图标。

  3. 与应用程序的已发布实例关联的 BIG-IP 对象都将解除锁定,以便进行管理。 无法再使用向导进行更改。

    挂锁选项的屏幕截图。

    注意

    如果重新启用严格模式并部署配置,则操作将覆盖不在引导式配置中的设置。 建议对生产服务使用高级配置。

疑难解答

在进行故障排除时,请使用以下指导。

日志详细程度

BIG-IP 日志有助于发现连接性、SSO、策略或错误配置的变量映射的问题。 若要进行故障排除,请提高日志详细程度。

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

注意

完成后还原此功能。 详细模式会生成过多的数据。

BIG-IP 错误消息

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

  1. 导航到“访问策略”>“概述”。
  2. 选择“访问报告”。
  3. 运行过去一小时的报告。
  4. 查看日志以获取线索。

使用会话的“查看会话变量”链接来帮助了解 APM 是否接收预期的 Microsoft Entra 声明。

无 BIG-IP 错误消息

如果未显示 BIG-IP 错误消息,则问题可能与后端请求或 BIG-IP 到应用程序的 SSO 有关。

  1. 导航到“访问策略”>“概述”。
  2. 选择“活动会话”。
  3. 选择活动会话链接。

使用“查看变量”链接来帮助确定 SSO 问题,尤其是在 BIG-IP APM 未获取正确属性时。

了解详细信息: