使用 Microsoft Entra ID 配置适用于 SSO to SAP ERP 的 F5 BIG-IP Easy Button

本文介绍如何通过 F5 BIG-IP Easy Button 引导式配置,使用 Microsoft Entra ID 保护 SAP ERP。

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

要了解所有权益,请参阅有关 F5 BIG-IP 和 Microsoft Entra 集成以及通过 Microsoft Entra ID 的应用程序访问与单一登录定义的文章。

方案描述

此方案介绍使用 Kerberos 身份验证来管理对受保护内容的访问的经典 SAP ERP 应用程序。

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

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

方案体系结构

此场景的 SHA 解决方案由以下各项构成:

SAP ERP 应用程序:BIG-IP 发布的服务由 Microsoft Entra SHA 保护。

Microsoft Entra ID:安全断言标记语言 (SAML) 标识提供者 (IdP) 负责验证用户凭据、条件访问和 BIG-IP 的基于 SAML 的 SSO。

BIG-IP:应用程序的反向代理和 SAML 服务提供程序 (SP),会在执行基于标头的 SSO 到 SAP 服务之前将身份验证委托给 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 从 KDC 请求 Kerberos 票证
6 BIG-IP 向后端应用程序发送请求,以及 SSO 的 Kerberos 票证
7 应用程序授权请求并返回有效负载

先决条件

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

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

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

  • 以下任意 F5 BIG-IP 许可证产品/服务

    • F5 BIG-IP® Best 捆绑包

    • F5 BIG-IP APM 独立许可证

    • 现有的 BIG-IP F5 BIG-IP® Local Traffic Manager™ (LTM) 上的 F5 BIG-IP APM 加载项许可证

    • 90 天的 BIG-IP 完整功能试用版许可证

  • 从本地目录同步到 Microsoft Entra ID 的用户标识,或直接在 Microsoft Entra ID 中创建并流回本地目录的用户标识

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

  • 用于通过 HTTPS 发布服务的 SSL Web 证书,或者在测试时使用默认 BIG-IP 证书

  • 为 Kerberos 身份验证配置的现有 SAP ERP 环境

BIG-IP 配置方法

有许多方法可以为此场景配置 BIG-IP,包括两个基于模板的选项和一个高级配置。 本文介绍最新的引导配置 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 标识平台的信任。

还必须在 Microsoft Entra ID 中注册 Easy Button 客户端,然后该客户端才能在 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. 通过浏览器登录到 F5 BIG-IP 管理控制台

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

  3. 在“使用以下步骤配置解决方案将创建所需的对象”下查看配置步骤列表,然后选择“下一步”

  4. 在“引导式配置”下,按照发布应用程序所需的步骤顺序进行操作。

配置属性

这些是常规属性和服务帐户属性。 “配置属性”选项卡用于创建 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 身份识别系统

本部分将定义通常用于在 Microsoft Entra 租户中手动配置新的 BIG-IP SAML 应用程序的所有属性。

Easy Button 为 Oracle PeopleSoft、Oracle 电子商务套件、Oracle JD Edwards、SAP ERP 和通用 SHA 模板提供了一组预定义的应用程序模板,适用于任何其他应用。

对于此方案,请在“Azure 配置”页中选择SAP ERP 中心组件>添加以启动 Azure 配置。

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 令牌,其中包含唯一标识用户的一组默认声明和属性。 “用户属性和声明”选项卡显示要为新应用程序发布的默认声明。 通过该选项卡,还可以配置更多声明。

由于我们的示例 AD 基础结构基于内部和外部使用的 .com 域后缀,因此不需要任何其他属性来实现功能性的 KCD SSO 实施。 如需了解有关多个域或用户使用备用后缀登录的情况,请参阅 高级文章

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

如有必要,你可以包括其他 Microsoft Entra 属性,但对于此方案,SAP ERP 只需要默认属性。

其他用户属性

“其他用户属性”选项卡可以支持多种分布式系统,这些系统需要其他目录中存储的属性,以用于会话增强。 然后,可以将从 LDAP 源提取的属性作为附加 SSO 标头注入,以根据角色、合作伙伴 ID 等进一步控制访问权限。

其他用户属性的屏幕截图

注意

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

条件访问策略

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

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

默认情况下,“选定策略”视图显示针对所有资源的所有策略。 这些策略由于在租户级别强制执行,无法取消选择或移动到“可用策略”列表。

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

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

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

条件访问策略的屏幕截图

注意

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

虚拟服务器属性

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

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

  2. 为 HTTPS 输入服务端口 443

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

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

虚拟服务器的屏幕截图

池属性

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

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

  2. 为“负载均衡方法”选择“轮循机制”

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

    应用程序池的屏幕截图

单一登录和 HTTP 标头

启用 SSO 后,用户无需输入凭据即可访问 BIG-IP 发布的服务。 Easy Button 向导支持适用于 SSO 的 Kerberos、OAuth 持有者和 HTTP 授权标头。 需要前面创建的 Kerberos 委派帐户才能完成此步骤。

启用“Kerberos”和“显示高级设置”以输入以下内容:

  • 用户名源:指定要为 SSO 缓存的首选用户名。 可以提供任何会话变量作为用户 ID 的源,但 session.saml.last.identity 往往效果最佳,因为它持有包含已登录用户 ID 的 Microsoft Entra 声明

  • 用户领域源:如果用户域与 BIG-IP 的 Kerberos 领域不同,则此为必填项。 在这种情况下,APM 会话变量将包含已登录用户域。 例如 session.saml.last.attr.name.domain

    SSO 和 HTTP 标头的屏幕截图

  • KDC:域控制器的 IP(如果 DNS 已配置且高效,则为 FQDN)

  • UPN 支持:启用以使 APM 能够将 UPN 用于 Kerberos 票务

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

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

    SSO 方法配置的屏幕截图

会话管理

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

但是此处未介绍单一注销 (SLO) 功能,该功能可确保 IdP、BIG-IP 和用户代理之间的所有会话在用户退出登录后终止。 当 Easy Button 向导将 SAML 应用程序部署到 Microsoft Entra 租户时,它还会使用 APM 的 SLO 终结点填充注销 URL。 这样,IdP 从 Microsoft MyApps 门户发起的注销还可终止 BIG-IP 和客户端之间的会话。

在部署过程中,已发布应用程序的 SAML 联合元数据将从租户导入,并为 Microsoft Entra ID 的 SAML 注销终结点提供 APM。 这可以帮助 SP 发起的注销会终止客户端和 Microsoft Entra ID 之间的会话。

总结

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

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

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

高级部署

在某些情况下,引导配置模板缺乏实现更具体要求的灵活性。 有关这些情况,请参阅基于 Kerberos 的 SSO 的高级配置

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

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

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

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

注意

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

故障排除

你可能无法访问受 SHA 保护的应用程序,原因可归结为许多因素,包括配置错误。

  • Kerberos 区分时间,因此要求将服务器和客户端设置为正确的时间,并在可能的情况下同步到可靠的时间源

  • 确保域控制器和 Web 应用程序的主机名可在 DNS 中解析

  • 通过在域电脑上的命令行中执行 setspn -q HTTP/my_target_SPN 查询,来确保 AD 环境中没有重复的 SPN

可以参考我们的应用程序代理指南来验证 IIS 应用程序是否已针对 KCD 进行了适当的配置。 F5 关于 APM 如何处理 Kerberos SSO 的文章也是一个宝贵的资源。

日志分析

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. 选择活动会话的链接。 此位置中的 “查看变量 ”链接还可能有助于确定根本原因 KCD 问题,特别是如果 BIG-IP APM 无法从会话变量获取正确的用户和域标识符

有关详细信息,请参阅 BIG-IP APM 变量分配示例F5 BIG-IP 会话变量参考