Citrix Cloud™

将 Okta 作为身份提供程序连接到 Citrix Cloud™

Citrix Cloud 支持使用 Okta 作为身份提供程序来验证登录其商店的最终用户。通过将您的 Okta 组织连接到 Citrix Cloud,您可以为最终用户提供统一的登录体验,以访问 Citrix® StoreFront Cloud 中的资源。

在 StoreFront Cloud 中启用 Okta 身份验证后,最终用户将获得不同的登录体验。选择 Okta 身份验证提供的是联合登录,而不是单点登录。最终用户从 Okta 登录页面登录商店,但当他们从 Citrix DaaS(以前称为 Citrix Virtual Apps and Desktops 服务)打开应用程序或桌面时,可能需要再次进行身份验证。要启用单点登录并防止第二次登录提示,您需要将 Citrix 联合身份验证服务与 Citrix Cloud 结合使用。有关详细信息,请参阅 将 Citrix 联合身份验证服务连接到 Citrix Cloud

先决条件

云连接器或连接器设备

需要 Cloud Connector 或 Connector Appliance 才能在 Citrix Cloud 与您的 资源位置 之间建立通信。至少需要两个 Cloud Connector 或 Connector Appliance 才能确保与 Citrix Cloud 建立高可用性连接。您需要至少两个已加入 Active Directory 域的 Connector。这些可以是 Cloud ConnectorConnector Appliance

Connector 必须满足以下要求:

  • 满足其各自文档中描述的要求
  • 已加入您的 Active Directory (AD) 域。如果您的商店用户位于多个域中,可以使用 Connector Appliance 多域功能 来加入多个域。
  • 连接到可以联系用户通过云商店访问的资源的网络。
  • 连接到 Internet。有关详细信息,请参阅 系统和连接要求

有关安装 Cloud Connector 的详细信息,请参阅 Cloud Connector 安装。 有关安装 Connector Appliance 的详细信息,请参阅 Connector Appliance 安装

Okta 域

将 Okta 连接到 Citrix Cloud 时,您必须提供您组织的 Okta 域。Citrix 支持以下 Okta 域:

  • okta.com
  • okta-eu.com
  • oktapreview.com

您也可以将 Okta 自定义域与 Citrix Cloud 结合使用。请查看有关使用自定义域的重要注意事项,具体请参阅 Okta 网站上的自定义 Okta URL 域

有关查找组织的自定义域的更多信息,请参阅 Okta 网站上的查找您的 Okta 域

Okta OIDC Web 应用程序

要将 Okta 用作身份提供程序,您必须首先创建一个 Okta OIDC Web 应用程序,其中包含可与 Citrix Cloud 结合使用的客户端凭据。创建并配置应用程序后,请记下客户端 ID 和客户端密钥。在连接 Okta 组织时,您需要将这些值提供给 Citrix Cloud。

要创建和配置此应用程序,请参阅本文中的以下部分:

应用商店 URL

创建 Okta 应用程序时,您必须提供 Citrix Cloud 中的应用商店 URL。要找到应用商店 URL,请从 Citrix Cloud 菜单中选择 StoreFront Cloud。应用商店 URL 显示在 “访问” 选项卡上。

重要提示:

如果您以后修改应用商店 URL,则必须使用新 URL 更新 Okta 应用程序配置。否则,您的最终用户在从其应用商店注销时可能会遇到问题。

Okta API 令牌

将 Okta 用作 Citrix Cloud 的身份提供程序需要为您的 Okta 组织提供一个 API 令牌。使用 Okta 组织中的只读管理员帐户创建此令牌。此令牌必须能够读取 Okta 组织中的用户和组。

要创建 API 令牌,请参阅本文中的 创建 Okta API 令牌。有关 API 令牌的更多信息,请参阅 Okta 网站上的 创建 API 令牌

重要提示:

创建 API 令牌时,请记下令牌值(例如,暂时将该值复制到纯文本文档中)。Okta 只显示此值一次,因此您可以在执行 将 Citrix Cloud 连接到您的 Okta 组织 中的步骤之前创建令牌。

使用 Okta AD 代理将 Active Directory 帐户同步到 Okta

要将 Okta 用作身份提供程序,您必须首先将本地 AD 与 Okta 集成。为此,您需要在域中安装 Okta AD 代理,并将您的 AD 添加到 Okta 组织。有关部署 Okta AD 代理的指导,请参阅 Okta 网站上的 Active Directory 集成入门

之后,将您的 AD 用户和组导入 Okta。导入时,请包含与您的 AD 帐户关联的以下值:

  • 电子邮件
  • SID
  • UPN
  • OID

注意:

如果您将 Citrix Gateway 服务与 Store 结合使用,则无需将 AD 帐户与 Okta 组织同步。

要将 AD 用户和组与 Okta 组织同步:

  1. 安装并配置 Okta AD 代理。有关完整说明,请参阅 Okta 网站上的以下文章:
  2. 通过手动导入或自动导入,将您的 AD 用户和组添加到 Okta。有关 Okta 导入方法和说明的更多信息,请参阅 Okta 网站上的 管理 Active Directory 用户和组

创建 Okta OIDC Web 应用程序集成

  1. 在 Okta 管理控制台中,在 应用程序 下,选择 应用程序
  2. 选择 创建应用程序集成
  3. 登录方法 中,选择 OIDC - OpenID Connect
  4. 应用程序类型 中,选择 Web 应用程序。选择 下一步
  5. 应用程序集成名称 中,输入应用程序集成的友好名称。
  6. 授权类型 中,选择 授权码(默认选中)。
  7. 登录重定向 URI 中,输入 https://accounts.cloud.com/core/login-okta
    • 如果您的 Citrix Cloud 客户位于欧盟、美国或亚太南部地区,请输入 https://accounts.cloud.com/core/login-okta
    • 如果您的 Citrix Cloud 客户位于日本地区,请输入 https://accounts.citrixcloud.jp/core/login-okta
    • 如果您的 Citrix Cloud 客户位于 Citrix Cloud Government 地区,请输入 https://accounts.cloud.us/core/login-okta
  8. 注销重定向 URI 中,输入您在 Citrix Cloud 中的商店 URL。
  9. 如果您还使用商店自定义域,则也需要输入此项。例如
    • https://workspaceurl1.cloud.com
    • https://workspaceurl2.cloud.com
    • https://workspaceurl1.mycustomdomain.com
  10. 分配 下的 受控访问 中,选择是将应用程序集成分配给组织中的所有人、仅分配给您指定的组,还是稍后分配访问权限。
  11. 选择 保存。保存应用程序集成后,控制台将显示应用程序配置页面。
  12. 客户端凭据 部分,复制 客户端 ID客户端密钥 值。当您将 Citrix Cloud 连接到您的 Okta 组织时,将使用这些值。

配置 Okta OIDC Web 应用程序

在此步骤中,您将使用 Citrix Cloud 所需的设置配置您的 Okta OIDC Web 应用程序。Citrix Cloud 需要这些设置,以便在最终用户登录其商店时通过 Okta 对其进行身份验证。

  1. (可选)更新隐式授权类型的客户端权限。如果您希望为此授权类型授予最少权限,则可以选择执行此步骤。
    1. 在 Okta 应用程序配置页面上,在 常规 选项卡中,滚动到 常规设置 部分并选择 编辑
    2. 应用程序 部分的 授权类型 中,在 代表用户操作的客户端 下,清除 允许使用隐式授权类型访问令牌 设置。

      Okta OIDC 授权类型

    3. 选择 保存
  2. 添加应用程序属性。这些属性区分大小写。
    1. 在 Okta 控制台菜单中,选择 Directory > Profile Editor
    2. 选择 Okta User (default) 配置文件。Okta 显示 User 配置文件页面。

      Okta OIDC 用户配置文件

    3. Attributes 下,选择 Add attribute

      Okta OIDC 添加属性

    4. 输入以下信息:
      • 显示名称: cip_email
      • 变量名称: cip_email
      • 描述: AD User Email
      • 属性长度: 选择 Greater than,然后输入 1
      • 属性必填: 是

        Okta OIDC 添加属性 2

    5. 选择 保存并添加另一个
    6. 输入以下信息:
      • 显示名称: cip_sid
      • 变量名称: cip_sid
      • 描述: AD 用户安全标识符
      • 属性长度: 选择 大于,然后输入 1
      • 属性必填: 是
    7. 选择 保存并添加另一个
    8. 输入以下信息:
      • 显示名称: cip_upn
      • 变量名称: cip_upn
      • 描述: AD 用户主体名称
      • 属性长度: 选择 大于,然后输入 1
      • 属性必填: 是
    9. 选择 保存并添加另一个
    10. 输入以下信息:
      • 显示名称: cip_oid
      • 变量名: cip_oid
      • 描述: AD User GUID
      • 属性长度: 选择 大于,然后输入 1
      • 属性必填: 是
    11. 选择 保存
  3. 编辑应用程序的属性映射:
    1. 在 Okta 控制台中,选择 Directory > Profile Editor > Directories
    2. 找到您的 AD 的 active_directory 配置文件。此配置文件可能使用 myDomain User 格式标记,其中 myDomain 是您集成的 AD 域的名称。

      Okta OIDC 目录映射

    3. 选择 Mappings。将显示您的 AD 域的用户配置文件映射页面,并已选择将您的 AD 映射到 Okta 用户的选项卡。

      Okta OIDC 选择配置映射

    4. Okta 用户配置文件 列中,找到您在步骤 2 中创建的属性,并按如下方式映射:

      Okta OIDC 目录配置文件映射1

      Okta OIDC 目录配置文件映射2

      • 对于 cip_email,从您的域的用户配置文件列中选择 email。选择后,映射将显示为 appuser.email
      • 对于 cip_sid,从您域的“用户配置文件”列中选择 objectSid。选中后,映射显示为 appuser.objectSid
      • 对于 cip_upn,从您域的“用户配置文件”列中选择 userName。选中后,映射显示为 appuser.userName
      • 对于 cip_oid,从您域的“用户配置文件”列中选择 externalId。选中后,映射显示为 appuser.externalId
    5. 选择 保存映射
    6. 选择 立即应用更新。Okta 将启动一个作业来应用这些映射。
    7. 将 Okta 与您的 AD 同步。
      1. 在 Okta 控制台中,选择 目录 > 目录集成
      2. 选择您集成的 AD。
      3. 选择 预配 选项卡。
      4. 设置 下,选择 到 Okta
      5. 滚动到 Okta 属性映射 部分,然后选择 强制同步

创建 Okta API 令牌

  1. 使用只读管理员帐户登录 Okta 控制台。
  2. 在 Okta 控制台菜单中,选择 安全 > API
  3. 选择 令牌 选项卡,然后选择 创建令牌
  4. 输入令牌的名称。
  5. 选择 创建令牌
  6. 复制令牌值。将 Okta 组织连接到 Citrix Cloud 时,您将提供此值。

将 Citrix Cloud 连接到您的 Okta 组织

  1. 登录 Citrix Cloud,网址为 https://citrix.cloud.com
  2. 从 Citrix Cloud 菜单中,选择 身份和访问管理
  3. 找到 Okta,然后从省略号菜单中选择 连接
  4. Okta URL 中,输入您的 Okta 域。
  5. Okta API 令牌 中,输入您的 Okta 组织的 API 令牌。
  6. 客户端 ID客户端密钥 中,输入您之前创建的 OIDC Web 应用程序集成中的客户端 ID 和密钥。要从 Okta 控制台复制这些值,请选择 应用程序 并找到您的 Okta 应用程序。在 客户端凭据 下,对每个值使用 复制到剪贴板 按钮。
  7. 单击 测试并完成。Citrix Cloud 将验证您的 Okta 详细信息并测试连接。

成功验证连接后,您可以为最终用户启用 Okta 身份验证。

为商店启用 Okta 身份验证

  1. 从 Citrix Cloud 菜单中,选择 StoreFront Cloud > 身份验证
  2. 选择 Okta
  3. 当出现提示时,选择 我了解这对最终用户体验的影响
  4. 选择 保存

切换到 Okta 身份验证后,Citrix Cloud 会暂时禁用商店几分钟。商店重新启用后,您的最终用户可以使用 Okta 登录。

更多信息

故障排除

问题 1

Okta OIDC 对商店的身份验证成功,但最终用户在商店中看不到 DaaS 资源。这可能是由于缺少诸如“ctx_user.sid”之类的声明未发送到 DaaS 造成的。

调试步骤 1

  1. 使用浏览器捕获 HAR 文件,并使用 Okta OIDC 身份验证登录商店,然后从商店注销。
  2. 当用户从商店执行显式注销操作时,在浏览器开发人员工具中找到以下调用

    GET https://accounts.cloud.com/core/connect/endsession?id_token_hint=<base64string>

  3. 复制 ?id_token_hint= 之后的 base64 字符串,其中包含一个 JWT。示例取自 FireFox 开发工具。

    Okta OIDC 会话结束

将此 base64 字符串粘贴到 https://jwt.io 中的“Encoded Value JSON WEB TOKEN (JWT)”字段,以检查 Citrix Cloud 从您的 Okta OIDC 应用程序收到的声明。 验证 "ctx_user": {} 中是否存在所有必需的声明,并且每个声明都包含登录到商店的用户的正确用户数据。确保 "ctx_user": {} 中有四个名为 "oid", "email", "sid", and "upn" 的声明。已解码 JWT 的示例。

Okta OIDC 故障排除示例声明

原因 1

您的 Okta OIDC 应用程序未发送所有四个必需的 cip_* 声明,或者您的 Okta 用户配置文件不包含必需的属性。

解决方案 1

检查您的 Okta OIDC 应用程序配置和 Okta 用户配置文件属性映射。确保您的 Okta OIDC 应用程序正在发送正确的声明。使用声明名称 cip_upn, cip_email, cip_sid, and cip_oid。所有声明名称必须为小写。

原因 2

您错误地配置了 DaaS 交付组,并将资源映射到 Okta 身份而不是 Active Directory 身份。

解决方案 2

将 AD 域加入的交付组和 VDA 映射到 Active Directory 身份,而不是 Okta 身份。仅将 Okta 身份用于启动非域加入资源。

Okta OIDC 选择活动目录

将交付组配置为根据 AD 用户和组限制资源使用

Okta OIDC 映射所有用户

原因 3

您没有按照 Citrix Cloud 的要求使用 AD 通用组,或者您的 Citrix Cloud Connector 未加入正确的 AD 域级别。有关详细信息,请参阅此文章 Citrix Cloud Connector 系统要求

解决方案 3

在将用户分配给 DaaS 资源时使用通用组

或者,

将商店用户直接分配到交付组。

将 Okta 作为身份提供程序连接到 Citrix Cloud™