Linux Virtual Delivery Agent

使用 Azure Active Directory 进行身份验证

注意:

此功能仅适用于 Azure 托管的 VDA。

  • 根据您的需求,可以在 Azure 中部署两种类型的 Linux VDA:

  • 已加入 Azure AD DS 的 VM。这些 VM 已加入 Azure Active Directory (AAD) 域服务 (DS) 托管域。用户使用其域凭据登录到 VM。
  • 未加入域的 VM。这些 VM 与 AAD 身份服务集成,以提供用户身份验证。用户使用其 AAD 凭据登录到 VM。

  • 有关 AAD DS 和 AAD 的详细信息,请参阅这篇 Microsoft 文章

本文介绍如何在未加入域的 VDA 上启用和配置 AAD 身份服务。

支持的分发版

  • Ubuntu 22.04、20.04
    • RHEL 8.7、8.6、8.4、7.9
    • SUSE 15.4

有关详细信息,请参阅这篇 Microsoft 文章

已知问题和解决方法

在 RHEL 7.9 上,PAM (可插入身份验证模块) pam_loginuid.so 在 AAD 用户身份验证后无法设置 loginuid。此问题会阻止 AAD 用户访问 VDA 会话。

要解决此问题,请在 /etc/pam.d/remote 中注释掉 Session required pam_loginuid.so 这一行。请参阅以下屏幕截图了解示例。

已知问题的解决方法

步骤 1:在 Azure 门户上创建模板 VM

创建模板 VM 并在 VM 上安装 Azure CLI。

  1. 在 Azure 门户上,创建模板 VM。请务必在单击“Review + create”(查看 + 创建)之前,在“Management”(管理)选项卡上选择“Login with Azure AD”(使用 Azure AD 登录)

    启用 AAD 登录的设置

  2. 在模板 VM 上安装 Azure CLI。 有关详细信息,请参阅这篇 Microsoft 文章

步骤 2:在模板 VM 上准备主映像

要准备主映像,请按照使用 Machine Creation Services (MCS) 创建 Linux VDA 中的“步骤 3:准备主映像”进行操作。

步骤 3:将模板 VM 设置为未加入域模式

创建主映像后,请按照以下步骤将 VM 设置为未加入域模式:

  1. 从命令提示符处运行以下脚本。

    Modify /var/xdl/mcs/mcs_util.sh
    <!--NeedCopy-->
    
  2. 找到 function read_non_domain_joined_info(),然后将 NonDomainJoined 的值更改为 2。请参阅以下代码块了解示例。

    function read_non_domain_joined_info()
    {
    log "Debug: Enter read_non_domain_joined_info"
    # check if websocket enabled
    TrustIdentity=`cat ${id_disk_mnt_point}${ad_info_file_path} | grep '\[TrustIdentity\]' | sed 's/\s//g'`
    if [ "$TrustIdentity" == "[TrustIdentity]" ]; then
    NonDomainJoined=2
    fi
    -  ...
    -  }
    <!--NeedCopy-->
    
  3. 保存更改。

  4. 关闭模板 VM。

步骤 4:从模板 VM 创建 Linux VM

准备好未加入域的模板 VM 后,请按照以下步骤创建 VM:

  1. 登录 Citrix Cloud。

  2. 双击 Citrix DaaS™,然后访问“完整配置”管理控制台。

  3. “Machine Catalogs”(计算机目录)中,选择使用 Machine Creation Services 从模板 VM 创建 Linux VM。有关详细信息,请参阅 Citrix DaaS 文章未加入域

步骤 5:将 AAD 用户帐户分配给 Linux VM

创建未加入域的 VM 后,将 AAD 用户帐户分配给它们。

要将 AAD 用户帐户分配给 VM,请按照以下步骤操作:

  1. 使用管理员帐户访问 VM。
  2. “Identify”(标识)>“System assigned”(系统分配)选项卡上,启用“System Identity”(系统标识)

    启用 AAD 登录的设置

  3. “Access control (IAM)”(访问控制 (IAM))>“Role assignments”(角色分配)选项卡上,找到“Virtual Machine User Login”(虚拟机用户登录)区域,然后根据需要添加 AAD 用户帐户。

    启用 AAD 登录的设置

登录到未加入域的 VDA

组织中的最终用户可以通过两种方式登录到未加入域的 VDA。详细步骤如下:

  1. 启动 Workspace 应用程序,然后输入 AAD 用户名和密码登录到工作区。此时将显示 Workspace 页面。
  2. 双击未加入域的桌面。此时将显示 AAD 登录页面。

    页面因 VDA 上设置的登录模式(设备代码或 AAD 帐户/密码)而异。默认情况下,Linux VDA 使用设备代码登录模式对 AAD 用户进行身份验证,如下所示。作为管理员,您可以根据需要将登录模式更改为 AAD 帐户/密码。有关详细步骤,请参阅以下部分。

    启用 AAD 登录的设置

  3. 根据屏幕上的说明,通过以下方式之一登录到桌面会话:
    • 扫描 QR 代码并输入代码。
    • 输入 AAD 用户名和密码。

更改为 AAD 帐户/密码登录模式

默认情况下,Linux VDA 使用设备代码对 AAD 用户进行身份验证。有关详细信息,请参阅这篇 Microsoft 文章。要将登录模式更改为 AAD 帐户/密码,请按照以下步骤操作:

在 VDA 上运行以下命令,找到密钥 AADAcctPwdAuthEnable,并将其值更改为 0x00000001

/opt/Citrix/VDA/bin/ctxreg create -k "HKLM\System\CurrentControlSet\Services\CitrixBrokerAgent\WebSocket" -t "REG_DWORD" -v "AADAcctPwdAuthEnable" -d "0x00000001" --force

<!--NeedCopy-->

注意:

此方法不适用于 Microsoft 帐户或启用了双因素身份验证的帐户。