将 CoreOS 虚拟机加入到 Microsoft Entra 域服务托管域

若要让用户使用一组凭据登录到 Azure 中的虚拟机 (VM),可以将 VM 加入到 Microsoft Entra 域服务托管域。 将 VM 加入到域服务托管域时,可以使用域中的用户帐户和凭据来登录和管理服务器。 托管域中的组成员身份也应用于控制对 VM 上的文件或服务的访问。

本文介绍如何将 CoreOS VM 加入到托管域。

先决条件

需有以下资源和特权才能完成本教程:

创建并连接到 CoreOS Linux VM

如果 Azure 中有现有的 CoreOS Linux VM,请使用 SSH 连接到该 VM,然后继续执行下一步,开始配置 VM

如果需要创建 CoreOS 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 域名。
  • coreos 是你要加入到托管域的 CoreOS VM 的主机名。

将以下名称更新为你自己的值:

127.0.0.1 coreos coreos.aaddscontoso.com

完成后,使用编辑器的 :wq 命令保存并退出 hosts 文件。

配置 SSSD 服务

更新 /etc/sssd/sssd.conf SSSD 配置。

sudo vi /etc/sssd/sssd.conf

为以下参数指定你自己的托管域名:

  • 全部大写的域
  • [域/AADDSCONTOSO] 其中 AADDSCONTOSO 全部大写
  • ldap_uri
  • ldap_search_base
  • krb5_server
  • 全部大写的“krb5_realm”
[sssd]
config_file_version = 2
services = nss, pam
domains = AADDSCONTOSO.COM

[domain/AADDSCONTOSO]
id_provider = ad
auth_provider = ad
chpass_provider = ad

ldap_uri = ldap://aaddscontoso.com
ldap_search_base = dc=aaddscontoso,dc=com
ldap_schema = rfc2307bis
ldap_sasl_mech = GSSAPI
ldap_user_object_class = user
ldap_group_object_class = group
ldap_user_home_directory = unixHomeDirectory
ldap_user_principal = userPrincipalName
ldap_account_expire_policy = ad
ldap_force_upper_case_realm = true
fallback_homedir = /home/%d/%u

krb5_server = aaddscontoso.com
krb5_realm = AADDSCONTOSO.COM

将 VM 加入托管域

更新 SSSD 配置文件后,现在将虚拟机加入到托管域。

  1. 首先,使用 adcli info 命令验证你是否可以查看有关托管域的信息。 下面的示例获取域“AADDSCONTOSO.COM”的信息。 以全部大写的形式指定你自己的托管域名:

    sudo adcli info AADDSCONTOSO.COM
    

    如果 adcli info 命令找不到托管域,请查看以下故障排除步骤:

    • 确保可从该 VM 中访问域。 尝试使用 ping aaddscontoso.com 查看是否返回肯定答复。
    • 检查 VM 是否已部署到提供托管域的虚拟网络或与其对等互连的虚拟网络。
    • 确认已将虚拟网络的 DNS 服务器设置更新为指向托管域的域控制器。
  2. 现在,使用 adcli join 命令将 VM 加入到托管域。 指定属于托管域的用户。 必要时将用户帐户添加到 Microsoft Entra ID 中的组

    同样,必须以全部大写的形式输入托管域名。 在以下示例中,名为 contosoadmin@aaddscontoso.com 的帐户用于初始化 Kerberos。 输入你自己的属于托管域的用户帐户。

    sudo adcli join -D AADDSCONTOSO.COM -U contosoadmin@AADDSCONTOSO.COM -K /etc/krb5.keytab -H coreos.aaddscontoso.com -N coreos
    

    VM 成功加入托管域后,adcli join 命令不会返回任何信息。

  3. 若要应用域加入配置,请启动 SSSD 服务:

    sudo systemctl start sssd.service
    

使用域帐户登录到 VM

若要验证 VM 是否已成功加入托管域,请使用域用户帐户启动新的 SSH 连接。 确认已创建主目录,并且已应用域的组成员身份。

  1. 从控制台创建新的 SSH 连接。 通过 ssh -l 命令使用属于托管域的域帐户(如 contosoadmin@aaddscontoso.com),然后输入 VM 的地址,例如 coreos.aaddscontoso.com。

    ssh -l contosoadmin@AADDSCONTOSO.com coreos.aaddscontoso.com
    
  2. 现在请检查是否已正确解析组成员身份:

    id
    

    应会看到托管域中的组成员身份。

后续步骤

如果在将 VM 连接到托管域或使用域帐户登录时遇到问题,请参阅域加入问题故障排除