若要让用户使用一组凭据登录到 Azure 中的虚拟机 (VM),可以将 VM 加入到 Microsoft Entra 域服务托管域。 将 VM 加入到域服务托管域时,可以使用域中的用户帐户和凭据来登录和管理服务器。 托管域中的组成员身份也应用于控制对 VM 上的文件或服务的访问。
本文介绍如何将 Red Hat Enterprise Linux (RHEL) VM 加入到托管域。
先决条件
需有以下资源和特权才能完成本教程:
- 一个有效的 Azure 订阅。
- 如果你没有 Azure 订阅,请创建一个帐户。
 
 - 与订阅关联的 Microsoft Entra 租户,可以与本地目录或仅限云的目录同步。
 - 在 Microsoft Entra 租户中启用和配置的 Microsoft Entra 域服务托管域。
- 如果需要,请参考第一篇教程创建并配置 Microsoft Entra 域服务托管域。
 
 - 属于托管域的用户帐户。
 - 独一无二的 Linux VM 名称,最大长度为 15 个字符,可避免名称被截断,名称被截断可能会在 Active Directory 中导致冲突。
 
创建并连接到 RHEL Linux VM
如果 Azure 中有现有的 RHEL Linux VM,请使用 SSH 连接到该 VM,然后继续执行下一步,开始配置 VM。
如果需要创建 RHEL Linux VM,或者想要创建用于本文的测试 VM,可以使用以下方法之一:
创建 VM 时,请注意虚拟网络设置,确保 VM 可以与托管域通信:
- 将该 VM 部署到已启用 Microsoft Entra 域服务的虚拟网络或对等互连的虚拟网络。
 - 将 VM 部署到与 Microsoft Entra 域服务托管域不同的子网中。
 
部署 VM 后,请遵循使用 SSH 连接到 VM 的步骤。
配置主机文件
若要确保为托管域正确配置了 VM 主机名,请编辑“/etc/hosts”文件,并设置主机名:
sudo vi /etc/hosts
在 hosts 文件中,更新 localhost 地址 。 在以下示例中:
- aaddscontoso.com 是托管域的 DNS 域名。
 - rhel 是你要加入到托管域的 RHEL VM 的主机名。
 
将以下名称更新为你自己的值:
127.0.0.1 rhel rhel.aaddscontoso.com
完成后,使用编辑器的 命令保存并退出 hosts 文件。
重要
请注意,Red Hat Enterprise Linux 6.X 和 Oracle Linux 6.x 已经结束生命周期。 RHEL 6.10 提供 ELS 支持, 该支持于 2024 年 6 月 6 日结束。
安装所需程序包
VM 需要其他一些包才能将 VM 加入托管域。 若要安装和配置这些包,请使用 yum 更新和安装域加入工具。
sudo yum install adcli sssd authconfig krb5-workstation
将 VM 加入托管域
在 VM 上安装所需的包之后,请将 VM 加入托管域。
使用
adcli info命令发现托管域。 以下示例发现领域 AADDSCONTOSO.COM。 以全部大写的形式指定你自己的托管域名:sudo adcli info aaddscontoso.com如果
adcli info命令找不到托管域,请查看以下故障排除步骤:- 确保可从该 VM 中访问域。 尝试使用 
ping aaddscontoso.com查看是否返回肯定答复。 - 检查 VM 是否已部署到提供托管域的虚拟网络或与其对等互连的虚拟网络。
 - 确认虚拟网络的 DNS 服务器设置已更新为指向托管域的域控制器。
 
- 确保可从该 VM 中访问域。 尝试使用 
 首先,使用
adcli join命令加入域。 此命令还会创建 keytab 以对计算机进行身份验证。 使用属于托管域的用户帐户。sudo adcli join aaddscontoso.com -U contosoadmin现在配置
/ect/krb5.conf并创建/etc/sssd/sssd.conf文件,以使用aaddscontoso.comActive Directory 域。 请确保将AADDSCONTOSO.COM替换为你自己的域名:使用编辑器打开
/etc/krb5.conf文件:sudo vi /etc/krb5.conf更新
krb5.conf文件以匹配以下示例:[logging] default = FILE:/var/log/krb5libs.log kdc = FILE:/var/log/krb5kdc.log admin_server = FILE:/var/log/kadmind.log [libdefaults] default_realm = AADDSCONTOSO.COM dns_lookup_realm = true dns_lookup_kdc = true ticket_lifetime = 24h renew_lifetime = 7d forwardable = true [realms] AADDSCONTOSO.COM = { kdc = AADDSCONTOSO.COM admin_server = AADDSCONTOSO.COM } [domain_realm] .AADDSCONTOSO.COM = AADDSCONTOSO.COM AADDSCONTOSO.COM = AADDSCONTOSO.COM创建
/etc/sssd/sssd.conf文件:sudo vi /etc/sssd/sssd.conf更新
sssd.conf文件以匹配以下示例:[sssd] services = nss, pam, ssh, autofs config_file_version = 2 domains = AADDSCONTOSO.COM [domain/AADDSCONTOSO.COM] id_provider = ad请确保
/etc/sssd/sssd.conf权限为 600,并且由根用户拥有:sudo chmod 600 /etc/sssd/sssd.conf sudo chown root:root /etc/sssd/sssd.conf使用
authconfig向 VM 指示 AD Linux 集成:sudo authconfig --enablesssd --enablesssd auth --update启动并启用 sssd 服务:
sudo service sssd start sudo chkconfig sssd on
如果 VM 无法成功完成域加入过程,请确保 VM 的网络安全组允许将 TCP + UDP 端口 464 上的出站 Kerberos 流量发送到托管域的虚拟网络子网。
现在,请检查是否可以使用 getent 查询用户 AD 信息
sudo getent passwd contosoadmin
允许对 SSH 进行密码身份验证
默认情况下,用户只能使用基于 SSH 公钥的身份验证登录到 VM。 基于密码的身份验证失败。 将 VM 加入托管域时,这些域帐户需要使用基于密码的身份验证。 更新 SSH 配置,以允许基于密码的身份验证,如下所示。
使用编辑器打开 sshd_conf 文件:
sudo vi /etc/ssh/sshd_config将 PasswordAuthentication 的行更新为 yes :
PasswordAuthentication yes完成后,使用编辑器的 命令保存并退出 sshd_conf 文件。
若要应用更改并让用户使用密码登录,请重启 RHEL 发行版版本的 SSH 服务:
sudo service sshd restart
为“AAD DC 管理员”组授予 sudo 特权
若要授予“AAD DC Administrators”组成员对 RHEL VM 的管理特权,请向“/etc/sudoers”添加一个条目 。 添加后,“AAD DC 管理员”组的成员可以使用 RHEL VM 上的 命令。
打开 sudoers 文件进行编辑:
sudo visudo将以下条目添加到“/etc/sudoers”文件的末尾。 “AAD DC 管理员”组的名称中包含空格,因此请在组名称中包含反斜杠转义符。 添加自己的域名,例如 aaddscontoso.com:
# Add 'AAD DC Administrators' group members as admins. %AAD\ DC\ Administrators@aaddscontoso.com ALL=(ALL) NOPASSWD:ALL完成后,使用编辑器的
:wq命令进行保存并退出编辑器。
使用域帐户登录到 VM
若要验证 VM 是否已成功加入托管域,请使用域用户帐户启动新的 SSH 连接。 确认已创建主目录,并应用域中的组成员身份。
从控制台创建新的 SSH 连接。 通过
ssh -l命令使用属于托管域的域帐户(如contosoadmin@aaddscontoso.com),然后输入 VM 的地址,例如 rhel.aaddscontoso.com。ssh -l contosoadmin@AADDSCONTOSO.com rhel.aaddscontoso.com成功连接到 VM 后,验证是否已正确初始化主目录:
pwd你应位于“/home”目录中,并具有你自己的与用户帐户相匹配的目录。
现在请检查是否已正确解析组成员身份:
id应会看到托管域中的组成员身份。
如果以“AAD DC 管理员”组成员的身份登录到 VM,请检查是否可以正确使用 命令:
sudo yum update
后续步骤
如果在将 VM 连接到托管域或使用域帐户登录时遇到问题,请参阅域加入问题故障排除。