教程:了解如何在 Microsoft Entra ID 与 F5 的 BIG-IP Easy Button 之间配置 SSO 以实现基于标头的 SSO

本教程介绍如何将 F5 与 Microsoft Entra ID 相集成。 将 F5 与 Microsoft Entra ID 集成后,可以:

  • 在 Microsoft Entra ID 中控制谁有权访问 F5。
  • 让用户能够使用其 Microsoft Entra 帐户自动登录到 F5。
  • 在中心位置管理帐户。

注意

F5 BIG-IP APM 立即购买

方案描述

此方案介绍使用 HTTP 授权标头来管理对受保护内容的访问的经典旧版应用程序。

由于该应用程序是旧式应用程序,因此它缺少新式协议来支持与 Microsoft Entra ID 的直接集成。 该应用程序可以成为新式程序,但代价高昂,因为需要仔细规划,并会带来潜在停机时间的风险。 相反,使用 F5 BIG-IP 应用程序传送控制器 (ADC),通过协议转换来弥补旧式应用程序和新式 ID 控制平面之间的差距。

在应用程序前部署 BIG-IP,这样我们能够使用 Microsoft Entra 预身份验证和基于标头的 SSO 覆盖服务,从而显著提高应用程序的总体安全状况。

注意

组织还可以使用 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 ID 对用户进行预身份验证,并应用任何强制实施的条件访问策略
4 用户被重定向到 BIG-IP (SAML SP),并使用已颁发的 SAML 令牌执行 SSO
5 BIG-IP 将 Microsoft Entra 特性作为标头注入到应用程序请求
6 应用程序授权请求并返回有效负载

先决条件

无需 BIG-IP 方面的经验,但需要:

  • Microsoft Entra ID 免费订阅或更高版本。

  • 一个现有的 BIG-IP,或者在 Azure 中部署 BIG-IP Virtual Edition (VE)

  • 以下任意 F5 BIG-IP 许可证 SKU。

    • 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 的用户标识

  • 具有 Microsoft Entra 应用程序管理员权限的帐户。

  • 用于通过 HTTPS 发布服务的 SSL Web 证书(也可以在测试时使用默认 BIG-IP 证书)。

  • 现有的基于标头的 Web 应用程序,或设置一个简单的 IIS 标头应用进行测试。

BIG-IP 配置方法

有许多方法可以为此场景配置 BIG-IP,包括两个基于模板的选项和一个高级配置。 本教程介绍提供 Easy Button 模板的最新引导式配置 16.1。 借助 Easy Button,管理员不用再在 Microsoft Entra ID 和 BIG-IP 之间来回切换以启用 SHA 服务。 部署和策略管理直接在 APM 的引导式配置向导和 Microsoft Graph 之间进行处理。 在 BIG-IP APM 与 Microsoft Entra ID 之间实现了充足集成,可确保应用程序能够轻松快速地支持标识联合、SSO 和 Microsoft Entra 条件访问,从而降低了管理开销。

注意

本指南中引用的所有示例字符串或值都应替换为实际环境中使用的字符串或值。

注册 Easy Button

在客户端或服务可以访问 Microsoft Graph 之前,必须得到 Microsoft 标识平台的信任。

这第一个步骤将创建租户应用注册,该注册用于授权 Easy Button 访问 Graph。 使用这些权限,BIG-IP 就能够推送在已发布应用程序的 SAML SP 实例和作为 SAML IdP 的 Microsoft Entra ID 之间建立信任所需的配置。

  1. 使用具有应用程序管理权限的帐户登录到 Azure 门户

  2. 从左侧导航窗格中,选择 Microsoft Entra ID 服务。

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

  4. 输入应用程序的显示名称,例如 F5 BIG-IP Easy Button

  5. 指定谁能使用应用程序 >“仅此组织目录中的帐户”。

  6. 选择“注册”,完成初始应用注册。

  7. 导航到“API 权限”,并授予以下 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
  8. 向组织授予管理员同意。

  9. 在“证书和机密”边栏选项卡中,生成并记下新的“客户端机密”

  10. 在“概述”边栏选项卡中,记下“客户端 ID”和“租户 ID”。

配置 Easy Button

启动 APM 的引导式配置,以启动 Easy Button 模板。

  1. 导航到“访问”>“引导式配置”>“Microsoft 集成”,然后选择“Microsoft Entra 应用程序”。

    配置 Easy Button 的屏幕截图 - 安装模板。

  2. 查看配置步骤列表,然后选择“下一步”。

    配置 Easy Button 的屏幕截图 - 列出配置步骤。

  3. 按照发布应用程序所需的步骤顺序操作。

    配置步骤流的屏幕截图。

Configuration Properties

“配置属性”选项卡用于创建 BIG-IP 应用程序配置和 SSO 对象。 请考虑“Azure 服务帐户详细信息”部分,该部分用于表示你之前在 Microsoft Entra 租户中注册的客户端(作为应用程序)。 通过这些设置,以及你通常会手动配置的属性,BIG-IP 的 OAuth 客户端可以单独直接在租户中注册 SAML SP。 Easy Button 会为每个为 SHA 发布和启用的 BIG-IP 服务执行此操作。

其中一些是全局设置,可以重复使用这些设置来发布更多应用程序,从而进一步减少部署时间和精力。

  1. 输入唯一的“配置名称”,以便管理员可以轻松区分各个 Easy Button 配置。

  2. 启用“单一登录 (SSO) 和 HTTP 标头”

  3. 输入在租户中注册 Easy Button 客户端时记下的租户 ID、客户端 ID 和客户端密码。

  4. 确认 BIG-IP 可成功连接到租户,然后选择“下一步”。

    “配置属性”、“常规属性”和“服务帐户属性”的屏幕截图。

服务提供商

“服务提供程序”设置为通过 SHA 保护的应用程序的 SAML SP 实例定义属性。

  1. 输入“主机”。 这是受保护的应用程序的公共 FQDN。

  2. 输入“实体 ID”。 这是 Microsoft Entra ID 用于标识请求令牌的 SAML SP 的标识符。

    服务提供商设置的屏幕截图。

    在可选的“安全设置”指定 Microsoft Entra ID 是否应加密颁发的 SAML 断言。 加密 Microsoft Entra ID 与 BIG-IP APM 之间的断言可进一步确保无法截获内容令牌,也不会损害个人或公司数据。

  3. 从“断言解密私钥”列表中,选择“新建”。

    配置 Easy Button 的屏幕截图 - 创建新导入。

  4. 选择“确定” 。 这会在新选项卡中打开“导入 SSL 证书和密钥”对话框。

  5. 选择“PKCS 12 (IIS)”以导入证书和私钥。 预配后,关闭浏览器选项卡以返回到主选项卡。

    配置 Easy Button 的屏幕截图 - 导入新证书。

  6. 选中“启用加密断言”。

  7. 如果已启用加密,请从“断言解密私钥”列表中选择证书。 这是 BIG-IP APM 将用于解密 Microsoft Entra 断言的证书的私钥

  8. 如果已启用加密,请从“断言解密证书”列表中选择证书。 这是 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 模板。 对于此方案,请选择“F5 BIG-IP APM Azure AD 集成”>“添加”。

Azure 配置的屏幕截图,添加 BIG-IP 应用程序。

Azure 配置

  1. 输入 BIG-IP 在 Microsoft Entra 租户中创建的应用的“显示名称”,以及用户将在MyApps 门户上看到的图标。

  2. 请不要在“登录 URL (可选)”中输入任何内容来启用 IdP 发起的登录。

    Azure 配置的屏幕截图,添加显示信息。

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

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

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

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

  6. 将从 Microsoft Entra 租户动态查询用户和用户组,用于授予应用程序访问权限。 添加稍后可用于测试的用户或组,否则将拒绝所有访问。

    Azure 配置的屏幕截图 - 添加用户和组。

用户属性和声明

如果用户通过了身份验证,Microsoft Entra ID 会颁发 SAML 令牌,其中包含唯一标识用户的一组默认声明和属性。 “用户属性和声明”选项卡显示要为新应用程序发布的默认声明。 通过该选项卡,还可以配置更多声明。

对于此示例,可以再包含一个属性:

  1. 为“标头名称”输入“employeeid”。

  2. 为“源属性”输入“user.employeeid”。

    用户属性和声明的屏幕截图。

其他用户属性

在“其他用户属性”选项卡中,你可以启用各种分布式系统(如 Oracle、SAP 和其他需要在其他目录中存储属性的基于 JAVA 的实现)所需的会话增强。 然后,可以将从 LDAP 源提取的属性作为附加 SSO 标头注入,以根据角色、合作伙伴 ID 等进一步控制访问权限。

其他用户属性的屏幕截图。

注意

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

条件性访问策略

条件访问策略在 Microsoft Entra 预身份验证后强制实施,以控制基于设备、应用程序、位置和风险信号的访问。

默认情况下,“可用策略”视图将列出所有不包含基于用户操作的条件访问策略。

默认情况下,“选定策略”视图显示针对所有云应用的所有策略。 不能将这些策略取消选择或移动到“可用策略”列表中,因为它们是在租户级别强制实施的。

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

  1. 在“可用策略”列表中选择所需策略。
  2. 选择向右箭头,将其移动到“选定策略”列表。

“选定策略”应选中“包括”或“排除”选项。 如果两个选项都处于选中状态,则不会强制实施所选策略。

条件访问策略的屏幕截图。

注意

仅在第一次切换到此选项卡时枚举策略列表一次。可以使用“刷新”按钮手动强制向导查询租户,但仅当应用程序已部署后,才会显示此按钮。

虚拟服务器属性

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

  1. 输入“目标地址”。 这是 BIG-IP 可用于接收客户端流量的任何可用 IPv4/IPv6 地址。 在 DNS 中还应该存在对应的记录,使客户端能够将 BIG-IP 发布的应用程序的外部 URL 解析为此 IP,而非该应用程序本身。 可以使用测试 PC 的 localhost DNS 来进行测试。

  2. 为 HTTPS 输入服务端口 443。

  3. 选中“启用重定向端口”,然后输入“重定向端口”。 它将传入的 HTTP 客户端流量重定向到 HTTPS。

  4. 利用客户端 SSL 配置文件,可为 HTTPS 启用虚拟服务器,以便通过 TLS 加密客户端连接。 选择作为先决条件的一部分创建的“客户端 SSL 配置文件”,或者在测试时保留默认值。

    虚拟服务器的屏幕截图。

池属性

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

  1. 从“选择池”中进行选择。 创建新池或选择现有池。

  2. 为“负载均衡方法”选择 Round Robin

  3. 对于“池服务器”,请选择现有节点,或为托管基于标头的应用程序的服务器指定 IP 和端口。

    应用程序池的屏幕截图。

我们的后端应用程序位于 HTTP 端口 80 上,但如果是 HTTPS,则切换到 443。

单一登录和 HTTP 标头

启用 SSO 后,用户无需输入凭据即可访问 BIG-IP 发布的服务。 Easy Button 向导支持适用于 SSO 的 Kerberos、OAuth 持有者和 HTTP 授权标头,接下来我们将启用这些标头来配置以下各项。

  • 标头操作: Insert

  • 标头名称: upn

  • 标头值: %{session.saml.last.identity}

  • 标头操作: Insert

  • 标头名称: employeeid

  • 标头值: %{session.saml.last.attr.name.employeeid}

    SSO 和 HTTP 标头的屏幕截图。

注意

在大括号中定义的 APM 会话变量区分大小写。 例如,如果在将 Microsoft Entra 属性名称定义为 orclguid 时输入 OrclGUID,则会导致属性映射失败。

会话管理

BIG-IP 会话管理设置用于定义要终止用户会话或允许会话继续的条件、用户和 IP 地址的限制,以及相应的用户信息。 有关这些设置的详细信息,请参阅 F5 的文档

但是,本文并未涉及单一注销 (SLO) 功能,该功能可确保 IdP、BIG-IP 和用户代理之间的所有会话在用户注销后终止。 Easy Button 在你的 Microsoft Entra 租户中实例化某个 SAML 应用程序时,还会使用 APM 的 SLO 终结点来填充注销 URL。 这样,IdP 从 Microsoft Entra 我的应用门户启动的注销还可终止 BIG-IP 和客户端之间的会话。

此外,还会从你的租户导入已发布应用程序的 SAML 联合元数据,向该 APM 提供 Microsoft Entra ID 的 SAML 注销终结点。 这可以确保 SP 发起的注销会终止客户端和 Microsoft Entra ID 之间的会话。 但要使此做法真正有效,APM 需要准确获知用户何时从应用程序中注销。

如果使用 BIG-IP Webtop 门户来访问已发布的应用程序,那么,APM 就会处理从该门户中完成的注销,以便也调用 Microsoft Entra ID 注销终结点。 不过,请考虑未使用 BIG-IP Web 门户的情况,在这种情况下用户就无法指示 APM 进行注销。即使用户注销该应用程序本身,BIG-IP 在技术上对此也无法获知。 因此,需要慎重使用 SP 发起的注销,以确保会话在不再需要时安全终止。 一种用于实现此目的的方法是将 SLO 功能添加到应用程序的注销按钮,以便它可以将客户端重定向到 Microsoft Entra SAML 或 BIG-IP 注销终结点。 在“应用注册”>“终结点”中可以找到你的租户的 SAML 注销终结点的 URL。

如果无法更改应用,请考虑让 BIG-IP 侦听应用程序的注销调用,并在检测到请求时让它触发 SLO。 请参考我们的 Oracle PeopleSoft SLO 指导,以便使用 BIG-IP 规则来实现此目的。 有关使用 BIG-IP iRules 来实现此功能的更多详细信息,请参阅 F5 知识文章根据 URI 引用的文件名配置自动会话终止(注销)注销 URI 包括选项概述

总结

最后一步提供配置的详细信息。 选择“部署”以提交所有设置,并验证应用程序现在是否存在于企业应用程序的租户列表中。

你的应用程序现已发布,并可通过 SHA(直接通过其 URL 或通过 Microsoft 的应用程序门户)进行访问。

后续步骤

从浏览器连接到应用程序的外部 URL,或在 Microsoft MyApps 门户中选择应用程序的图标。 向 Microsoft Entra ID 进行身份验证后,你将重定向到应用程序的 BIG-IP 虚拟服务器,并通过 SSO 自动登录。

此时会出现基于标头的应用程序所显示的已注入标头的输出。

应用视图的屏幕截图。

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

高级部署

在某些情况下,引导式配置模板无法实现更具体的要求。 有关这些情况,请参阅基于标头的 SSO 的高级配置

BIG-IP 提供了禁用引导式配置的严格管理模式的选项。 这让你可以手动调整配置,尽管大量配置均通过基于向导的模板自动完成。

可以导航到“访问”“引导式配置”,并选择应用程序配置行最右侧的小挂锁图标。

配置 Easy Button 的屏幕截图 - 严格管理。

此时,不能再通过向导 UI 进行更改,但是与应用程序的已发布实例关联的所有 BIG-IP 对象都将解除锁定,以便进行直接管理。

注意

重新启用严格模式并部署配置将覆盖在引导式配置 UI 之外执行的所有设置,因此,我们建议对生产服务使用高级配置方法。

故障排除

无法访问受 SHA 保护的应用程序可能是由多方面因素造成的。 BIG-IP 日志记录有助于快速隔离连接性、SSO、策略冲突或错误配置的变量映射的各种问题。 通过增加记录详细程度开始进行故障排除。

  1. 导航到“访问策略”>“概述”>“事件日志”>“设置”。

  2. 选择已发布的应用程序所在的行,然后选择“编辑”>“访问系统日志”。

  3. 从“SSO”列表中选择“调试”,然后选择“确定” 。

重现你的问题,然后检查日志,但请记得在完成后切换回去,因为详细模式会生成大量的数据。

如果在成功完成 Microsoft Entra 预身份验证之后紧接着出现包含 BIG-IP 品牌的错误,该问题可能与从 Microsoft Entra ID 向 BIG-IP 执行的 SSO 有关。

  1. 导航到“访问”>“概述”>“访问报告”。

  2. 运行过去一小时的报告,以查看日志中是否提供了任何线索。 会话的“查看会话变量”链接也有助于了解 APM 是否正在从 Microsoft Entra ID 接收预期的声明。

如果你未看到 BIG-IP 错误页,则问题更有可能与从 BIG-IP 向应用程序发出的后端请求或执行的 SSO 有关。

  1. 在这种情况下,请转到“访问策略”>“概述”>“活动会话”,然后选择活动会话的链接。

  2. 此位置的“查看变量”链接也有助于确定 SSO 问题的根本原因,尤其是在 BIG-IP APM 无法从 Microsoft Entra ID 或其他源获取正确属性的情况下。

有关详细信息,请访问此 F5 知识文章为 Active Directory 配置 LDAP 远程身份验证。 这篇关于 LDAP 查询的 F5 知识文章中还有一个很好的 BIG-IP 参考表,可帮助诊断与 LDAP 相关的问题。