將 SUSE Linux Enterprise Linux 虛擬機器加入 Microsoft Entra Domain Services 受控網域
若要讓使用者利用單一認證組合在 Azure 中登入虛擬機器 (VM),您可以將 VM 加入 Microsoft Entra Domain Services 受控網域。 將 VM 加入 Domain Services 受控網域後,即可透過網域的使用者帳戶與認證來登入並管理伺服器。 同時套用受控網域的群組成員資格,讓您在 VM 上控制檔案或服務的存取權。
本文示範如何將 SUSE Linux Enterprise (SLE) VM 加入受控網域。
必要條件
若要完成本教學課程,您需要下列資源和權限:
- 有效的 Azure 訂閱。
- 如果您沒有 Azure 訂用帳戶,請先建立帳戶。
- 與訂用帳戶相關聯的 Microsoft Entra 租用戶,且其已與內部部署目錄或純雲端目錄同步。
- 如有需要,請建立 Microsoft Entra 租用戶或將 Azure 訂用帳戶與您的帳戶建立關聯 (部分機器翻譯)。
- 已在您 Microsoft Entra 租用戶中啟用並設定的 Microsoft Entra Domain Services 受控網域。
- 如有需要,第一個教學課程會說明建立和設定 Microsoft Entra Domain Services 受控網域。
- 屬於受控網域一部分的使用者帳戶。
- 最多為 15 個字元的獨特 Linux VM 名稱,來避免可能在 Active Directory 中造成衝突的截斷名稱。
建立並連線至 SLE Linux VM
如果您在 Azure 中已有 SLE Linux VM,請將 SSH 連線到該 VM,並繼續進行下一個步驟來開始設定 VM。
如果您需要建立 SLE Linux VM,或想要建立測試 VM 配合本文使用,您可以使用下列其中一種方法:
建立 VM 時,請注意虛擬網路設定,確保 VM 可以與受控網域通訊:
- 將 VM 部署至已啟用 Microsoft Entra Domain Services 的相同 (或對等) 虛擬網路。
- 將 VM 部署至 Microsoft Entra Domain Services 受控網域以外的其他子網路。
部署 VM 之後,請遵循這些步驟,使用 SSH 連線到 VM。
設定 hosts 檔案
若要確定 VM 主機名稱已針對受控網域正確設定,請編輯 /etc/hosts 檔案並設定主機名稱:
sudo vi /etc/hosts
在 hosts 檔案中,更新 localhost 的位址。 在以下範例中:
- aaddscontoso.com 為受控網域的 DNS 網域名稱。
- linux-q2gr 是您正加入受控網域的 SLE VM 主機名稱。
請以您自己的值更新這些名稱:
127.0.0.1 linux-q2gr linux-q2gr.aaddscontoso.com
完成後,請使用編輯器的 :wq
命令儲存並結束 hosts 檔案。
使用 SSSD 將 VM 加入受控網域
若要使用 SSSD 和 YaST 的使用者登入管理模組加入受控網域,請完成下列步驟:
安裝使用者登入管理 YaST 模組:
sudo zypper install yast2-auth-client
開啟 YaST。
若要於稍後成功使用 DNS 自動探索,請將受控網域 IP 位址 (Active Directory 伺服器) 設定為用戶端的名稱伺服器。
在 YaST 中,選取 [系統 > 網路設定]。
選取 [主機名稱/DNS] 索引標籤,然後在 [名稱伺服器 1] 文字方塊中輸入受控網域的 IP 位址。 受控網域的 IP 位址如 10.0.2.4 和 10.0.2.5,將顯示於 Microsoft Entra 系統管理中心的 [屬性] 視窗中。
新增您自己的受控網域 IP 位址,然後選取 [確定]。
從 YaST 主視窗中,選取 [網路服務] > [使用者登入管理]。
模組開啟後,會顯示電腦的不同網路屬性,以及使用中驗證方法的概觀,如下列範例螢幕擷取畫面所示:
若要開始編輯,請選取 [變更設定]。
若要將 VM 加入受控網域,請完成下列步驟:
在對話方塊中,選取 [新增網域]。
指定正確的網域名稱 (例如 aaddscontoso.com),然後指定要用於身分識別資料和驗證的服務。 針對兩者選取 [Microsoft Active Directory]。
確定已選取 [啟用網域] 的選項。
在準備就緒時,選取 [確定]。
接受下列對話方塊中的預設設定,然後選取 [確定]。
VM 會視需要安裝其他軟體,然後檢查受控網域是否存在。
如果一切正確,則會顯示下列的範例對話方塊,表示 VM 已發現受控網域,但您尚未註冊。
對話方塊中,請指定屬於受控網域使用者的 [使用者名稱] 和 [密碼]。 如有需要,請新增一個使用者帳戶至 Microsoft Entra ID 中的群組。
若要確定已針對 Samba 啟用目前的網域,請啟用 覆寫 Samba 設定以配合此 AD 作業。
若要註冊,請選取 [確定]。
系統會顯示一則訊息,表示您已成功註冊。 若要完成,請選取 [確定]。
在受控網域中註冊 VM 之後,請使用 [管理網域使用者登入] 設定用戶端,如下列範例螢幕擷取畫面所示:
若要使用受控網域提供的資料來允許登入,請核取 [允許網域使用者登入] 方塊。
可以選擇在 [啟用網域資料來源] 下方,視您的環境需要檢查其他資料來源。 這些選項包括哪些使用者可以使用 sudo 或有哪些網路磁碟機可用。
若要允許受控網域中的使用者在 VM 上擁有主目錄,請核取 [建立主目錄] 方塊。
從側邊欄位選取 [服務選項 › 切換名稱],然後選取 [擴充選項]。 從該視窗中選取 [fallback_homedir] 或 [override_homedir],然後選取 [新增]。
為主目錄位置指定值。 若要讓主目錄遵循 /home/USER_NAME 的格式,請使用 /home/%u。 如需可能變數的詳細資訊,請參閱 sssd.conf 手冊頁 (
man 5 sssd.conf
) 的 override_homedir 一節。選取 [確定]。
若要儲存變更,請選取 [確定]。 然後,請確定現在顯示的值正確無誤。 若要離開對話方塊,請選取 [取消]。
如果您想要同時執行 SSSD 和 Winbind (例如透過 SSSD 加入時,卻接著執行 Samba 檔案伺服器),Samba 選項 kerberos 方法應設定為 smb.conf 中的祕密和金鑰表。 SSSD 選項 ad_update_samba_machine_account_password 也應在 sssd.conf 中設定為 true。 這些選項可防止系統金鑰表無法同步。
使用 Winbind 將 VM 加入受控網域
若要使用 Winbind 和 YaST 的 Windows 網域成員資格模組來加入受控網域,請完成下列步驟:
在 YaST 中,選取 [網路服務] > [Windows 網域成員資格]。
在 [Windows網域成員資格] 畫面中,輸入要加入網域或工作群組的網域。 輸入受控網域名稱,例如 aaddscontoso.com。
若要使用 SMB 來源進行 Linux 驗證,請核取 [使用 SMB 資訊進行 Linux 驗證] 的選項。
若要為 VM 上的受控網域使用者自動建立本機主目錄,請檢查 [登入時建立主目錄] 的選項。
核取 [離線驗證] 的選項,以允許您的網域使用者登入,即使受控網域暫時無法使用也能登入。
如果您想要替 Samba 使用者和群組變更 UID 和 GID 範圍,請選取 [專家設定]。
透過選取 [NTP 組態],替受控網域設定網路時間通訊協定 (NTP) 時間同步處理。 輸入受控網域的 IP 位址。 受控網域的 IP 位址如 10.0.2.4 和 10.0.2.5,將顯示於 Microsoft Entra 系統管理中心的 [屬性] 視窗中。
選取 [確定],並在系統提示時確認加入網域。
提供受控網域中系統管理員的密碼,然後選取 [確定]。
加入受控網域後,您可以使用桌面或主控台的顯示管理員,從工作站登入該網域。
使用 YaST 命令列介面中的 Winbind 將 VM 加入受控網域
若要加入受控網域,請使用 Winbind 以及 YaST 命令列介面:
加入網域:
sudo yast samba-client joindomain domain=aaddscontoso.com user=<admin> password=<admin password> machine=<(optional) machine account>
使用來自終端機的 Winbind 將 VM 加入受控網域
若要使用 Winbind 和 samba net
命令加入受控網域:
安裝 kerberos 用戶端和 samba-winbind:
sudo zypper in krb5-client samba-winbind
編輯組態檔:
/etc/samba/smb.conf
[global] workgroup = AADDSCONTOSO usershare allow guests = NO #disallow guests from sharing idmap config * : backend = tdb idmap config * : range = 1000000-1999999 idmap config AADDSCONTOSO : backend = rid idmap config AADDSCONTOSO : range = 5000000-5999999 kerberos method = secrets and keytab realm = AADDSCONTOSO.COM security = ADS template homedir = /home/%D/%U template shell = /bin/bash winbind offline logon = yes winbind refresh tickets = yes
/etc/krb5.conf
[libdefaults] default_realm = AADDSCONTOSO.COM clockskew = 300 [realms] AADDSCONTOSO.COM = { kdc = PDC.AADDSCONTOSO.COM default_domain = AADDSCONTOSO.COM admin_server = PDC.AADDSCONTOSO.COM } [domain_realm] .aaddscontoso.com = AADDSCONTOSO.COM [appdefaults] pam = { ticket_lifetime = 1d renew_lifetime = 1d forwardable = true proxiable = false minimum_uid = 1 }
/etc/security/pam_winbind.conf
[global] cached_login = yes krb5_auth = yes krb5_ccache_type = FILE warn_pwd_expire = 14
/etc/nsswitch.conf
passwd: compat winbind group: compat winbind
檢查 Microsoft Entra ID 和 Linux 的日期和時間是否同步。將 Microsoft Entra 伺服器新增至 NTP 服務即可進行這項作業:
將下面這行新增至
/etc/ntp.conf
:server aaddscontoso.com
重新啟動 NTP 服務:
sudo systemctl restart ntpd
加入網域:
sudo net ads join -U Administrator%Mypassword
啟用 Winbind 作為 Linux 插入式驗證模組 (PAM) 中的登入來源:
config pam-config --add --winbind
啟用自動建立主目錄,讓使用者可以登入:
sudo pam-config -a --mkhomedir
啟動並啟用 Winbind 服務:
sudo systemctl enable winbind sudo systemctl start winbind
允許 SSH 的密碼驗證
根據預設,使用者只能使用 SSH 公開金鑰型驗證登入 VM。 密碼式驗證失敗。 當您將 VM 加入受控網域時,這些網域帳戶都必須使用密碼型驗證。 更新 SSH 組態允許密碼型驗證,如下所示。
使用編輯器開啟 sshd_conf 檔案:
sudo vi /etc/ssh/sshd_config
將 PasswordAuthentication 一行更新為 是:
PasswordAuthentication yes
完成後,請使用編輯器的
:wq
命令儲存並結束 sshd_conf 檔案。若要套用變更並讓使用者使用密碼登入,請重新開機 SSH 服務:
sudo systemctl restart sshd
授與 'AAD DC Administrators' 群組 sudo 權限
若要授與 SLE VM 上 AAD DC Administrators 群組系統管理許可權的成員,請將專案新增至 /etc/sudoers。 新增後,AAD DC Administrators 群組的成員就能使用 SLE VM 上的 sudo
命令。
開啟 sudoers 檔案進行編輯:
sudo visudo
將下列項目新增至 /etc/sudoers 檔案尾端。 AAD DC Administrators 群組包含名稱中的空白字元,因此請在群組名稱中涵蓋反斜線逸出字元。 新增您自己的網域名稱,例如 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 的位址,例如 linux-q2gr.aaddscontoso.com。 如果您是使用 Azure Cloud Shell,請使用 VM 的公用 IP 位址,而不是內部 DNS 名稱。sudo ssh -l contosoadmin@AADDSCONTOSO.com linux-q2gr.aaddscontoso.com
成功連線到 VM 時,請確認已正確初始化主目錄:
sudo pwd
您應該在 /home 目錄中,且目錄符合使用者帳戶。
現在檢查是否已正確解析群組成員資格:
sudo id
您應該會看到來自受控網域的群組成員資格。
如果您以 AAD DC Administrators 群組的成員身分登入 VM,請檢查您是否可以正確使用
sudo
命令:sudo zypper update
下一步
如果您將 VM 連線到受控網域或使用網域帳戶登入時遇到問題,請參閱針對網域加入問題進行疑難排解。