使用 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.8、8.6、7.9
- SUSE 15.4
有关详细信息,请参阅这篇 Microsoft 文章。
已知问题及解决方法
在 RHEL 7.9 中,在执行 AAD 用户身份验证之后,PAM(Pluggable Authentication Module,可插拔身份验证模块)pam_loginuid.so
无法设置 loginuid
。此问题会阻止 AAD 用户访问 VDA 会话。
要解决此问题,请在 /etc/pam.d/remote
中注释掉行 Session required pam_loginuid.so
。有关示例,请参见以下屏幕截图。
步骤 1:在 Azure 门户上创建模板 VM
创建模板 VM 并在 VM 上安装 Azure CLI。
-
在 Azure 门户上,创建模板 VM。在单击检查 + 创建之前,请务必在管理选项卡上选择 Login with Azure AD(使用 Azure AD 登录)。
-
在模板 VM 上安装 Azure CLI。 有关详细信息,请参阅这篇 Microsoft 文章。
步骤 2:在模板 VM 上准备主映像
要准备主映像,请按照使用 MCS 在 Azure 上创建 Linux VM 中的步骤 3:准备主映像进行操作。
步骤 3:将模板 VM 设置为未加入域的模式
创建主映像后,请按照以下步骤将 VM 设置为未加入域的模式:
-
从命令提示符运行以下脚本:
Modify /var/xdl/mcs/mcs_util.sh <!--NeedCopy-->
-
找到
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-->
-
保存更改。
-
关闭模板 VM。
步骤 4:从模板 VM 创建 Linux VM
准备好未加入域的模板 VM 后,请按照以下步骤创建 VM:
-
登录 Citrix Cloud。
-
双击 Citrix DaaS,然后访问完整配置管理控制台。
-
在计算机目录中,选择使用 Machine Creation Services 从模板 VM 创建 Linux VM。有关详细信息,请参阅 Citrix DaaS 文档中的未加入域的 VDA。
步骤 5:将 AAD 用户帐户分配给 Linux VM
创建未加入域的 VM 后,为其分配 AAD 用户帐户。
要将 AAD 用户帐户分配给 VM,请执行以下步骤:
- 使用管理员帐户访问 VM。
-
在 Identify(识别)> System assigned(系统分配)选项卡上,启用 System Identity(系统标识)。
-
在 Access control (IAM)(访问控制(IAM))> Role assignments(角色分配)选项卡上,找到 Virtual Machine User Login(虚拟机用户登录)区域,然后根据需要添加 AAD 用户帐户。
登录到未加入域的 VDA
贵组织中的最终用户可以通过两种方式登录未加入域的 VDA。详细步骤如下所示:
- 启动 Workspace 应用程序,然后通过输入 AAD 用户名和密码登录到 Workspace。此时将显示 Workspace 页面。
-
双击未加入域的桌面。此时将显示 AAD 登录页面。
该页面因 VDA 上设置的登录模式而异:设备代码或 AAD 帐户/密码。默认情况下,Linux VDA 使用设备代码登录模式对 AAD 用户进行身份验证,如下所示。作为管理员,您可以根据需要将登录模式更改为 AAD 帐户/密码。有关详细步骤,请参阅以下部分。
- 根据屏幕上的说明,通过以下方式之一登录到桌面会话:
- 扫描 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 帐户或启用了双重身份验证的帐户。