教程:为基于标头的和 LDAP 单一登录配置 F5 BIG-IP Easy Button

在本文中,通过 F5 BIG-IP Easy Button 引导式配置 16.1,了解如何使用 Microsoft Entra ID 保护基于标头和 LDAP 的应用程序。 将 BIG-IP 与 Microsoft Entra ID 集成可提供许多好处:

要了解更多好处,请参阅F5 BIG-IP 和 Microsoft Entra 集成

方案描述

此方案使用源自 LDAP 目录属性的 HTTP 授权标头来介绍经典旧版应用程序,以便管理对受保护内容的访问。

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

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

方案体系结构

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

  • 应用程序 - 由 Microsoft Entra ID 安全混合访问 (SHA) 保护的 BIG-IP 发布服务
  • Microsoft Entra ID - 安全断言标记语言 (SAML) 标识提供者 (IdP) 验证用户凭据、条件访问和对 BIG-IP 的基于 SAM 的 SSO。 通过 SSO,Microsoft Entra ID 为 BIG-IP 提供了所需的会话属性。
  • HR 系统 - 充当应用程序权限真实来源的基于 LDAP 的员工数据库
  • 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 从基于 LDAP 的 HR 系统请求其他属性
  6. BIG-IP 将 Microsoft Entra ID 和 HR 系统属性作为请求中的标头注入到应用程序
  7. 应用程序使用扩充的会话权限授予访问权限

先决条件

以前的 BIG-IP 体验不是必需的,但你需要:

  • 一个 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 标头应用进行测试
  • 支持 LDAP 的用户目录,例如 Windows Active Directory 轻型目录服务 (AD LDS)、OpenLDAP 等。

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 标识平台的信任,然后才能访问 Microsoft Graph。

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

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

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

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

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

  5. 选择“注册”。

  6. 导航到“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
  7. 向组织授予管理员同意。

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

  9. 从“概述”中,记下客户端 ID 和租户 ID。

配置 Easy Button

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

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

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

  3. 若要发布应用程序,请执行以下步骤。

    “引导式配置”上的配置流的屏幕截图。

Configuration Properties

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

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

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

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

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

  4. 确认 BIG-IP 是否可以连接到租户。

  5. 选择“下一步” 。

    “配置属性”上的“常规属性”和“Azure 服务帐户详细信息”条目的屏幕截图。

服务提供商

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

  1. 对于“主机”,请输入要保护的应用程序的公共完全限定的域名 (FQDN)。

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

    “服务提供商”上的“主机”和“实体 ID”条目的屏幕截图。

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

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

    “安全设置”上的“断言解密私钥”下的“新建”选项的屏幕截图。

  2. 选择“确定”。 新标签页中此时打开“导入 SSL 证书和密钥”对话框。

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

    “导入类型”、“证书和密钥名称”、“证书密钥源”和“密码”条目的屏幕截图

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

  5. 如果启用了加密,请从“断言解密私钥”列表中选择证书。 BIG-IP APM 使用此证书私钥解密 Microsoft Entra 断言。

  6. 如果启用了加密,请从“断言解密证书”列表中选择证书。 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 Microsoft Entra ID 集成”>“添加”

Azure 配置

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

  2. “登录 URL (可选)”没有条目。

  3. 若要找到导入的证书,请选择“签名密钥”和“签名证书”旁边的“刷新”图标。

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

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

    “SAML 签名证书”上的“签名密钥”、“签名证书”和“签名密钥通行短语”条目的屏幕截图。

  6. 将从 Microsoft Entra 租户动态查询用户和用户组,并使用这些用户和用户组授予应用程序访问权限。 添加用于测试的用户或组,否则访问将被拒绝。

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

用户属性和声明

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

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

  1. 对于“声明名称”,请输入 employeeid。

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

    “用户属性和声明”上的“其他声明”下的 employeeid 值的屏幕截图。

其他用户属性

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

  1. 启用“高级设置”选项。

  2. 选中“LDAP 属性”复选框。

  3. 在“选择身份验证服务器”中选择“新建”。

  4. 根据设置,选择“使用池”或“直接”服务器连接模式以提供目标 LDAP 服务的“服务器地址”。 如果使用单个 LDAP 服务器,请选择“直接”。

  5. 为“服务端口”输入 389、636(安全)或 LDAP 服务使用的其他端口。

  6. 对于“基本搜索 DN”,请输入位置的可分辨名称,该位置包含 APM 将针对 LDAP 服务查询进行身份验证的帐户。

    “其他用户属性”上的“LDAP 服务器属性”条目的屏幕截图。

  7. 对于“搜索 DN”,请输入位置的可分辨名称,该位置包含 APM 将通过 LDAP 查询的用户帐户对象。

  8. 将这两个成员资格选项设置为“无”,并添加从 LDAP 目录返回的用户对象属性的名称。 对于此方案,设置为 eventtroles。

    “LDAP 查询属性”条目的屏幕截图。

条件性访问策略

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

可用策略”视图列出了不包括用户操作的条件访问策略。

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

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

  1. 在“可用策略”列表中选择策略。

  2. 选择向右箭头,将其移动到“选定策略”列表。

    注意

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

    “条件访问策略”上的“所选策略”下的已排除策略的屏幕截图。

    注意

    最初选择此选项卡时,会枚举一次策略列表。使用“刷新”按钮手动强制向导查询租户。 部署应用程序时会显示此按钮。

虚拟服务器属性

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

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

  2. 对于“服务端口”,输入 443 和 HTTPS。

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

  4. 利用客户端 SSL 配置文件,可为 HTTPS 启用虚拟服务器,以便通过传输层安全性 (TLS) 加密客户端连接。 选择创建的客户端 SSL 配置文件,或者在测试时保留默认值。

    “虚拟服务器属性”上的“常规属性”下的“目标地址”、“服务端口”和“通用”条目的屏幕截图。

池属性

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

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

  2. 选择“负载均衡方法”,例如“轮循机制”。

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

    “池属性”上的“应用程序池”下的“IP 地址/节点名称”和“端口”条目的屏幕截图。

注意

后端应用程序在 HTTP 端口 80 上运行。 如果使用的是 HTTPS,请切换为 443。

单一登录和 HTTP 标头

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

使用以下列表配置选项。

  • 标头操作:插入

  • 标头名称:upn

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

  • 标头操作:插入

  • 标头名称:employeeid

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

  • 标头操作:插入

  • 标头名称:eventroles

  • 标头值:%{session.ldap.last.attr.eventroles}

    SSO 和 HTTP 标头上的 SSO 标头下的 SSO 标头条目的屏幕截图。

注意

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

会话管理设置

BIG-IP 会话管理设置定义要终止用户会话或允许会话继续的条件、用户和 IP 地址的限制,以及相应的用户信息。 请参阅 F5 文章 K18390492:安全性 | BIG-IP APM 操作指南,了解这些设置的详细信息。

但是此处未介绍单一退出登录 (SLO) 功能,该功能可确保 IdP、BIG-IP 和用户代理之间的会话在用户退出登录后终止。Easy Button 在 Microsoft Entra 租户中实例化 SAML 应用程序时,还会使用 APM SLO 终结点来填充退出登录 URL。 IdP 从 Microsoft Entra“我的应用”门户发起的退出登录可终止 BIG-IP 和客户端之间的会话。

已发布应用程序的 SAML 联合元数据将从租户导入,为 Microsoft Entra ID 的 SAML 退出登录终结点提供 APM。 此操作可确保 SP 发起的退出登录能终止客户端与 Microsoft Entra ID 之间的会话。 APM 需要知道用户何时退出登录应用程序。

如果使用 BIG-IP Webtop 门户访问已发布的应用程序,则 APM 将处理退出登录以调用 Microsoft Entra 退出登录终结点。 但请思考一个不使用 BIG-IP webtop 门户的场景。 用户无法指示 APM 退出登录。即使用户退出登录应用程序,也不会影响 BIG-IP。 因此需要考虑 SP 发起的退出登录,以确保会话安全终止。 可以将 SLO 函数添加到应用程序的“退出登录”按钮,以便将客户端重定向到 Microsoft Entra SAML 或 BIG-IP 退出登录终结点。 在“应用注册”>“终结点”中可以找到你的租户的 SAML 退出登录终结点 URL。

如果无法更改应用,请考虑让 BIG-IP 侦听应用程序的退出登录调用,并在检测到请求时让它触发 SLO。 请参阅 Oracle PeopleSoft SLO 指南了解 BIG-IP iRules。 有关使用 BIG-IP iRules 的详细信息,请参阅:

摘要

最后一步提供配置的详细信息。

选择“部署”以提交设置,并验证应用程序是否在企业应用程序的租户列表中。

你的应用程序已发布,并可通过 SHA(通过其 URL 或通过 Microsoft 应用程序门户)进行访问。 为提高安全性,使用此模式的组织可以阻止对应用程序的直接访问。 此操作强制要求使用严格的路径通过 BIG-IP 进行访问。

后续步骤

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

请参阅以下屏幕截图,了解基于标头的应用程序中注入标头的输出。

“我的事件”中的“服务器变量”下的输出值的屏幕截图。

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

高级部署

引导式配置模板可能缺乏实现特定要求的灵活性。

在 BIG-IP 中,可以禁用引导式配置严格管理模式。 你可以手动更改配置,尽管大部分配置都是通过基于向导的模板自动完成的。

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

挂锁选项的屏幕截图。

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

注意

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

故障排除

BIG-IP 日志记录

BIG-IP 日志记录有助于发现连接性、SSO、策略冲突或错误配置的变量映射的问题。

若要进行故障排除,可以提高日志详细程度级别。

  1. 导航到“访问策略”>“概述”>“事件日志”>“设置”。
  2. 选择已发布的应用程序所在的行,然后选择“编辑”>“访问系统日志”。
  3. 从“SSO”列表中选择“调试”,然后选择“确定”。

重现问题,然后检查日志,但在完成后恢复此设置。 详细模式会生成大量数据。

BIG-IP 错误页面

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

  1. 导航到“访问”>“概述”>“访问报告”。
  2. 运行过去一小时的报告,以查看日志中是否提供了任何线索。
  3. 使用会话的查看变量链接了解 APM 是否正在从 Microsoft Entra ID 接收预期的声明。

后端请求

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

  1. 导航到“访问策略”>“概述”>“活动会话”,然后选择活动会话的链接。
  2. 使用查看变量链接有助于确定 SSO 问题的根本原因,尤其是在 BIG-IP APM 无法从 Microsoft Entra ID 或其他源获取正确属性的情况下。

验证 APM 服务帐户

若要验证用于 LDAP 查询的 APM 服务帐户,请使用 BIG-IP bash shell 中的以下命令。 确认对用户对象进行的身份验证和查询。

ldapsearch -xLLL -H 'ldap://192.168.0.58' -b "CN=partners,dc=contoso,dc=lds" -s sub -D "CN=f5-apm,CN=partners,DC=contoso,DC=lds" -w 'P@55w0rd!' "(cn=testuser)"

有关详细信息,请参阅 F5 文章 K11072:为 Active Directory 配置 LDAP 远程身份验证。 可以使用 BIG-IP 参考表来帮助诊断 AskF5 文档 LDAP 查询中的 LDAP 相关问题。