通知

Duet AI 現已更名為 Google Workspace 專用 Gemini。瞭解詳情

4. 將 LDAP 用戶端連線至安全 LDAP 服務

請參考本文的操作說明,將 LDAP 用戶端連線至安全 LDAP 服務。

重要事項:

  • 請務必詳閱供應商的說明文件
    本文就如何將 LDAP 用戶端連線至安全 LDAP 服務提供的詳細資料僅供參考,相關資訊可能隨時變更。除了這些操作說明外,請務必詳閱供應商說明文件,瞭解將用戶端連線至安全 LDAP 服務的最新步驟。
  • 事前準備
    按照以下說明操作之前,請確認您已將用戶端新增至安全 LDAP 服務設定存取權限下載用戶端憑證和金鑰;此外,您可以視需要建立存取憑證
  • 連線能力測試
    開始進行以下步驟前,建議您視需要使用 ldapsearchADSIldp.exe 等簡易工具快速執行連線測試。如果在嘗試將 LDAP 用戶端連線至服務時發生錯誤,您也可以使用這些工具排解問題。如需操作說明,請參閱安全 LDAP 連線能力測試
  • 如何完成設定步驟
    按照本頁操作說明建立 LDAP 用戶端連線後,您必須在 Google 管理控制台中將服務狀態切換成「開啟」,才能完成 LDAP 用戶端設定。如需操作說明,請參閱 5. 將 LDAP 用戶端切換成「開啟」

本文內容

本文包含以下各節說明:

在以下說明中,我們假設您下載的用戶端金鑰和憑證檔案分別為 ldap-client.keyldap-client.crt

基本設定操作說明

本節將介紹 LDAP 用戶端連線至安全 LDAP 服務的一般設定步驟。如果以下操作說明未提到您的 LDAP 用戶端,請參閱該應用程式的說明文件。

注意:進行使用者驗證期間,Atlassian Jira 和 SSSD 等特定 LDAP 用戶端會執行使用者查詢作業,藉此取得更多使用者資訊。為確保這類 LDAP 用戶端的使用者驗證作業順利進行,您必須為所有已開啟「驗證使用者憑證」權限的機構單位一併開啟「讀取使用者資訊」權限 (如需操作說明,請參閱設定存取權限)。

如何將 LDAP 用戶端連線到安全 LDAP 服務:

  1. 使用 Cloud Directory 將 LDAP 用戶端設定為 LDAP 伺服器。
  2. 將憑證上傳到 LDAP 用戶端。


    安全 LDAP 服務會使用傳輸層安全標準 (TLS) 用戶端憑證當做主要的驗證機制。如要開始將憑證上傳至 LDAP 用戶端,請開啟 LDAP 用戶端的驗證或目錄設定,然後從下表輸入詳細資料。

    注意:如需上傳 TLS 憑證的做法及位置的完整資訊,請參閱供應商的說明文件。

請參閱下表,瞭解基本連線資訊:

主機名稱

ldap.google.com

通訊埠

如為已啟用 StartTLS 的 LDAP,通訊埠是 389
如為 LDAPS (已啟用 SSL/TLS),通訊埠是 636

基準 DN

您的網域 (採用 DN 格式)。例如:

dc=example,dc=com 即表示「example.com」

使用者名稱和密碼

除了使用憑證進行驗證外,某些 LDAP 用戶端還會要求您輸入使用者名稱和密碼。如果使用者名稱和密碼不是必填欄位,您可以跳過此步驟。

在 Google 管理控制台中產生使用者名稱和密碼。如需操作說明,請參閱產生存取憑證

用戶端憑證和金鑰檔案

使用從 Google 管理控制台下載的憑證和金鑰檔案。如果 LDAP 用戶端並未提供透過用戶端憑證進行驗證的方式,請參閱將 stunnel 當做 Proxy 使用一節。

重要事項:Apache Directory Studio 等部分 LDAP 用戶端不支援上傳數位憑證。如果遇到這種情況,請參閱將 stunnel 當做 Proxy 使用一節。

特定 LDAP 用戶端的設定操作說明

ADSI Edit (Windows)

步驟如下:

  1. 按照 ldp.exe (Windows) 一節的步驟 1 至 11 安裝用戶端憑證。
  2. 依序點選 [動作] > [連線至…]
  3. 輸入下列連線設定:

    名稱:輸入連線名稱,例如「Google LDAP」
    連接點:「選取或輸入辨別名稱或命名內容」
    以 DN 格式輸入您的網域名稱 (假設您的網域為「example.com」,則輸入「dc=example,dc=com」)。

    電腦:「選取或輸入網域或伺服器」
    ldap.google.com

    使用 SSL 型加密:已勾選
     
  4. 按一下 [進階…] ,然後輸入下列詳細資料:

    指定認證:已勾選
    使用者名稱:管理控制台的存取憑證使用者名稱
    密碼:管理控制台的存取憑證密碼
    連接埠號碼:636
    通訊協定:LDAP
    簡單繫結驗證:已勾選
     
  5. 按一下 [確定],再按一下 [確定]
  6. 如果連線成功,右側窗格就會顯示基準 DN 中的 Active Directory 內容。
Apache Directory Studio

如要使用 Apache Directory Studio,請透過 stunnel 建立連線,並使用 Google 管理控制台產生的存取憑證 (使用者名稱和密碼)。假設您已備妥憑證,且 stunnel 正在聽取 localhost 通訊埠 1389。請按照以下步驟操作:

  1. 依序按一下 [File] (檔案) > [New…] (新增…)。
  2. 依序選取 [LDAP Browser] (LDAP 瀏覽器) > [LDAP Connection] (LDAP 連線)。
  3. 點選 [Next] (下一步)。
  4. 輸入連線參數:

    Connection name (連線名稱):選擇一個名稱,例如「Google LDAP」
    Hostname (主機名稱):localhost
    Port (通訊埠):1389 (或 stunnel 聆聽/接受通訊埠)
    Encryption method (加密方式):No encryption (無加密)。請注意:如果您是從遠端執行 stunnel,建議您在 stunnel 和用戶端之間進行加密。
     
  5. 點選 [Next] (下一步)。
  6. 輸入驗證參數:

    Authentication Method (驗證方式):Simple Authentication (簡單驗證)
    Bind DN or user (繫結 DN 或使用者):管理控制台的存取憑證使用者名稱
    Bind password (繫結密碼):管理控制台的存取憑證密碼
     
  7. 點選 [Next] (下一步)。
  8. 輸入基準 DN。
    這是以 DN 格式輸入的網域名稱 (假設您的網域為「example.com」,則輸入 dc=example,dc=com)。
  9. 按一下 [Finish] (完成)。
Atlassian Jira

進行使用者驗證期間,Atlassian Jira 會執行使用者查詢,藉此取得使用者的更多資訊。為了確保這個 LDAP 用戶端的使用者驗證程序順利進行,您必須針對已開啟「驗證使用者憑證」的所有機構單位開啟「讀取使用者資訊」和「讀取群組資訊」(如需操作說明,請參閱設定存取權限)。

重要事項:如按照下列說明操作,KeyStorePassword 可能會曝露給使用者和記錄檔。請採取預防措施,防止他人在未經授權的情況下存取本機殼層、記錄檔與 Google 管理控制台。除了下列操作說明之外,您也可以使用 stunnel4 方法;詳情請參閱選用:將 stunnel 當做 Proxy 使用一節。

注意:下列操作說明是以 Jira 已安裝於 /opt/atlassian/jira 為前提。

如要將 Atlassian Jira 用戶端連接至安全 LDAP 服務:

  1. 將憑證和金鑰複製到 Jira 伺服器 (這是將 LDAP 用戶端新增到安全 LDAP 服務時在 Google 管理控制台中產生的憑證)。

    例如:
    $  scp ldap-client.key user@jira-server:
     
  2. 將憑證和金鑰轉換為 Java KeyStore 格式。系統在此過程中會提示您輸入密碼。為了方便起見,請選擇一組安全的密碼,並在每次系統提示時使用同一組密碼。

    $  openssl pkcs12 -export -out jira-ldap.pkcs12 -in ldap-client.crt -inkey ldap-client.key

    $  sudo /opt/atlassian/jira/jre/bin/keytool -v -importkeystore -srckeystore jira-ldap.pkcs12 -srcstoretype PKCS12 -destkeystore /opt/atlassian/jira/jira-ldap.jks -deststoretype JKS

     
  3. 設定 Jira 以使用新建立的 KeyStore。請按照這裡的操作說明新增選項:

    “-Djavax.net.ssl.keyStore=/opt/atlassian/jira/jira-ldap.jks -Djavax.net.ssl.keyStorePassword=password”

    如果您使用的是 Linux 電腦,請按照以下步驟操作:
    1. 編輯 /opt/atlassian/jira/bin/setenv.sh
    2. 找出 JVM_SUPPORT_RECOMMENDED_ARGS 設定。
    3. 新增「-Djavax.net.ssl.keyStore=/opt/atlassian/jira/jira-ldap.jks -Djavax.net.ssl.keyStorePassword=password」,並將「password」換成您在上面選取的密碼。
  4. 重新啟動 Jira。

    $  /opt/atlassian/jira/bin/stop-jira.sh
    $  /opt/atlassian/jira/bin/start-jira.sh

     
  5. 以管理員身分登入 Jira 網頁介面。
    1. 依序前往 [Settings] (設定) > [User management] (使用者管理) (如需設定,請點選右上角的齒輪圖示)。
    2. 按一下 [User Directories] (使用者目錄)
    3. 按一下 [Add Directory] (新增目錄)
    4. 類型選擇「LDAP」
    5. 點選 [Next] (下一步)。
  6. 輸入以下資訊:

    Name (名稱)

    Google 安全 LDAP

    Directory type (目錄類型)

    OpenLDAP

    Hostname (主機名稱)

    ldap.google.com

    Port (通訊埠)

    636

    Use SSL (使用 SSL)

    已勾選

    Username (使用者名稱)

    在 Google 管理控制台中產生使用者名稱和密碼。如需操作說明,請參閱產生存取憑證

    Password (密碼)

    在 Google 管理控制台中產生使用者名稱和密碼。如需操作說明,請參閱產生存取憑證

    Base DN (基準 DN)

    以 DN 格式輸入的網域名稱 (假設您的網域為「example.com」,則輸入 dc=example,dc=com)。

    Additional User DN (其他使用者 DN)

    Optional. “ou=Users”

    Additional Group DN (其他群組 DN)

    Optional. “ou=Groups”

    LDAP Permissions (LDAP 權限)

    唯讀

    Advanced Settings (進階設定)

    未變更

    User Schema Settings (使用者架構設定) >
    User Name Attribute (使用者名稱屬性)

    googleUid

    User Schema Settings (使用者架構設定) >
    User Name RDN Attribute (使用者名稱 RDN 屬性)

    uid

    Group Schema Settings (群組架構設定) >
    Group Object Class (群組物件類別)

    groupOfNames

    Group Schema Settings (群組架構設定) >
    Group Object Filter (群組物件篩選器)

    (objectClass=groupOfNames)

    Membership Schema Settings (成員資格架構設定) >
    Group Members Attribute (群組成員屬性)

    member

    Membership Schema Settings (成員資格架構設定) >
    Use the User Membership Attribute (採用使用者成員資格屬性)

    已勾選

     

  7. 將角色授予群組。

    使用者必須加入具備 Jira 存取權的群組,才能登入 Atlassian Jira。

    如何將角色授予群組:
    1. 依序前往 [Settings] (設定) > [Applications] (應用程式) > [Application access] (應用程式存取權)
    2. 在「Select group」(選取群組) 文字方塊中,輸入您要授予 Jira 存取權的 Google 群組名稱。
CloudBees Core/Jenkins

如需將 CloudBees Core 連線至安全 LDAP 服務的操作說明,請參閱 Configure CloudBees Core with Google's Cloud Identity Secure LDAP (透過 Google 的 Cloud Identity 安全 LDAP 設定 CloudBees Core)。

FreeRadius

步驟如下:

  1. FreeRADIUS 安裝到 /etc/freeradius/3.0/ 並進行設定。

    FreeRADIUS 安裝完畢後,您可以安裝「freeradius-ldap」外掛程式,以便新增 LDAP 設定。

    $  sudo apt-get install freeradius freeradius-ldap
     
  2. 將 LDAP 用戶端金鑰和憑證檔案分別複製到 /etc/freeradius/3.0/certs/ldap-client.key/etc/freeradius/3.0/certs/ldap-client.crt

    $  chown freeradius:freeradius
         /etc/freeradius/3.0/certs/ldap-client.*
    $  chmod 640 /etc/freeradius/3.0/certs/ldap-client.*

     
  3. 啟用 LDAP 模組。

    $  cd /etc/freeradius/3.0/mods-enabled/
    $  ln -s ../mods-available/ldap ldap

     
  4. 編輯 /etc/freeradius/3.0/mods-available/ldap
    1. ldap->server = 'ldaps://ldap.google.com:636'
    2. identity = 應用程式憑證中的使用者名稱
    3. password = 應用程式憑證中的密碼
    4. base_dn = ‘dc=domain,dc=com’
    5. tls->start_tls = no
    6. tls->certificate_file = /etc/freeradius/3.0/certs/ldap-client.cer
    7. tls->private_key_file = /etc/freeradius/3.0/certs/ldap-client.key
    8. tls->require_cert = ‘allow’
    9. 找到代表「dap -> post-auth -> update」部分的導覽標記,為其中的所有欄位加上註解
  5. ​編輯 /etc/freeradius/3.0/sites-available/default
    這會修改 FreeRadius 用戶端連線。如果您使用的不是預設用戶端,請務必更新您所設定的相關用戶端 (inner-tunnel 或任何自訂用戶端)。
     
    1. 修改「authorize」(授權) 部分,在底部的「password authentication protocol (PAP) statement」(密碼驗證通訊協定聲明) 後面加入下列區塊:

      if (User-Password) {
          update control {
              Auth-Type := ldap
          }
      }

       
    2. 在「authorize」(授權) 部分移除 LDAP 前面的「-」符號,藉此啟用 LDAP。

          #
          #  ldap 模組會從 LDAP 資料庫讀取密碼。
          ldap
       
    3. 修改「authenticate」(驗證) 部分,使用下列字串修改「Auth-Type LDAP」區塊:

      # Auth-Type LDAP {
          ldap
      # }

       
    4. 修改「authenticate」(驗證) 部分,使用下列字串修改「Auth-Type PAP」區塊:

      Auth-Type PAP {
          #  pap
          ldap
      }
GitLab

如需將 GitLab 連線至安全 LDAP 服務的操作說明,請參閱 Configure Google Secure LDAP for GitLab (為 GitLab 設定 Google 安全 LDAP)。

Itopia/Ubuntu

如需將 Itopia/Ubuntu 連線至安全 LDAP 服務的操作說明,請參閱 Configuring Google Cloud Identity LDAP on Ubuntu 16.04 for user logins (在 Ubuntu 16.04 上設定 Google Cloud Identity LDAP 以供使用者登入)。

Ivanti/LanDesk

步驟如下:

  1. 在 Ivanti 網路伺服器找出以下兩個資料夾,然後透過文字編輯器開啟其中的 OpenLDAPAuthentificationConfiguration.xmlOpenLDAPSSLAuthentificationConfiguration.xml

    C:\ProgramData\LANDesk\ServiceDesk\servicedesk.FrameworkC:\ProgramData\LANDesk\ServiceDesk\servicedesk.WebAccess (其中的「servicedesk」是執行個體名稱)
  2. <Server> 值更新為 ldap.google.com
  3. 更新 <Port> 值,將純文字通訊埠改為 3268 並啟用 StartTLS;另外將 SSL/TLS 通訊埠改為 3269 (預設值如果是 389,就代表純文字通訊埠;如果是 636,則代表 SSL/TLS 通訊埠)。
  4. <TestDN> 值設為 DN 格式的網域名稱 (假設您的網域為「example.com」,則輸入 dc=example,dc=com)。
  5. ..ProgramData\LANDesk\ServiceDesk\ServiceDesk.Framework\tps.config..ProgramData\LANDesk\ServiceDesk\WebAccess\tps.config 中加入以下指令列:

    <add key="AuthenticationProvider" value="Touchpaper.Integrations.OpenLDAPLogon.OpenLDAPAuthenticationProvider" />

    或加入以下指令列:

    <add key="AuthenticationProvider" value="Touchpaper.Integrations.OpenLDAPSSLLogon.OpenLDAPSSLAuthenticationProvider" />
     
  6. 在 Ivanti Configuration Center 開啟所需執行個體。
  7. 按一下 Service Desk Framework 應用程式旁邊的 [Edit] (編輯)
    畫面上會隨即顯示 Service Desk Framework 的「Edit Application」(編輯應用程式) 對話方塊。
  8. 在「Configuration parameters」(設定參數) 群組的「Logon policy」(登入政策) 清單中,選取 [Explicit only] (僅限明確),然後按一下 [OK] (確定)
  9. 按一下 Web Access 應用程式旁邊的 [Edit] (編輯)。
    畫面上會隨即顯示 Web Access 的「Edit Application」(編輯應用程式) 對話方塊。
  10. 在「Configuration parameters」(設定參數) 群組的「Logon policy」(登入政策) 清單中,選取 [Explicit only](僅限明確),然後按一下 [OK] (確定)

登入時,請輸入相關聯網域使用者的網路密碼。

LDAP 伺服器驗證異常狀況記錄功能

如果您無法順利設定 LDAP 伺服器驗證,可以啟用異常狀況記錄功能來找出問題。異常狀況記錄功能預設為停用,建議您在調查問題完畢後重新停用這項功能。

如何啟用 LDAP 伺服器驗證異常狀況記錄功能:

  1. 在文字編輯器中開啟相應的驗證設定 XML 檔案:

    DirectoryServiceAuthenticationConfiguration.xmlOpenLDAPAuthenticationConfiguration.xmlOpenLDAPSSLAuthenticationConfiguration.xml
  2. 將以下指令列:

    <ShowExceptions>false</ShowExceptions>
    變更為
    <ShowExceptions>true</ShowExceptions>
     
  3. 儲存變更。
Ldp.exe (Windows)

步驟如下:

  1. 將憑證和金鑰檔案轉換成一個 PKCS12 格式的檔案。在命令提示字元視窗輸入下列指令:

    如果您使用的是 macOS 或 Linux,請輸入以下指令:

    openssl pkcs12 -inkey ldap-client.key -in ldap-client.crt -export -out ldap-client.p12

    輸入密碼,將輸出檔案加密。
     

    如果您使用的是 Windows,請輸入以下指令:

    $  certutil -mergepfx ldap-client.crt ldap-client.p12

    重要事項:「<憑證檔案>.crt」和「<憑證檔案>.key」這兩個檔案必須位於相同的目錄中。此外,請確認「key」和「crt」檔案的名稱相同 (只有副檔名不同)。以下範例使用的名稱為「ldap-client.crt」和「ldap-client.key」

  2. 前往控制台。
  3. 在搜尋框中搜尋「憑證」,然後按一下 [管理使用者憑證]。
  4. 依序前往 [動作] > [所有工作] > [匯入…]。
  5. 選取 [目前使用者],然後點選 [下一步]。
  6. 按一下 [瀏覽…]。
  7. 在對話方塊右下角的「檔案類型」下拉式選單中,選取 [個人資訊交換 (*.pfx;*.p12)]
  8. 選取步驟 2 的 ldap-client.p12 檔案,然後依序點選 [開啟] 和 [下一步]
  9. 輸入步驟 2 的密碼,然後點選 [下一步]。
  10. 選取 [個人] 憑證存放區,然後依序點選 [下一步] 和 [完成]。
  11. 執行 Ldp.exe
  12. 依序前往 [連線] > [連線…]。
  13. 輸入下列連線詳細資料:

    伺服器:ldap.google.com
    通訊埠:636
    沒有連線:未勾選
    SSL:已勾選
     
  14. 按一下 [確定]
  15. 依序點選 [檢視] > [樹狀目錄]。
  16. 輸入基準 DN,也就是 DN 格式的網域名稱 (假設您的網域為「example.com」,則輸入 dc=example,dc=com)。
  17. 按一下 [確定]
  18. 如果連線成功,LDP.exe 就會在右側窗格顯示 Active Directory 內容 (例如基準 DN 內的所有屬性)。
Netgate/pfSense

如需將 Netgate/pfSense 連線至安全 LDAP 服務的操作說明,請參閱 Configuring Google Cloud Identity as an Authentication Source (將 Google Cloud Identity 設為驗證來源)。

OpenLDAP/ldapsearch (Linux)

如要透過指令列存取 LDAP 目錄,您可以使用 OpenLDAP ldapsearch 指令。

假設您的用戶端憑證和金鑰檔案分別為 ldap-client.crtldap-client.key而您的網域為 example.com,使用者名稱為 jsmith

$   LDAPTLS_CERT=ldap-client.crt LDAPTLS_KEY=ldap-client.key ldapsearch -H ldaps://ldap.google.com -b dc=example,dc=com '(uid=jsmith)'

這個指令可將相關環境變數設為指向用戶端金鑰。此外,您可以將其他 ldapsearch 選項替換成所需篩選器、要求的屬性等等。如需其他詳細資訊,請參閱 ldapsearch 手冊頁 (「man ldapsearch」)。

ldapsearch (macOS)

步驟如下:

  1. 將憑證和金鑰檔案轉換成一個 PKCS12 格式的檔案。在命令提示字元視窗輸入下列指令:

    openssl pkcs12 -inkey ldap-client.key -in ldap-client.crt -export -out ldap-client.p12

    輸入密碼,將輸出檔案加密。
     
  2. 按一下選單列右上角的 圖示,然後輸入 Keychain Access
  3. 開啟「鑰匙圈存取」應用程式,然後點選左側清單中的 [系統]
  4. 按一下選單列左上方的 [檔案] 選項並選取 [輸入項目]
  5. 找到 ldap-client.p12 產生的位置,選取 [ldap-client.p12],然後按一下 [開啟]
    系統顯示提示時,請輸入您的密碼。
    名稱為「LDAP Client」的憑證應會顯示在系統鑰匙圈憑證的清單中。
  6. 點選「LDAP Client」憑證旁邊的箭頭。私密金鑰會出現在下方。 
    1. 按兩下私密金鑰。
    2. 從對話方塊中選取 [取用權限控制] 分頁標籤,然後按一下左下角的「+」圖示。
    3. 在隨即開啟的視窗輸入 Command+Shift+G 即可開啟新視窗,然後將現有文字改成 /usr/bin/ldapsearch

    4. 按一下 [前往]

      系統會開啟醒目顯示 ldapsearch 的視窗。

    5. 按一下 [新增]

    6. 按一下 [儲存變更],並在系統提示時輸入您的密碼。

      現在您可以使用 OpenLDAP ldapsearch 指令,透過指令列存取 LDAP 目錄了。

  7. 假設您先前匯入鑰匙圈的 ldap-client.p12 檔案名為 LDAP Client,您的網域是 example.com 且使用者名稱為 jsmith,請輸入下列指令:

    $   LDAPTLS_IDENTITY="LDAP Client" ldapsearch -H ldaps://ldap.google.com:636 -b dc=example,dc=com '(uid=jsmith)'

這個指令可將相關環境變數設為指向已匯入的用戶端憑證。此外,您可以將其他 ldapsearch 選項替換成所需篩選器、要求的屬性等等。如需詳細資訊,請參閱 ldapsearch 說明文件頁面 (指令為「man ldapsearch」)。

OpenVPN (社群版)

步驟如下:

  1. 視需要安裝及設定 OpenVPN;如已安裝並設定完成,則請在 OpenVPN 中開啟設定頁面。

    一般 VPN 設定不在本文的說明範圍內。設定 VPN 後,您就可以透過 LDAP 新增使用者驗證和授權。具體來說,您必須安裝「openvpn-auth-ldap」外掛程式。

    $  sudo apt-get install openvpn openvpn-auth-ldap
     
  2. 將 LDAP 用戶端金鑰和憑證檔案分別複製到 /etc/openvpn/ldap-client.key/etc/openvpn/ldap-client.crt
  3. 建立包含以下內容的 /etc/openvpn/auth-ldap.conf 檔案 (假設網域名稱為「example.com」):

    <LDAP>
      URL ldaps://ldap.google.com:636 #
      Timeout 15
      TLSEnable false
      TLSCACertDir /etc/ssl/certs
      TLSCertFile /etc/openvpn/ldap-client.crt
      TLSKeyFile /etc/openvpn/ldap-client.key
    </LDAP>
    <Authorization>
      BaseDN "dc=example,dc=com"
      SearchFilter "(uid=%u)" # (或是為使用者選擇您自己的 LDAP 篩選器)
      RequireGroup false
    </Authorization>

     
  4. 編輯 OpenVPN 設定檔,通常名為「/etc/openvpn/server.conf」或其他類似名稱。在檔案底部加入下列指令:

    plugin /usr/lib/openvpn/openvpn-auth-ldap.so /etc/openvpn/auth-ldap.conf
    verify-client-cert optional

     
  5. 重新啟動 OpenVPN 伺服器。

    $  sudo systemctl restart openvpn@server
     
  6. 將 VPN 用戶端設為採用使用者的使用者名稱和密碼。例如,在 OpenVPN 用戶端設定中將 auth-user-pass 新增到 OpenVPN 用戶端設定檔結尾,然後啟動 OpenVPN 用戶端:

    $  openvpn --config /path/to/client.conf
     
  7. 按照操作說明將 stunnel 當做 Proxy 使用
OpenVPN 存取伺服器 (商業版)

如需將 OpenVPN 存取伺服器連線至安全 LDAP 服務的操作說明,請參閱 Configuring Google Secure LDAP with OpenVPN Access Server (透過 OpenVPN 存取伺服器設定 Google 安全 LDAP)。

PaperCut MF 和 PaperCut NG

如需將 PaperCut 連線至安全 LDAP 服務的操作說明,請參閱 How to sync and authenticate Google Workspace and Google Cloud Identity users in PaperCut (如何在 PaperCut 中同步處理及驗證 Google Workspace 和 Google Cloud Identity 使用者)。

Puppet Enteprise

如需將 Puppet Enterprise 連線至安全 LDAP 服務的操作說明,請參閱 Google Cloud Directory for PE (PE 適用的 Google Cloud Directory)。

Softerra LDAP Browser

重要事項:開始設定前,請先確認已安裝 Softerra LDAP Browser 4.5 (4.5.19808.0) 以上版本。詳情請參閱 LDAP Browser 4.5

步驟如下:

  1. 將憑證和金鑰檔案轉換成一個 PKCS12 格式的檔案。在命令提示字元視窗輸入下列指令:

    如果您使用的是 macOS 或 Linux,請輸入以下指令:

    openssl pkcs12 -inkey ldap-client.key -in ldap-client.crt -export -out ldap-client.p12

    輸入密碼,將輸出檔案加密。
     

    如果您使用的是 Windows,請輸入以下指令:

    $  certutil -mergepfx ldap-client.crt ldap-client.p12

    重要事項:「<憑證檔案>.crt」和「<憑證檔案>.key」這兩個檔案必須位於相同的目錄中。此外,請確認「key」和「crt」檔案的名稱相同 (只有副檔名不同)。以下範例使用的名稱為「ldap-client.crt」和「ldap-client.key」

  2. 在 Softerra LDAP Browser 中安裝金鑰組。
    1. 依序前往 [Tools] (工具) > [Certificate Manager] (憑證管理員)
    2. 點選 [Import…] (匯入…)。
    3. 點選 [Next] (下一步)。
    4. 點選 [Browse…] (瀏覽…)。
    5. 在對話方塊右下角的「File type」(檔案類型) 下拉式清單中,選取 [Personal Information Exchange (*.pfx;*.p12)] (個人資訊交換 (*.pfx;*.p12))
    6. 選取上述步驟 2 中的 ldap-client.p12 檔案。
    7. 依序點選 [Open] (開啟) 和 [Next] (下一步)
    8. 輸入上述步驟 2 中的密碼,然後點選 [Next] (下一步)。
    9. 選取 [Personal] (個人) 憑證存放區。
    10. 點選 [Next] (下一步)。
    11. 點選 [Finish] (完成)。
  3. 新增伺服器設定檔。
    1. 依序前往 [File] (檔案) > [New] (新增) > [New Profile…] (新設定檔…)
    2. 輸入設定檔名稱,例如「Google LDAP」
    3. 點選 [Next] (下一步)。

      輸入以下資訊:

      Host (主機):ldap.google.com
      Port (通訊埠):
      636
      Base DN (基準 DN):以 DN 格式輸入的網域名稱 (假設您的網域為 example.com,則輸入 dc=example,dc=com)。
      Use secure connection (SSL) (使用安全連線 (SSL)):已勾選
       
    4. 點選 [Next] (下一步)。
    5. 選取 [External (SSL Certificate)] (外部 (SSL 憑證))。
    6. 點選 [Next] (下一步)。
    7. 點選 [Finish] (完成)。
Sophos Mobile

如需將 Sophos Mobile 連線至安全 LDAP 服務的操作說明,請參閱 Connecting Sophos Mobile to Google Cloud Identity/Google Cloud Directory using Secure LDAP (使用安全 LDAP 將 Sophos Mobile 連線至 Google Cloud Identity/Google Cloud Directory)。

Splunk

將 Splunk 連線至安全 LDAP 服務時,請務必使用 Splunk 8.1.4 以上版本。使用 Splunk 8.1.3 等舊版 Splunk 時,系統可能會向 LDAP 伺服器傳送過多 LDAP 查詢,導致 LDAP 配額快速用盡。如要進一步瞭解 Splunk 8.1.3 版的問題,請參閱 Splunk 的已知問題

步驟如下:

  1. 將 LDAP 用戶端金鑰和憑證檔案分別複製到 /home/splunk/splunkadmin/etc/openldap/certs/ldap-client.key/home/splunkadmin/splunk/etc/openldap/certs/ldap-client.crt

    $  cat /home/splunkadmin/splunk/etc/openldap/certs/ldap-client.crt /home/splunkadmin/splunk/etc/openldap/certs/ldap-client.key > /home/splunkadmin/splunk/etc/openldap/certs/ldap-client.pem

    $  sudo chown $(splunkuser):$(splunkuser) /home/splunkadmin/splunk/etc/openldap/certs/ldap-client.*

    $  sudo chmod 644 /home/splunkadmin/splunk/etc/openldap/certs/ldap-client.*

     
  2. 編輯 ldap.conf 檔案,新增以下設定:

    ssl start_tls
    TLS_REQCERT never
    TLS_CERT /home/splunkadmin/splunk/etc/openldap/certs/ldap.pem
    TLS_KEY /home/splunkadmin/splunk/etc/openldap/certs/ldap.pem

  3. 在使用者的 /home/splunkadmin/.ldaprc 檔案中新增以下設定:

    TLS_CERT /home/splunkadmin/splunk/etc/openldap/certs/ldap-client.pem
    TLS_KEY /home/splunkadmin/splunk/etc/openldap/certs/ldap-client.pem

     
  4. 使用 Splunk 網頁 UI 新增 LDAP 策略。請輸入以下詳細資料,然後按一下 [儲存]
     

名稱

Google 安全 LDAP

主機

ldap.google.com

Port (通訊埠)

636

SSL 已啟用

已勾選

連線順序

1

繫結 DN

輸入您在 Google 管理控制台產生的存取憑證

繫結 DN 密碼

輸入您在 Google 管理控制台產生的存取憑證

基準 DN

以 DN 格式輸入的網域名稱 (假設您的網域為「example.com」,則輸入 dc=example,dc=com)

User base filter (使用者數量篩選器)

針對要用來篩選使用者的物件類別輸入使用者數量篩選器。

User name attribute (使用者名稱屬性)

uid

實際名稱屬性

displayname

電子郵件屬性

mail

群組對應屬性

dn

群組基準 DN

DN 格式的網域名稱 (假如您的網域為「example.com」,請輸入「ou=Groups,dc=example,dc=com」)。

Static group search filter (靜態群組搜尋篩選器)

針對要用來篩選靜態群組的物件類別輸入靜態群組搜尋篩選器。

Group name attribute (群組名稱屬性)

cn

靜態成員屬性

member

 

SSSD (Red Hat Enterprise 與 CentOS)

進行使用者驗證期間,SSSD 會執行使用者查詢,藉此取得使用者的更多資訊。為了確保這個 LDAP 用戶端的使用者驗證程序順利進行,您必須針對已開啟「驗證使用者憑證」的所有機構單位開啟「讀取使用者資訊」和「讀取群組資訊」(如需操作說明,請參閱設定存取權限)。

如何在 Red Hat 8 或 CentOS 8 中將 SSSD 用戶端連線至安全 LDAP 服務:

  1. 將 SSSD 用戶端新增至安全 LDAP 服務:
    1. 在 Google 管理控制台中,依序前往 [應用程式] > [LDAP] > [新增用戶端]
      請務必使用公司帳戶 (而非個人 Gmail 帳戶) 登入。
    2. 輸入用戶端詳細資料,然後按一下 [繼續]
    3. 設定「存取權限」
      驗證使用者憑證 - 整個網域
      讀取使用者資訊 - 整個網域
      讀取群組資訊 - 開啟
    4. 按一下 [新增 LDAP 用戶端]。
    5. 下載系統產生的憑證。
    6. 按一下 [繼續前往用戶端詳細資料]
    7. 將服務狀態變更為「開啟」
  2. 安裝依附元件:

    dnf install openldap-clients sssd-ldap
    install -d --mode=700 --owner=sssd --group=root /etc/sssd/ldap


    解壓縮憑證的 ZIP 檔案,然後將 .crt 與 .key 檔案複製到 /etc/sssd/ldap
     
  3. (選用) 使用 ldapsearch 進行測試:

    LDAPTLS_REQCERT=never \
    LDAPTLS_KEY=Google.key \
    LDAPTLS_CERT=Google.crt \
    ldapsearch -H ldaps://ldap.google.com:636/ \
    -b dc=example,dc=com \
    -D <待驗證的使用者>@example.com \
    -W \
    '(mail=<待驗證的使用者>@example.com)' \
    mail dn


    看到系統提示時,輸入使用者的 Google 密碼。

    注意:使用者必須擁有 Google Workspace Enterprise 或 Cloud Identity 進階版的授權。

  4. 使用下列內容建立 /etc/sssd/sssd.conf 檔案:
     

    [sssd]
    services = nss, pam
    domains = example.com

    [domain/example.com]
    ldap_tls_cert = /etc/sssd/ldap/Google.crt
    ldap_tls_key = /etc/sssd/ldap/Google.key
    ldap_tls_reqcert = never
    ldap_uri = ldaps://ldap.google.com
    ldap_search_base = dc=example,dc=com
    id_provider = ldap
    auth_provider = ldap
    ldap_schema = rfc2307bis
    ldap_user_uuid = entryUUID

  5. 更新權限與 SELinux 標籤:

    chown 0:0 /etc/sssd/sssd.conf /etc/sssd/ldap/*
    chmod 600 /etc/sssd/sssd.conf /etc/sssd/ldap/*
    restorecon -FRv /etc/sssd

     
  6. 重新啟動 SSSD:

    systemctl restart sssd
     
  7. 測試:

    從安全殼層到伺服器:

    ssh -l user@example.com {HOSTNAME}

疑難排解

  1. 檢查 SSSD 版本 (至少須為 1.15.2 版):

    # sssd --version
    2.2.3

     
  2. 在 RHEL/CentOS (或任何強制執行 SELinux 的發行版) 中,SSSD 設定檔、憑證檔和金鑰必須位於 sssd_conf_t 角色能夠存取的目錄:

    # egrep "object_r:sssd_conf_t" /etc/selinux/targeted/contexts/files/file_contexts

    查看 /var/log/audit/audit.log 是否有 AVC 拒絕訊息。
     

  3. 檢查 /etc/nsswitch.conf 的 passwd、shadow、group 與 netgroup 實體是否有「sss」:

    passwd:  files sss
    shadow:  files sss
    group:   files sss
    netgroup:  files sss


    在這裡,本機檔案會覆寫 LDAP 使用者。
     
  4. 檢查 /var/log/sssd.conf 是否有設定錯誤:
     

    例子:
    [sssd] [sss_ini_add_snippets] (0x0020): Config merge error: File /etc/sssd/sssd.conf did not pass access check. Skipping.

    動作:您必須將 .conf 檔案設定為 chmod 600。

    例子:
    [sssd] [sss_ini_call_validators] (0x0020): [rule/allowed_domain_options]: Attribute 'ldap_groups_use_matching_rule_in_chain' is not allowed in section 'domain/{DOMAIN}'. Check for typos.

    [sssd] [sss_ini_call_validators] (0x0020): [rule/allowed_domain_options]: Attribute 'ldap_initgroups_use_matching_rule_in_chain' is not allowed in section 'domain/{DOMAIN}'. Check for typos.

    動作:從 sssd.conf 移除符合 LDAP 延伸模組的不支援群組。

  5. 檢查 /var/log/sssd_{DOMAIN}.log 是否有 LDAP/network/auth 錯誤。

    範例:

    [sssd[be[example.com]]] [sss_ldap_init_sys_connect_done] (0x0020): ldap_install_tls failed: [Connect error] [error:1416F086:SSL routines:tls_process_server_certificate:certificate verify failed (self signed certificate)]

    動作:您必須將「ldap_tls_reqcert = never」加入 sssd.conf。

    如想取得更詳細的錯誤訊息,請在 sssd.conf 的網域區段下方新增「debug_level = 9」,然後重新啟動 SSSD。

SSSD (其他 Linux 發行版)

進行使用者驗證期間,SSSD 會執行使用者查詢,藉此取得使用者的更多資訊。為了確保這個 LDAP 用戶端的使用者驗證程序順利進行,您必須針對已開啟「驗證使用者憑證」的所有機構單位開啟「讀取使用者資訊」和「讀取群組資訊」(如需操作說明,請參閱設定存取權限)。

將 SSSD 用戶端連接到安全 LDAP 服務:

  1. 安裝 SSSD 1.15.2 以上版本。

    $  sudo apt-get install sssd
     
  2. 假設您的用戶端憑證和金鑰檔案分別名為 /var/ldap-client.crt/var/ldap-client.key,而您的網域為 example.com,則須依照下列設定編輯 /etc/sssd/sssd.conf


    [sssd]
    services = nss, pam
    domains = example.com

    [domain/example.com]
    ldap_tls_cert = /var/ldap-client.crt
    ldap_tls_key = /var/ldap-client.key
    ldap_uri = ldaps://ldap.google.com
    ldap_search_base = dc=example,dc=com
    id_provider = ldap
    auth_provider = ldap
    ldap_schema = rfc2307bis
    ldap_user_uuid = entryUUID
    ldap_groups_use_matching_rule_in_chain = true
    ldap_initgroups_use_matching_rule_in_chain = true
     

  3. 變更設定檔的擁有權和權限:

    $  sudo chown root:root /etc/sssd/sssd.conf
    $  sudo chmod 600 /etc/sssd/sssd.conf

  4. 重新啟動 SSSD:

    $  sudo service sssd restart

提示:如果您用於操作 SSSD 模組的 Linux 電腦在 Google Compute Engine 上沒有外部 IP 位址,只要啟用 Google 服務內部存取權,您還是可以連線到安全 LDAP 服務。詳情請參閱設定私人 Google 存取權

macOS

請按照下列步驟連線至 macOS 用戶端,以便使用安全 LDAP 服務進行使用者帳戶驗證。

系統需求

  • macOS 必須為 Catalina 10.15.4 以上版本。
  • 您必須擁有 Google 超級管理員使用者 ID,才能完成準備階段的步驟 1。
  • 您必須具備本機管理員權限才能進行這項設定。

目錄:

準備階段

本節主要說明如何進行手動設定及使用安全 LDAP 服務測試 macOS 驗證。

步驟 1:在 Google 管理控制台中將 macOS 新增為 LDAP 用戶端

如需操作說明,請參閱新增 LDAP 用戶端一文或觀看安全 LDAP 服務示範。在這個過程中,您也會下載一個自動產生的傳輸層安全標準 (TLS) 用戶端憑證。

步驟 2:將憑證匯入系統鑰匙圈

  1. 將憑證 (於步驟 1 下載的 ZIP 檔案) 和金鑰複製到 macOS 電腦。
    提示:將檔案解壓縮,以便搜尋憑證和金鑰檔案。
  2. 將金鑰組匯入系統鑰匙圈:
    1. 將金鑰和憑證轉換為一個 PKCS 12 (.p12) 檔案。在終端機執行下列指令:

      openssl pkcs12 -export -out ldap-client.p12 -in ldap-client.crt -inkey ldap-client.key

      提示:請記下 .p12 檔案的名稱。

      系統會要求您輸入密碼。請輸入要用於加密 .p12 檔案的密碼。

    2. 開啟「鑰匙圈存取」應用程式。

    3. 按一下系統鑰匙圈。

    4. 依序點選 [檔案] > [輸入項目]

    5. 選取在先前步驟中建立的「ldap-client.p12」檔案。

    6. 如果出現系統提示,請輸入管理員密碼,允許修改系統鑰匙圈。

    7. 輸入在先前步驟中建立的密碼,將 .p12 檔案解密。

      注意:金鑰清單中應該會顯示新的憑證和相關聯的私密金鑰,憑證的名稱可能為「LDAP Client」。請記下憑證名稱,以便執行下方的後續步驟。
       
    8. 按照本文「ldapsearch (macOS)」一節的步驟 6設定私密金鑰的存取權控管,以便新增下方指定的應用程式。如果「所有項目」類別中未顯示私密金鑰,請切換至「我的憑證」類別,然後展開相應的憑證以找出正確的私密金鑰項目。

      如操作說明中所述,ldapsearch 應用程式僅適用於疑難排解,不可用於其他用途。通常將 macOS 存取權授予使用者前,會先移除這個應用程式。

      您必須將下列三個應用程式加入存取控制清單 (ACL):

      /System/Library/CoreServices/Applications/Directory Utility
      /usr/libexec/opendirectoryd
      /usr/bin/dscl
  3. /etc/openldap/ldap.conf 檔案中新增以下指令列,確保在匯入 .p12 檔案後,「LDAP Client」就是 macOS「鑰匙圈存取」應用程式中顯示的憑證名稱 (該名稱源自系統所產生憑證的「X.509 主體一般名稱」):

    sudo bash -c 'echo -e "TLS_IDENTITY\tLDAP Client" >> /etc/openldap/ldap.conf'

步驟 3:將裝置指向 Google 目錄以進行驗證

開啟「目錄工具程式」應用程式,建立新的 LDAP 目錄節點:

  1. 按一下鎖頭圖示,即可進行變更並輸入密碼。
  2. 選取 [LDAPv3] 並點選鉛筆圖示,即可編輯設定。
  3. 按一下 [新增…]
  4. 輸入 ldap.google.com 做為伺服器名稱,選取 [使用 SSL 加密],然後點選 [手動]
  5. 選取新的伺服器名稱,然後按一下 [編輯…]
  6. 輸入描述性的設定名稱,例如「Google Secure LDAP」
  7. 選取 [使用 SSL 加密],並確認通訊埠已設為 636
  8. 前往「搜尋和對應」分頁
    1. 在下拉式清單中依序選取 [連接這個 LDAPv3 伺服器] > [RFC2307]
    2. 出現系統提示時,請在 [搜尋基準網域尾碼] 中輸入網域相關資訊,例如,針對「zomato.com」的網域名稱輸入 dc=zomato,dc=com
    3. 按一下 [確定]
    4. 在「使用者」記錄類型底下設定屬性:
      1. 在「記錄類型和屬性」部分選取 [使用者],然後按一下 [+] 按鈕。
      2. 在彈出式視窗中依序選取 [屬性類型] > [GeneratedUID],然後按一下 [好],關閉彈出式視窗。

        「GenerateUID」應該會顯示在展開後的「使用者」部分下方。
         
      3. 點選該 GeneratedUID,然後按一下右側方塊中的「+」圖示。
      4. 在文字方塊中輸入「apple-generateduid」,然後按下 Enter 鍵。
      5. 點選「使用者」節點下方的 [NFSHomeDirectory] 屬性。
      6. 在畫面右側,將這個屬性的值更新為 #/Users/$uid$
      7. 按一下 [確定],然後輸入密碼以儲存變更。
  9. 在「目錄公用程式」視窗中指定新的 LDAP 設定:
    1. 前往「搜尋政策」分頁。
    2. 按一下鎖頭圖示以進行變更,並在系統顯示提示時,輸入目前使用者的密碼。
    3. 將下拉式選單的選項從「搜尋路徑」改為「自訂路徑」
    4. 開啟「認證」分頁,然後點選「+」圖示。
    5. 在目錄網域清單中選擇 [/LDAPv3/ldap.google.com],然後按一下 [新增]
    6. 按一下 [套用] 按鈕;如果出現系統提示,請輸入管理員密碼。
  10. 執行下列四個指令,以停用 DIGEST-MD5、CRAM-MD5、NTLM 和 GSSAPI SASL 驗證機制。macOS 會透過 Google 安全 LDAP 服務使用「簡單綁定」進行驗證:

    sudo /usr/libexec/PlistBuddy -c "add ':module options:ldap:Denied SASL Methods:' string DIGEST-MD5" /Library/Preferences/OpenDirectory/Configurations/LDAPv3/ldap.google.com.plist 

    sudo /usr/libexec/PlistBuddy -c "add ':module options:ldap:Denied SASL Methods:' string CRAM-MD5" /Library/Preferences/OpenDirectory/Configurations/LDAPv3/ldap.google.com.plist

    sudo /usr/libexec/PlistBuddy -c "add ':module options:ldap:Denied SASL Methods:' string NTLM" /Library/Preferences/OpenDirectory/Configurations/LDAPv3/ldap.google.com.plist

    sudo /usr/libexec/PlistBuddy -c "add ':module options:ldap:Denied SASL Methods:' string GSSAPI" /Library/Preferences/OpenDirectory/Configurations/LDAPv3/ldap.google.com.plist

     
  11. 重新啟動後即可重新載入 OpenDirectory 設定。

步驟 4:建立行動帳號 (允許離線登入)

所有 Google Workspace 或 Cloud Identity 使用者都可以透過自己的使用者名稱和密碼登入網路帳戶 (Google 帳戶),不過必須在有網路連線的情況下。如果使用者希望即使在離線時也能登入帳戶,可以建立行動帳號,這樣一來,無論是否能連線至網路,他們都可以使用網路帳戶 (Google 帳戶) 的使用者名稱和密碼登入。詳情請參閱在 Mac 上建立和設定行動帳號

如何為安全 LDAP 服務使用者建立行動帳號:

  1. 執行下列指令,連線至安全 LDAP 伺服器,然後設定主目錄路徑和行動帳號:

    sudo /System/Library/CoreServices/ManagedClient.app/Contents/Resources/createmobileaccount -n $uid -v 

    提示:找出與使用者 Google 帳戶相關聯的電子郵件地址,然後將「$uid」改成該地址的使用者名稱部分。舉例來說,jsmith@solarmora.com 的使用者名稱部分是 jsmith

  2. 當系統要求提供「SecureToken admin user name」時,請輸入管理員使用者名稱,待下一個提示出現時,再輸入密碼;這項操作會將「$uid」新增至 FileVault。如果 macOS 磁碟已加密,就必須採取上述步驟。

步驟 5:(選用) 設定登入畫面偏好設定

  1. 依序點選左下角的 [系統偏好設定] > [使用者與群組] > [登入選項]。
  2. 提供管理員憑證以便解鎖。
  3. 將 [顯示登入視窗為] 變更為 [名稱和密碼]

步驟 6:重新啟動並登入裝置

  1. 確認裝置已連上網際網路。如果沒有網路連線,安全 LDAP 服務使用者將無法順利登入。
    注意:只有第一次登入時需要連上網路,之後使用者就能在沒有網路連線的情況下直接登入。
  2. 透過已設定要使用安全 LDAP 進行驗證的使用者帳戶登入裝置。

部署階段

本節主要說明如何為使用者自動進行裝置設定。在已於準備階段完成手動設定的 macOS 裝置上,執行下方的步驟 1 和 2。

步驟 1:透過 Apple Configurator 2 使用憑證建立 Mac 描述檔

  1. 在您已透過安全 LDAP 服務手動設定 macOS 驗證的裝置上安裝 Apple Configurator 2
  2. 開啟 Apple Configurator 2,建立新的描述檔,然後在「憑證」部分按一下 [設定],匯入先前產生的 .p12 檔案。
    注意:請確認匯入的 .p12 檔案設有密碼。在憑證的「密碼」部分輸入該檔案的密碼。
  3. 儲存描述檔。
  4. 在文字編輯器中開啟描述檔,然後在第一個 <dict> 標記的位置加入下列指令列:

    <key>PayloadScope</key>
    <string>System</string>


    由於 Apple Configurator 尚不支援 macOS 的描述檔,所以必須新增上述指令列。
     
  5. 在第二個 <dict> 標記與憑證資料並排的位置加入下列指令列:

    <key>AllowAllAppsAccess</key>
    <true/>


    這可以確保所有應用程式都能存取這個憑證。

步驟 2:將目錄設定檔 (plist) 轉換為 XML 格式

在這個步驟中,您必須擷取在準備階段步驟 3 完成的所有手動設定,然後將其轉換為 XML 檔案。您可以使用這個檔案或是先前在步驟 1 建立的 Mac 描述檔來自動設定其他 macOS 裝置。

  1. 將 /Library/Preferences/OpenDirectory/Configurations/LDAPv3/ldap.google.com.plist 複製到桌面或其他位置。
  2. 將這個檔案轉換為 XML 格式,以便透過文字編輯器進行檢查。在終端機執行下列指令:

    sudo plutil -convert xml1 <path>/ldap.google.com.plist

    您可以前往下列位置存取這個檔案:<path>/ldap.google.com.plist
     
  3. 變更上述檔案的權限,以便開啟 XML 檔案。請確認檔案內容並非空白。

步驟 3:建立 Python 指令碼,以便自動設定所有使用者的裝置

複製下方的 Python 指令碼,然後將其儲存為 Python 檔案 (.py 檔案)。

注意:我們僅按原樣提供這個指令碼範例,Google 支援團隊不會針對指令碼範例提供相關支援。

Ldap_pythong_config.py

#!/usr/bin/python
from OpenDirectory import ODNode, ODSession, kODNodeTypeConfigure
from Foundation import NSMutableData, NSData

import os
import sys

# 正在讀取 plist 檔案
GOOGLELDAPCONFIGFILE = open(sys.argv[1], "r")
CONFIG = GOOGLELDAPCONFIGFILE.read()
GOOGLELDAPCONFIGFILE.close()

# 寫入 plist 檔案
od_session = ODSession.defaultSession()
od_conf_node, err = ODNode.nodeWithSession_type_error_(od_session, kODNodeTypeConfigure, None)
request = NSMutableData.dataWithBytes_length_(b'\x00'*32, 32)
request.appendData_(NSData.dataWithBytes_length_(CONFIG, len(CONFIG)))
response, err = od_conf_node.customCall_sendData_error_(99991, request, None)

# 編輯預設搜尋路徑並附加新節點以允許登入
os.system("dscl -q localhost -append /Search CSPSearchPath /LDAPv3/ldap.google.com")
os.system("bash -c 'echo -e \"TLS_IDENTITY\tLDAP Client\" >> /etc/openldap/ldap.conf' ")

步驟 4:自動設定使用者的裝置

找到您要設定的其他 macOS 裝置,然後按照下列步驟操作:

  1. 將步驟 1 產生的 Mac 描述檔、步驟 2 產生的 XML 設定檔,以及步驟 3 的 Python 指令碼都複製到裝置上。
  2. 執行下列指令:

    sudo python <saved_python_script 的路徑> <步驟 2 所產生 ldap.google.com.plist 的路徑>
     
  3. 如要將憑證匯入 macOS 系統鑰匙圈,請在步驟 1 產生的 Mac 描述檔上按兩下,然後在系統出現提示時,提供您的 macOS 本機管理員憑證。接著,系統會提示您輸入在準備階段設定的 .p12 密碼。
  4. 重新啟動 macOS 電腦。
  5. 按照準備階段步驟 4 的說明建立行動帳號。如有需要,也可配置準備階段步驟 5 中所列的其他偏好設定。

限制和規範

  • 使用者透過 Google 憑證登入 macOS 後,Google 網站 (例如 myaccount.google.com 或 Google 管理控制台) 就會開始執行使用者密碼管理作業 (重設或復原)。如果您選擇使用第三方解決方案管理密碼,請務必將最新的密碼同步到 Google。
  • 如果管理員建立新使用者或是重設現有使用者的密碼時,開啟了 [要求在下次登入變更密碼] 設定,使用者便無法透過管理員設定的臨時密碼登入 Mac。 
    解決方法:使用者必須透過其他裝置 (例如行動裝置或其他電腦) 登入 Google 設定永久密碼,然後再使用新密碼登入 macOS。
  • 完成上述設定後,Mac 必須連上可正常運作的網際網路,使用者才能在首次登入時存取 ldap.google.com。如果您選擇設定行動帳號,之後即使沒有網路連線也一樣可以登入。
  • Google 安全 LDAP 與 macOS 的整合作業已在 macOS Catalina 和 Big Sur 上經過測試。

疑難排解

如果您無法連上安全 LDAP 服務,請按照下列操作說明進行。

步驟 1:確認連線狀況。

使用 odutil 確認連線狀況。
在終端機執行 odutil show nodenames 指令。
確認 /LDAPv3/ldap.google.com 的狀態為「online」;如果不是,請嘗試改用 telnet 選項。

使用 nc 確認連線狀況。
在終端機執行下列指令:nc -zv  ldap.google.com 636
如果使用這個方法無法連線至 Google,請改用 IPv4 嘗試連線。

使用 IPv4 確認連線狀況。
您可以將裝置變更為使用 IPv4,步驟如下:

  1. 依序前往 [系統偏好設定] > [網路] > [Wi-Fi] > [進階]。
  2. 在 [進階] 選單中點選 [TCP/IP] 分頁標籤。
  3. 將下拉式選單中的選項從 [設定 IPv6] 變更為 [僅本地連接]
  4. 依序按一下 [好] 與 [套用],即可儲存變更。
  5. 透過 ldapsearch 連線執行有效搜尋,檢查服務驗證。

步驟 2:確認是否能查看目錄物件。

  1. 依序開啟「目錄工具程式」「目錄編輯器」分頁。
  2. 在下拉式清單中選取 [/LDAPv3/ldap.google.com] 節點。
  3. 確認是否能透過您的 Google 網域查看使用者和群組。

Java 應用程式的設定操作說明

在應用程式 KeyStore 中安裝用戶端憑證,即可將大部分提供 LDAP 功能的 Java 應用程式設定為以用戶端憑證進行驗證。確切的設定檔會依應用程式而異,但是程序大致相似:如要進行設定,則必須安裝 OpenSSL 和 Java 執行階段環境。

  1. 將憑證和金鑰轉換為 Java KeyStore 格式。系統在此過程中會提示您輸入密碼。請選擇一個安全的密碼,並針對所有提示使用相同的密碼。假設您的用戶端金鑰檔案名為「ldap-client.key」

    如果您使用的是 macOS 或 Linux,請輸入以下指令:

    $  openssl pkcs12 -export -out java-application-ldap.pkcs12 -in ldap-client.crt -inkey ldap-client.key

    如果您使用的是 Windows,請輸入以下指令:

    $  certutil -mergepfx ldap-client.crt java-application-ldap.pkcs12

    重要事項:「<憑證檔案>.crt」和「<憑證檔案>.key」這兩個檔案必須位於相同的目錄中。此外,請確認「key」和「crt」檔案的名稱相同 (只有副檔名不同)。以下範例使用的名稱為「ldap-client.crt」和「ldap-client.key」
     

  2. 將憑證匯入 KeyStore:

    $  keytool -v -importkeystore -srckeystore java-application-ldap.pkcs12 -srcstoretype PKCS12 -destkeystore java-application-ldap.jks -deststoretype JKS
     
  3. Java 屬性的設定方式會因應用程式而不同,但通常都可以在用於啟動應用程式的「java」命令列上使用 -D 選項設定屬性。為您的應用程式設定 Java 屬性:

    javax.net.ssl.keyStore = /<path-to>/java-application-ldap.jks
    javax.net.ssl.keyStorePassword = <您在上述步驟中選取的密碼>

     
  4. 按照基本設定操作說明一節的內容,設定應用程式的 LDAP 連線。

     

選用:將 stunnel 當做 Proxy 使用

如果用戶端並未提供以用戶端憑證向 LDAP 進行驗證的任何方法,您可以將 stunnel 當做 Proxy 使用。

換句話說,您可以將 stunnel 設定為向 LDAP 伺服器提供用戶端憑證,並將用戶端設定為連接至 stunnel。在理想情況下,您執行 stunnel 的伺服器會和應用程式相同,而且僅限於本機接聽,這樣就不會將 LDAP 目錄暴露於伺服器以外的範圍。

步驟如下:

  1. 安裝 stunnel。舉例來說,Ubuntu 電腦適用的指令如下:

    $  sudo apt-get install stunnel4
     
  2. 建立含有以下內容的 /etc/stunnel/google-ldap.conf 設定檔 (假設憑證為 ldap-client.crt,金鑰為 ldap-client.key):

    [ldap]
    client = yes
    accept = 127.0.0.1:1636
    connect = ldap.google.com:636
    cert = ldap-client.crt
    key =
    ldap-client.key
     
  3. 編輯 /etc/default/stunnel4 並設定 ENABLED=1,即可啟用 stunnel。
  4. 重新啟動 stunnel。

    $  sudo /etc/init.d/stunnel4 restart
     
  5. 將應用程式設為指向 ldap://127.0.0.1:1636

    您可以將「1636」替換成任何未使用的通訊埠,但同時也要變更上述設定檔中的「accept」指令列。如要這樣做,則必須在用戶端和 stunnel 之間使用明文 LDAP;不過您無須啟用 StartTLS/SSL/TLS,因為這兩者是在本機進行通訊。

注意:如果您選擇在其他伺服器上執行 stunnel,則必須設定防火牆,限制只有必要的應用程式才可以存取您的 stunnel 伺服器。您也可以將 stunnel 設定為使用 TLS 接聽,藉此為應用程式和 stunnel 伺服器之間的資料加密。兩者的設定細節會依您的環境而異。

後續步驟

將 LDAP 用戶端連線至安全 LDAP 服務後,您必須將 LDAP 用戶端的服務狀態切換為「開啟」

如需後續步驟資訊,請參閱 5. 將 LDAP 用戶端切換成「開啟」

注意:如果您嘗試將 LDAP 用戶端連線至服務時發生錯誤,可以視需要使用 ldapsearchADSIldp.exe 等簡易工具排解問題。相關操作說明請參閱連線測試與疑難排解

相關文章

這對您有幫助嗎?

我們應如何改進呢?
true
立即開始 14 天免費試用

享盡公司專用電子郵件帳戶、線上儲存空間、共用日曆、視訊會議等好處。立即開始免費試用 G Suite

搜尋
清除搜尋內容
關閉搜尋
主選單
5985423246283335978
true
搜尋說明中心
true
true
true
true
true
73010
false
false