共用方式為


將 SUSE Linux Enterprise Linux 虛擬機器加入 Microsoft Entra Domain Services 受控網域

若要讓使用者利用單一認證組合在 Azure 中登入虛擬機器 (VM),您可以將 VM 加入 Microsoft Entra Domain Services 受控網域。 將 VM 加入 Domain Services 受控網域後,即可透過網域的使用者帳戶與認證來登入並管理伺服器。 同時套用受控網域的群組成員資格,讓您在 VM 上控制檔案或服務的存取權。

本文示範如何將 SUSE Linux Enterprise (SLE) VM 加入受控網域。

必要條件

若要完成本教學課程,您需要下列資源和權限:

建立並連線至 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 的使用者登入管理模組加入受控網域,請完成下列步驟:

  1. 安裝使用者登入管理 YaST 模組:

    sudo zypper install yast2-auth-client
    
  2. 開啟 YaST。

  3. 若要於稍後成功使用 DNS 自動探索,請將受控網域 IP 位址 (Active Directory 伺服器) 設定為用戶端的名稱伺服器。

    在 YaST 中,選取 [系統 > 網路設定]

  4. 選取 [主機名稱/DNS] 索引標籤,然後在 [名稱伺服器 1] 文字方塊中輸入受控網域的 IP 位址。 受控網域的 IP 位址如 10.0.2.410.0.2.5,將顯示於 Microsoft Entra 系統管理中心的 [屬性] 視窗中。

    新增您自己的受控網域 IP 位址,然後選取 [確定]

  5. 從 YaST 主視窗中,選取 [網路服務] > [使用者登入管理]

    模組開啟後,會顯示電腦的不同網路屬性,以及使用中驗證方法的概觀,如下列範例螢幕擷取畫面所示:

    YaST 中 [使用者登入管理] 視窗的範例螢幕擷取畫面

    若要開始編輯,請選取 [變更設定]

若要將 VM 加入受控網域,請完成下列步驟:

  1. 在對話方塊中,選取 [新增網域]

  2. 指定正確的網域名稱 (例如 aaddscontoso.com),然後指定要用於身分識別資料和驗證的服務。 針對兩者選取 [Microsoft Active Directory]

    確定已選取 [啟用網域] 的選項。

  3. 在準備就緒時,選取 [確定]

  4. 接受下列對話方塊中的預設設定,然後選取 [確定]

  5. VM 會視需要安裝其他軟體,然後檢查受控網域是否存在。

    如果一切正確,則會顯示下列的範例對話方塊,表示 VM 已發現受控網域,但您尚未註冊

    YaST 中 [Active Directory 註冊] 視窗的範例螢幕擷取畫面

  6. 對話方塊中,請指定屬於受控網域使用者的 [使用者名稱] 和 [密碼]。 如有需要,請新增一個使用者帳戶至 Microsoft Entra ID 中的群組

    若要確定已針對 Samba 啟用目前的網域,請啟用 覆寫 Samba 設定以配合此 AD 作業

  7. 若要註冊,請選取 [確定]

  8. 系統會顯示一則訊息,表示您已成功註冊。 若要完成,請選取 [確定]

在受控網域中註冊 VM 之後,請使用 [管理網域使用者登入] 設定用戶端,如下列範例螢幕擷取畫面所示:

YaST 中 [管理網域使用者登入] 視窗的範例螢幕擷取畫面

  1. 若要使用受控網域提供的資料來允許登入,請核取 [允許網域使用者登入] 方塊。

  2. 可以選擇在 [啟用網域資料來源] 下方,視您的環境需要檢查其他資料來源。 這些選項包括哪些使用者可以使用 sudo 或有哪些網路磁碟機可用。

  3. 若要允許受控網域中的使用者在 VM 上擁有主目錄,請核取 [建立主目錄] 方塊。

  4. 從側邊欄位選取 [服務選項 › 切換名稱],然後選取 [擴充選項]。 從該視窗中選取 [fallback_homedir] 或 [override_homedir],然後選取 [新增]

  5. 為主目錄位置指定值。 若要讓主目錄遵循 /home/USER_NAME 的格式,請使用 /home/%u。 如需可能變數的詳細資訊,請參閱 sssd.conf 手冊頁 (man 5 sssd.conf) 的 override_homedir 一節。

  6. 選取 [確定]。

  7. 若要儲存變更,請選取 [確定]。 然後,請確定現在顯示的值正確無誤。 若要離開對話方塊,請選取 [取消]

  8. 如果您想要同時執行 SSSD 和 Winbind (例如透過 SSSD 加入時,卻接著執行 Samba 檔案伺服器),Samba 選項 kerberos 方法應設定為 smb.conf 中的祕密和金鑰表。 SSSD 選項 ad_update_samba_machine_account_password 也應在 sssd.conf 中設定為 true。 這些選項可防止系統金鑰表無法同步。

使用 Winbind 將 VM 加入受控網域

若要使用 Winbind 和 YaST 的 Windows 網域成員資格模組來加入受控網域,請完成下列步驟:

  1. 在 YaST 中,選取 [網路服務] > [Windows 網域成員資格]

  2. 在 [Windows網域成員資格] 畫面中,輸入要加入網域或工作群組的網域。 輸入受控網域名稱,例如 aaddscontoso.com

    YaST 中 [Windows 網域成員資格] 視窗的範例螢幕擷取畫面

  3. 若要使用 SMB 來源進行 Linux 驗證,請核取 [使用 SMB 資訊進行 Linux 驗證] 的選項。

  4. 若要為 VM 上的受控網域使用者自動建立本機主目錄,請檢查 [登入時建立主目錄] 的選項。

  5. 核取 [離線驗證] 的選項,以允許您的網域使用者登入,即使受控網域暫時無法使用也能登入。

  6. 如果您想要替 Samba 使用者和群組變更 UID 和 GID 範圍,請選取 [專家設定]

  7. 透過選取 [NTP 組態],替受控網域設定網路時間通訊協定 (NTP) 時間同步處理。 輸入受控網域的 IP 位址。 受控網域的 IP 位址如 10.0.2.410.0.2.5,將顯示於 Microsoft Entra 系統管理中心的 [屬性] 視窗中。

  8. 選取 [確定],並在系統提示時確認加入網域。

  9. 提供受控網域中系統管理員的密碼,然後選取 [確定]

    當您將 SLE VM 加入受控網域時,出現驗證對話方塊提示的範例螢幕擷取畫面

加入受控網域後,您可以使用桌面或主控台的顯示管理員,從工作站登入該網域。

使用 YaST 命令列介面中的 Winbind 將 VM 加入受控網域

若要加入受控網域,請使用 Winbind 以及 YaST 命令列介面

  • 加入網域:

    sudo yast samba-client joindomain domain=aaddscontoso.com user=<admin> password=<admin password> machine=<(optional) machine account>
    

使用來自終端機的 Winbind 將 VM 加入受控網域

若要使用 Winbindsamba net 命令加入受控網域:

  1. 安裝 kerberos 用戶端和 samba-winbind:

    sudo zypper in krb5-client samba-winbind
    
  2. 編輯組態檔:

    • /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
      
  3. 檢查 Microsoft Entra ID 和 Linux 的日期和時間是否同步。將 Microsoft Entra 伺服器新增至 NTP 服務即可進行這項作業:

    1. 將下面這行新增至 /etc/ntp.conf

      server aaddscontoso.com
      
    2. 重新啟動 NTP 服務:

      sudo systemctl restart ntpd
      
  4. 加入網域:

    sudo net ads join -U Administrator%Mypassword
    
  5. 啟用 Winbind 作為 Linux 插入式驗證模組 (PAM) 中的登入來源:

    config pam-config --add --winbind
    
  6. 啟用自動建立主目錄,讓使用者可以登入:

    sudo pam-config -a --mkhomedir
    
  7. 啟動並啟用 Winbind 服務:

    sudo systemctl enable winbind
    sudo systemctl start winbind
    

允許 SSH 的密碼驗證

根據預設,使用者只能使用 SSH 公開金鑰型驗證登入 VM。 密碼式驗證失敗。 當您將 VM 加入受控網域時,這些網域帳戶都必須使用密碼型驗證。 更新 SSH 組態允許密碼型驗證,如下所示。

  1. 使用編輯器開啟 sshd_conf 檔案:

    sudo vi /etc/ssh/sshd_config
    
  2. PasswordAuthentication 一行更新為

    PasswordAuthentication yes
    

    完成後,請使用編輯器的 :wq 命令儲存並結束 sshd_conf 檔案。

  3. 若要套用變更並讓使用者使用密碼登入,請重新開機 SSH 服務:

    sudo systemctl restart sshd
    

授與 'AAD DC Administrators' 群組 sudo 權限

若要授與 SLE VM 上 AAD DC Administrators 群組系統管理許可權的成員,請將專案新增至 /etc/sudoers。 新增後,AAD DC Administrators 群組的成員就能使用 SLE VM 上的 sudo 命令。

  1. 開啟 sudoers 檔案進行編輯:

    sudo visudo
    
  2. 將下列項目新增至 /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 連線。 確認已建立主目錄,且已套用網域中的群組成員資格。

  1. 從主控台建立新的 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
    
  2. 成功連線到 VM 時,請確認已正確初始化主目錄:

    sudo pwd
    

    您應該在 /home 目錄中,且目錄符合使用者帳戶。

  3. 現在檢查是否已正確解析群組成員資格:

    sudo id
    

    您應該會看到來自受控網域的群組成員資格。

  4. 如果您以 AAD DC Administrators 群組的成員身分登入 VM,請檢查您是否可以正確使用 sudo 命令:

    sudo zypper update
    

下一步

如果您將 VM 連線到受控網域或使用網域帳戶登入時遇到問題,請參閱針對網域加入問題進行疑難排解