在 vSphere 7.0 及更高版本中,vCenter Server 支持对登录到 vCenter Server 进行联合身份验证。

要启用对 vCenter Server 进行联合身份验证,需要配置与外部身份提供程序的连接。配置的身份提供程序实例会替换 vCenter Server 作为身份提供程序。目前,vCenter Server 支持 Active Directory 联合身份验证服务 (AD FS)、Okta、Microsoft Entra ID(以前称为 Azure AD)和 PingFederate 作为外部身份提供程序。vCenter Server 在 vSphere 7.0 及更高版本中支持 AD FS,在 vSphere 8.0 Update 1 及更高版本中支持 Okta,在 vSphere 8.0 Update 2 及更高版本中支持 Microsoft Entra ID,以及从 vSphere 8.0 Update 3 开始支持 PingFederate。

注: 随着 vSphere 转向基于令牌的身份验证,VMware 建议使用联合身份验证。 vCenter Server 继续拥有本地帐户,用于管理访问和错误恢复。

vCenter Server 身份提供程序联合的工作原理

通过 vCenter Server 身份提供程序联合,可以配置外部身份提供程序,以实现联合身份验证。在此配置中,外部身份提供程序代表 vCenter Server 与标识源进行交互。

vCenter Server 身份提供程序联合基础知识

在 vSphere 7.0 及更高版本中,vCenter Server 支持联合身份验证。在这种情况下,当用户登录到 vCenter Server 时,vCenter Server 会将用户登录重定向到外部身份提供程序。不再直接向 vCenter Server 提供用户凭据。而是,用户向外部身份提供程序提供凭据。vCenter Server 信任外部身份提供程序以执行身份验证。在联合模型中,用户永远不会直接向任何服务或应用程序提供凭据,而是仅向身份提供程序提供凭据。因此,可以将您的应用程序和服务(如 vCenter Server)与您的身份提供程序进行“联合”。

vCenter Server 外部身份提供程序支持

vCenter Server 支持以下外部身份提供程序:

  • AD FS(vSphere 7.0 及更高版本)
  • Okta(vSphere 8.0 Update 1 及更高版本)
  • Microsoft Entra ID,以前称为 Azure AD(vSphere 8.0 Update 2 及更高版本)
  • PingFederate(从 vSphere 8.0 Update 3 开始)

vCenter Server 身份提供程序联合的优势

vCenter Server 身份提供程序联合提供以下优势。

  • 可以将 Single Sign-On 与现有联合基础架构和应用程序配合使用。
  • 可以提高数据中心的安全性,因为 vCenter Server 从不处理用户的凭据。
  • 可以使用外部身份提供程序支持的身份验证机制,例如多因素身份验证。

vCenter Server 身份提供程序联合架构

要在 vCenter Server 和外部身份提供程序之间建立依赖方信任,必须在它们之间建立标识信息和共享密钥。vCenter Server 使用 OpenID Connect (OIDC) 协议接收身份令牌,用于对 vCenter Server 用户进行身份验证。

vCenter Server 配置外部身份提供程序的简要步骤包括:

  1. 通过创建 OIDC 配置,在 vCenter Server 和外部身份提供程序之间建立依赖方信任。对于 AD FS,可以创建应用程序组或应用程序。对于 Okta、Microsoft Entra ID 和 PingFederate,您可以创建一个本机应用程序,并将 OpenID Connect 作为登录方法。OIDC 配置由服务器应用程序和 Web API 组成。这两个组件指定了 vCenter Server 用于信任外部身份提供程序并与之通信的信息。
  2. vCenter Server 中创建相应的身份提供程序。
  3. vCenter Server 中配置组成员资格,以授权来自身份提供程序域中用户的登录。

身份提供程序管理员必须提供以下信息才能创建 vCenter Server 身份提供程序配置:

  • 客户端标识符:创建应用程序组(或应用程序)时在 AD FS 中生成并标识应用程序组(或应用程序)的 UUID 字符串,或者创建 OpenID Connect 应用程序时在 Okta、Microsoft Entra ID 或 PingFederate 中生成的 UUID 字符串。
  • 共享密钥:创建应用程序组(或应用程序)时在 AD FS 中生成的密钥,或者创建 OpenID Connect 应用程序时在 Okta、Microsoft Entra ID 或 PingFederate 中生成的密钥,用于使用外部身份提供程序对 vCenter Server 进行身份验证。
  • OpenID 地址:外部身份提供程序服务器的 OpenID 提供程序发现端点 URL,指定通常作为与路径 /.well-known/openid-configuration 连接的颁发者端点的已知地址。以下是 AD FS 配置的 OpenID 地址示例:
    https://webserver.example.com/adfs/.well-known/openid-configuration
    同样,以下是 Okta 配置的 OpenID 地址示例:
    https://example.okta.com/oauth2/default/.well-known/openid-configuration
    以下是 Microsoft Entra ID 配置的 OpenID 地址示例:
    https://login.microsoftonline.com/11111111-2222-3333-4444-555555555555/v2.0/.well-known/openid-configuration
    以下是 PingFederate 配置的 OpenID 地址示例:
    https://pingfederate-fqdn-and-port/.well-known/openid-configuration

VMware Identity Services 和联合身份验证

在 vSphere 8.0 Update 1 和更高版本中,VMware Identity Services 提供与作为联合身份提供程序的外部身份提供程序的集成。可以将 VMware Identity Services 视为内置于 vSphere 的 VMware Workspace ONE 的“精简”版本。

安装或升级到 vSphere 8.0 Update 1 或更高版本时,vCenter Server 上将默认激活 VMware Identity Services。将 Okta、Microsoft Entra ID 或 PingFederate 配置为外部身份提供程序时,vCenter Server 使用 VMware Identity Services 与 Okta、Microsoft Entra ID 或 PingFederate 服务器进行通信。

vCenter Server 支持在增强型链接模式配置中将 Okta、Microsoft Entra ID 和 PingFederate 作为外部身份提供程序。尽管在增强型链接模式配置中有多个 vCenter Server 系统运行 VMware Identity Services,但只有一个 vCenter Server 及其 VMware Identity Services 与外部身份提供程序服务器进行通信。例如,如果增强型链接模式配置中包含三个 vCenter Server 系统(A、B 和 C),并在 vCenter Server A 上配置 Okta 外部身份提供程序,则 vCenter Server A 是唯一处理所有 Okta 登录的系统。vCenter Server B 和 vCenter Server C 不会直接与 Okta 服务器通信。要在 ELM 配置中的其他 vCenter Server 上配置 VMware Identity Services 以与外部 IDP 服务器进行交互,请参见增强型链接模式配置中的外部身份提供程序激活过程

注: 将 Okta 配置为外部身份提供程序时,增强型链接模式配置中的所有 vCenter Server 系统必须至少运行 vSphere 8.0 Update 1。对于 Microsoft Entra ID,要求至少为 vSphere 8.0 Update 2。对于 PingFederate,要求至少为 vSphere 8.0 Update 3。
警告: 将增强型链接模式配置与 Okta、Microsoft Entra ID 或 PingFederate 结合使用时,PingFederate,无法从 ELM 配置中移除运行 VMware Identity Services 并与身份提供程序通信的 vCenter Server

VMware Identity Services 身份验证过程

vCenter Server 配置为使用 VMware Identity Services 与外部身份提供程序通信时,将执行以下身份验证过程:

  1. 用户通过 vSphere Client 登录到 vCenter Server
  2. vCenter Single Sign-On 委派用户身份验证,并将用户请求重定向到 VMware Identity Services。
  3. VMware Identity Services 进程从外部身份提供程序请求令牌以建立用户会话。
  4. 外部身份提供程序对用户进行身份验证(可以使用多因素身份验证 (MFA) 或 SSO 凭据)并返回令牌以 VMware Identity Services。

    令牌中包含用户声明。

  5. VMware Identity Services 进程验证身份提供程序令牌,生成相应的 VMware Identity Services 令牌,并将 VMware Identity Services 令牌发送到 vCenter Single Sign-On
  6. vCenter Single Sign-On 验证令牌并授予登录请求。
注: AD FS 不使用 VMware Identity Services 进行联合身份验证。

vCenter Server 如何与 SCIM 推送的用户和组交互

配置外部身份提供程序时,vCenter Server 使用跨域身份管理系统 (SCIM) 进行用户和组管理。SCIM 是一种开放标准,用于自动交换用户身份信息。在外部 IDP 服务器上创建的 SCIM 应用程序会管理外部身份提供程序上要推送到 vCenter Server 的用户和组。vCenter Server 在搜索用户和组时也使用 SCIM 向 vCenter Server 对象分配权限。

注: AD FS 配置使用 LDAP 搜索 Active Directory。不使用 SCIM。

vCenter Server 身份提供程序联合组件

以下组件构成了 vCenter Server 身份提供程序联合配置:

  • vCenter Server
    • 对于 AD FS:vCenter Server 7.0 或更高版本
    • 对于 Okta:vCenter Server 8.0 Update 1 或更高版本
    • 对于 Microsoft Entra ID:vCenter Server 8.0 Update 2 或更高版本
    • 对于 PingFederate:vCenter Server 8.0 Update 3
  • vCenter Server 上配置的身份提供程序服务
  • 外部身份提供程序(AD FS、Okta、Microsoft Entra ID 或 PingFederate)
  • OpenID Connect (OIDC) 配置:
    • 对于 AD FS:应用程序组(也称为应用程序)
    • 对于 Okta、Microsoft Entra ID 或 PingFederate:OpenID Connect 应用程序
  • 用于用户和组管理的跨域身份管理系统 (SCIM) 应用程序(仅适用于 Okta、Microsoft Entra ID 或 PingFederate)
  • 映射到 vCenter Server 组和用户的外部身份提供程序组和用户
  • vCenter Server 上启用的 VMware Identity Services(仅适用于 Okta、Microsoft Entra ID 或 PingFederate)
  • (可选)对于 PingFederate,PingFederate 服务器的 SSL 证书或证书链(如果此证书不是由知名公共证书颁发机构颁发)。将 PingFederate SSL 证书导入到 vCenter Server

vCenter Server 身份提供程序局限性和互操作性

vCenter Server 身份提供程序联合可以与许多其他 VMware 功能进行交互操作。

在计划 vCenter Server 身份提供程序联合策略时,请考虑可能的互操作限制。

身份验证机制

vCenter Server 身份提供程序联合配置中,外部身份提供程序处理身份验证机制(密码、MFA、生物识别等)。

AD FS 和单个 Active Directory 域支持

在为 AD FS 配置 vCenter Server 身份提供程序联合时,“配置主身份提供程序”向导将提示您输入包含希望访问 vCenter Server 的用户和组的单个 AD 域的 LDAP 信息。vCenter Server 将从您在向导中指定的用户基本 DN 派生用于授权和权限的 AD 域。只能为此 AD 域中的用户和组添加对 vSphere 对象的权限。vCenter Server 身份提供程序联合不支持 AD 子域中或 AD 林中其他域中的用户或组。

Okta、Microsoft Entra ID 和 PingFederate 支持多个域

在为 Okta、Microsoft Entra ID 或 PingFederate 配置 vCenter Server 身份提供程序联合时,可在“配置主身份提供程序”向导中输入包含希望访问 vCenter Server 的用户和组的多个域的 LDAP 信息。

密码、锁定和令牌策略

vCenter Server 充当身份提供程序时,您可以控制默认域(vsphere.local 或在安装 vSphere 时输入的域名)的 vCenter Server 密码、锁定和令牌策略。将联合身份验证与 vCenter Server 结合使用时,外部身份提供程序可控制存储在标识源(如 Active Directory)中的帐户的密码、锁定和令牌策略。

审核和合规性

使用 vCenter Server 身份提供程序联合时,vCenter Server 会继续为成功用户登录创建日志条目。但是,外部身份提供程序负责跟踪和记录操作,如密码输入尝试失败和用户帐户锁定。vCenter Server 不会记录此类事件,因为这些事件对 vCenter Server 不再可见。例如,当 AD FS 是身份提供程序时,AD FS 跟踪并记录联合登录错误。当 vCenter Server 是用于本地登录的身份提供程序时,vCenter Server 跟踪并记录本地登录错误。在联合配置中,vCenter Server 会继续记录用户的登录后操作。

现有 VMware 产品与外部身份提供程序集成

vCenter Server 集成的 VMware 产品(例如,VMware Aria OperationsvSAN、NSX 等)可继续像以前一样正常工作。

集成登录后的产品

集成登录后的产品(即,不需要单独登录)可继续像以前一样正常工作。

用于 API、SDK 和 CLI 访问的简单身份验证

现有脚本、产品和其他依赖于使用简单身份验证(即,用户名和密码)的 API、SDK 或 CLI 命令的功能可继续像以前一样正常工作。在内部,身份验证是通过传递用户名和密码进行的。这种传递用户名和密码的方式会影响使用身份联合的一些优势,因为它会向 vCenter Server(和您的脚本)暴露密码。请考虑尽可能迁移到基于令牌的身份验证。

访问 vCenter Server 管理界面

如果用户是 vCenter Server 管理员组的成员,则支持访问 vCenter Server 管理界面(以前称为 vCenter Server Appliance 管理界面或 VAMI)。

在 AD FS 登录页面上输入用户名文本

AD FS 登录页面不支持传递文本以预填充用户名文本框。因此,在使用 AD FS 进行联合登录期间,在 vCenter Server 登录页面上输入用户名并重定向到 AD FS 登录页面后,您必须在 AD FS 登录页面上重新输入您的用户名。需要使用您在 vCenter Server 登录页面上输入的用户名将登录重定向到相应的身份提供程序,并且需要 AD FS 登录页面上的用户名才能使用 AD FS 进行身份验证。无法将用户名传递给 AD FS 登录页面是 AD FS 的局限性。您无法直接从 vCenter Server 配置或更改此行为。

支持 IPv6 地址

AD FS、Microsoft Entra ID 和 PingFederate 支持 IPv6 地址。Okta 不支持 IPv6 地址。

VMware Identity Services 单实例配置

默认情况下,安装或升级到 vSphere 8.0 Update 1 或以上版本时,将在 vCenter Server 上启用 VMware Identity Services。在增强型链接模式配置下配置 Okta、Microsoft Entra ID 或 PingFederate 时,使用单个 vCenter Server 系统上的 VMware Identity Services。例如,如果您在包含三个 vCenter Server 系统的增强模式链接配置中使用 Okta,则仅使用一个 vCenter Server 及其 VMware Identity Services 实例与 Okta 服务器进行通信。

警告:

在使用 VMware Identity Services 的 ELM 配置中,如果与外部身份提供程序通信的 vCenter Server 系统变得不可用,您可以在 ELM 配置中的其他 vCenter Server 上配置 VMware Identity Services 以便与外部 IDP 服务器进行交互。请参见增强型链接模式配置中的外部身份提供程序激活过程

重新配置主网络标识符

重新配置 vCenter Server 的主网络标识符 (PNID) 需要按以下方式更新外部身份提供程序配置。

vCenter Server 身份提供程序联合生命周期

管理 vCenter Server 身份提供程序联合的生命周期时,需要考虑一些特定的注意事项。

您可以通过以下方式管理 vCenter Server 身份提供程序联合生命周期。

从使用 Active Directory 迁移到外部身份提供程序

如果使用 Active Directory 作为 vCenter Server 的标识源,则可以直接迁移到使用外部身份提供程序。如果您的 Active Directory 组和角色与您的身份提供程序组和角色匹配,则无需执行任何其他操作。当组和角色不匹配时,您必须执行一些额外的工作。如果 vCenter Server 是域成员,请考虑将其从域中移除,因为身份联合不需要或使用它。

跨域重定向和迁移

vCenter Server 身份提供程序联合支持跨域重新指向,即在 vSphere SSO 域之间移动 vCenter Server。被重新指向的 vCenter Server 将从它被指向的一个或多个 vCenter Server 系统接收复制的身份提供程序配置。

通常,除非满足以下条件之一,否则无需为跨域重新指向执行任何其他身份提供程序重新配置。

  1. 被重新指向的 vCenter Server 的身份提供程序配置不同于它被指向的 vCenter Server 的身份提供程序配置。
  2. 这是被重新指向的 vCenter Server 第一次接收身份提供程序配置。

在这些情况下,需要执行一些额外的工作。例如,对于 AD FS,必须将 vCenter Server 系统的重定向 URI 添加到 AD FS 服务器上的相应应用程序组。例如,如果将具有 AD FS 应用程序组 A(或没有 AD FS 配置)的 vCenter Server 1 重新指向具有 AD FS 应用程序组 B 的 vCenter Server 2,则必须将 vCenter Server 1 的重定向 URI 添加到应用程序组 B。

用户和组同步以及 vCenter Server 备份和还原

根据将用户和组与 vCenter Server 同步的时间以及备份 vCenter Server 的时间,如果必须还原 vCenter Server,可能需要重新同步由 SCIM 推送的用户和组。

要还原已删除的用户或组,不能简单地将用户或组从外部身份提供程序推送到 vCenter Server。必须使用缺失的用户或组更新外部身份提供程序上的 SCIM 2.0 应用程序。请参见还原已删除的 SCIM 用户和组