請按照本文的操作說明,將 LDAP 用戶端連線至安全 LDAP 服務。
重要事項:
- 請務必詳閱供應商文件
本文詳細說明如何將 LDAP 用戶端連線至安全 LDAP 服務,但僅供參考,實際情況可能有所不同。除了這些說明指示外,請務必詳閱供應商文件,瞭解將用戶端連線至安全 LDAP 服務的最新步驟。 - 開始前
使用這些操作說明前,請務必先將用戶端新增至安全 LDAP 服務、設定存取權限、下載用戶端憑證和金鑰,並視需要建立存取憑證。 - 連線測試
選擇性步驟:開始執行這些步驟前,您可能想使用 ldapsearch、ADSI 和 ldp.exe 等簡單工具,快速測試連線。如果在嘗試將 LDAP 用戶端連線至服務時發生錯誤,您也可以使用這些工具排解問題。如需操作說明,請參閱「安全 LDAP 連線測試」。 - 如何完成設定步驟
按照本頁的操作說明連線 LDAP 用戶端後,您必須在 Google 管理控制台中將服務狀態切換為「開啟」,才能完成 LDAP 用戶端設定。如需操作說明,請參閱「5. 將 LDAP 用戶端切換為「開啟」。
本文內容
本文包含以下各節說明:
- 基本設定操作說明 - 包含連線至 LDAP 用戶端的一般操作說明,這些用戶端未在本文章中指定。
- 特定 LDAP 用戶端的設定說明:包含將特定 LDAP 用戶端 (例如 Atlassian Jira 或 OpenVPN) 連線至安全 LDAP 服務的操作說明。步驟會因用戶端類型而異。
- Java 應用程式設定說明:包含提供 LDAP 功能的 Java 應用程式一般說明。
- 選用:使用 stunnel 做為 Proxy - 本節包含相關操作說明,可協助您連線至不支援數位憑證的 LDAP 用戶端,並瞭解其他注意事項。
這些操作說明假設您下載的用戶端金鑰和憑證檔案分別名為 ldap-client.key 和 ldap-client.crt。
基本設定操作說明
本節提供將 LDAP 用戶端連線至安全 LDAP 服務的一般操作說明。如果您的 LDAP 用戶端未列於下方說明中,請務必參閱該應用程式的說明文件。
注意:部分 LDAP 用戶端 (例如 Atlassian Jira 和 SSSD) 會在使用者驗證期間執行使用者查詢,以取得使用者的更多資訊。如要確保這類 LDAP 用戶端的使用者驗證作業正常運作,您必須為啟用「驗證使用者憑證」的所有機構單位,開啟「讀取使用者資訊」。(如需操作說明,請參閱「設定存取權」。)
如要將 LDAP 用戶端連上安全 LDAP 服務,請按照下列步驟操作:
- 使用 Cloud Directory 將 LDAP 用戶端設定為 LDAP 伺服器。
將憑證上傳到 LDAP 用戶端。
安全 LDAP 服務會使用 TLS 用戶端憑證做為主要驗證機制。如要開始將憑證上傳至 LDAP 用戶端,請開啟 LDAP 用戶端的驗證或目錄設定,然後輸入下表中的詳細資料。
注意:如要瞭解如何及在哪裡上傳 TLS 憑證,請參閱供應商的說明文件。
請參閱下表,瞭解基本連線資訊:
|
Hostname (主機名稱) |
ldap.google.com |
|---|---|
|
連接埠 |
如為已啟用 StartTLS 的 LDAP,通訊埠是 389 |
|
Base DN (基準 DN) |
您的網域 (採用 DN 格式)。例如: dc=example,dc=com 即表示「example.com」 |
|
使用者名稱和密碼 |
除了使用憑證進行驗證外,某些 LDAP 用戶端還會要求您輸入使用者名稱和密碼。如果使用者名稱和密碼不是必填欄位,您可以跳過此步驟。 在 Google 管理控制台中產生使用者名稱和密碼。如需操作說明,請參閱產生存取憑證。 |
|
用戶端憑證和金鑰檔案 |
使用從 Google 管理控制台下載的憑證和金鑰檔案。如果 LDAP 用戶端無法透過用戶端憑證進行驗證,請參閱「使用 stunnel 做為 Proxy」。 重要事項:部分 LDAP 用戶端 (例如 Apache Directory Studio) 不支援上傳數位憑證。如果遇到這種情況,請參閱將 stunnel 當做 Proxy 使用一節。 |
特定 LDAP 用戶端的設定操作說明
ADSI 編輯器 (Windows)
步驟如下:
- 按照「ldp.exe (Windows)」中的步驟 1 至 11 安裝用戶端憑證。
- 依序點選 [動作] > [連線至…]。
- 輸入下列連線設定:
「名稱」:輸入連線名稱,例如「Google LDAP」。
連線點:「選取或輸入識別名稱或命名環境」
以 DN 格式輸入網域名稱 (例如 dc=example,dc=com 代表 example.com)。
電腦:「選取或輸入網域或伺服器」
ldap.google.com
使用以 SSL 為基礎的加密:勾選
- 按一下「進階...」,然後輸入下列詳細資料:
指定憑證:勾選
使用者名稱:管理控制台中的存取憑證使用者名稱
密碼:管理控制台中的存取憑證密碼
連接埠號碼:636
通訊協定:LDAP
簡單繫結驗證:勾選
- 按一下 [確定],再按一下 [確定]。
- 如果連線成功,右側窗格就會顯示基準 DN 中的 Active Directory 內容。
Apache Directory Studio
如要使用 Apache Directory Studio,請透過 stunnel 連線,並使用在 Google 管理控制台中產生的存取憑證 (使用者名稱和密碼)。假設憑證已就位,且 stunnel 正在 localhost 通訊埠 1389 上監聽,請按照下列步驟操作:
- 依序按一下 [File] (檔案) > [New…] (新增…)。
- 依序選取 [LDAP Browser] (LDAP 瀏覽器) > [LDAP Connection] (LDAP 連線)。
- 點按「繼續」。
- 輸入連線參數:
連線名稱:選擇名稱,例如「Google LDAP」
主機名稱:localhost
通訊埠:1389 (或 stunnel 監聽/接受通訊埠)
加密方法:不加密 (注意:如果 stunnel 是遠端執行,建議在 stunnel 與用戶端之間加密)。
- 點按「繼續」。
- 輸入驗證參數:
驗證方法:簡單驗證
繫結 DN 或使用者:管理控制台中的存取憑證使用者名稱
繫結密碼:管理控制台中的存取憑證密碼
- 點按「繼續」。
- 輸入基準 DN。
這是 DN 格式的網域名稱 (example.com 的格式為 dc=example,dc=com)。 - 按一下「完成」。
Atlassian Jira
Atlassian Jira 會在使用者驗證期間執行使用者查詢,以取得使用者的詳細資訊。如要確保這個 LDAP 用戶端的使用者驗證功能正常運作,您必須為所有已啟用「驗證使用者憑證」的機構單位,開啟「讀取使用者資訊」和「讀取群組資訊」。(如需操作說明,請參閱設定存取權限)。
重要事項:如按照下列說明操作,KeyStorePassword 可能會曝露給使用者和記錄檔。請採取預防措施,避免未經授權存取本機殼層、記錄檔和 Google 管理控制台。除了下列操作說明,您也可以使用 stunnel4 方法 (請參閱「選用:使用 stunnel 做為 Proxy」)。
注意:以下操作說明假設 Jira 安裝在 /opt/atlassian/jira。
如要將 Atlassian Jira 用戶端連線至安全 LDAP 服務,請按照下列步驟操作:
- 將憑證和金鑰複製到 Jira 伺服器 (這是將 LDAP 用戶端新增至安全 LDAP 服務時,在 Google 管理控制台中產生的憑證)。
例如:
$ scp ldap-client.key user@jira-server:
- 將憑證和金鑰轉換為 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
- 設定 Jira 以使用新建立的 KeyStore。請按照這裡的指示新增選項:
「-Djavax.net.ssl.keyStore=/opt/atlassian/jira/jira-ldap.jks -Djavax.net.ssl.keyStorePassword=password」
在 Linux 上:- 編輯 /opt/atlassian/jira/bin/setenv.sh。
- 找出 JVM_SUPPORT_RECOMMENDED_ARGS 設定。
- 新增「-Djavax.net.ssl.keyStore=/opt/atlassian/jira/jira-ldap.jks -Djavax.net.ssl.keyStorePassword=password」,並將「password」替換成您在上方選取的密碼。
- 重新啟動 Jira。
$ /opt/atlassian/jira/bin/stop-jira.sh
$ /opt/atlassian/jira/bin/start-jira.sh
- 以管理員身分登入 Jira 網頁介面。
- 依序前往「設定」>「使用者管理」。如需設定,請使用右上角的齒輪圖示。
- 按一下 [User Directories] (使用者目錄)。
- 按一下「新增目錄」。
- 選擇「LDAP」做為類型。
- 點按「繼續」。
- 輸入以下資訊:
名稱
Google 安全 LDAP
Directory type (目錄類型)
OpenLDAP
Hostname (主機名稱)
ldap.google.com
Port (通訊埠)
636
Use SSL (使用 SSL)
已勾選
使用者名稱
在 Google 管理控制台中產生使用者名稱和密碼。如需操作說明,請參閱產生存取憑證。
密碼
在 Google 管理控制台中產生使用者名稱和密碼。如需操作說明,請參閱產生存取憑證。
Base DN (基準 DN)
以 DN 格式輸入的網域名稱 (假設您的網域為「example.com」,則輸入 dc=example,dc=com)。
Additional User DN (其他使用者 DN)
選用。"ou=Users"
Additional Group DN (其他群組 DN)
選用。「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 (群組成員屬性)成員
Membership Schema Settings (成員資格架構設定) >
Use the User Membership Attribute (採用使用者成員資格屬性)已勾選 - 將角色授予群組。
使用者必須是已獲 Jira 存取權的群組成員,Atlassian Jira 才能允許使用者登入。
如何將角色授予群組:- 依序前往「設定」>「應用程式」>「應用程式存取權」。
- 在「選取群組」文字方塊中,輸入要授予 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
步驟如下:
- 在 /etc/freeradius/3.0/ 安裝及設定 FreeRADIUS。
FreeRADIUS 安裝完畢後,您可以安裝「freeradius-ldap」外掛程式,以便新增 LDAP 設定。
$ sudo apt-get install freeradius freeradius-ldap
- 將 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.*
- 啟用 LDAP 模組。
$ cd /etc/freeradius/3.0/mods-enabled/
$ ln -s ../mods-available/ldap ldap
- 編輯 /etc/freeradius/3.0/mods-available/ldap。
- ldap->server = 'ldaps://ldap.google.com:636'
- identity = 應用程式憑證中的使用者名稱
- password = 應用程式憑證中的密碼
- base_dn = 'dc=domain,dc=com'
- tls->start_tls = no
- tls->certificate_file = /etc/freeradius/3.0/certs/ldap-client.cer
- tls->private_key_file = /etc/freeradius/3.0/certs/ldap-client.key
- tls->require_cert = 'allow'
- 找到代表「ldap -> post-auth -> update」部分的導覽標記,為其中的所有欄位加上註解
- 編輯 /etc/freeradius/3.0/sites-available/default。
這會修改 FreeRadius 用戶端連線。如果不是使用預設用戶端,請務必更新您設定的相關用戶端 (內部通道或任何自訂用戶端)。
- 修改「authorize」(授權) 部分,在密碼驗證通訊協定 (PAP) 陳述式後,於底部新增下列區塊:
if (User-Password) {
update control {
Auth-Type := ldap
}
}
- 在「authorize」部分中,移除 LDAP 前的「-」符號,即可啟用 LDAP。
#
# The ldap module reads passwords from the LDAP database.
ldap
- 修改「authenticate」(驗證) 部分,使用下列字串修改「Auth-Type LDAP」區塊:
# Auth-Type LDAP {
ldap
# }
- 修改「authenticate」(驗證) 部分,使用下列字串修改「Auth-Type PAP」區塊:
Auth-Type PAP {
# pap
ldap
}
- 修改「authorize」(授權) 部分,在密碼驗證通訊協定 (PAP) 陳述式後,於底部新增下列區塊:
GitLab
如需將 GitLab 連線至安全 LDAP 服務的操作說明,請參閱 Configure Google Secure LDAP for GitLab (為 GitLab 設定 Google 安全 LDAP)。
Itopia/Ubuntu
如需將 Itopia/Ubuntu 連線至安全 LDAP 服務的操作說明,請參閱「在 Ubuntu 16.04 上設定 Google Cloud Identity LDAP 以供使用者登入」。
Ivanti / LanDesk
步驟如下:
- 在 Ivanti Web 伺服器上,使用文字編輯器開啟下列兩個資料夾中的 OpenLDAPAuthenticationConfiguration.xml 或 OpenLDAPSSLAuthenticationConfiguration.xml:
C:\ProgramData\LANDesk\ServiceDesk\servicedesk.Framework 和 C:\ProgramData\LANDesk\ServiceDesk\servicedesk.WebAccess (其中 servicedesk 是執行個體名稱) - 將 <Server> 值更新為 ldap.google.com。
- 將「<Port>」值更新為通訊埠「3268」,以啟用「StartTLS」的明文,並更新為「3269」,以啟用 SSL/TLS 通訊埠 (明文通訊埠預設為「389」,SSL/TLS 通訊埠預設為「636」)。
- 將 <TestDN> 值設為 DN 格式的網域名稱。(例如 example.com 的 dc=example,dc=com)。
- 在「..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" />
- 在 Ivanti Configuration Center 開啟所需執行個體。
- 按一下「Service Desk Framework」應用程式旁邊的 [Edit] (編輯)。
畫面上會隨即顯示 Service Desk Framework 的「Edit Application」(編輯應用程式) 對話方塊。 - 在「Configuration parameters」(設定參數) 群組的「Logon policy」(登入政策) 清單中,選取 [Explicit only] (僅限明確),然後按一下 [OK] (確定)。
- 按一下「Web Access」應用程式旁的「編輯」。
畫面上會隨即顯示 Web Access 的「Edit Application」(編輯應用程式) 對話方塊。 - 在「Configuration parameters」群組中,選取「Logon policy」清單中的「Explicit only」,然後按一下「OK」。
登入時,請輸入相關聯網域使用者的網路密碼。
LDAP 伺服器驗證異常狀況記錄功能
如果無法順利設定 LDAP 伺服器驗證,可以啟用異常狀況記錄功能,協助找出問題。異常狀況記錄功能預設為停用,建議您在調查問題完畢後重新停用這項功能。
如何啟用 LDAP 伺服器驗證異常狀況記錄功能:
- 在文字編輯器中開啟相應的驗證設定 XML 檔案:
DirectoryServiceAuthenticationConfiguration.xml、OpenLDAPAuthenticationConfiguration.xml 或 OpenLDAPSSLAuthenticationConfiguration.xml - 將以下程式碼行:
<ShowExceptions>false</ShowExceptions>
變更為:
<ShowExceptions>true</ShowExceptions>
- 儲存變更。
Ldp.exe (Windows)
步驟如下:
- 將憑證和金鑰檔案轉換成一個 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
重要事項:這兩個檔案 (<CERT_FILE>.crt 和 <CERT_FILE>.key) 必須位於同一目錄。此外,請確認 key 和 crt 的名稱相同 (副檔名不同)。在本範例中,我們使用 ldap-client.crt 和 ldap-client.key 這兩個名稱。 - 前往控制台。
- 在搜尋方塊中搜尋「憑證」,然後按一下「管理使用者憑證」。
- 依序前往 [動作] > [所有工作] > [匯入…]。
- 選取 [目前使用者],然後點選 [下一步]。
- 按一下 [瀏覽…]。
- 在對話方塊右下角的「檔案類型」下拉式選單中,選取 [個人資訊交換 (*.pfx;*.p12)]。
- 選取步驟 2 中的 ldap-client.p12 檔案,按一下「開啟」,然後按一下「下一步」。
- 輸入步驟 2 的密碼,然後點選 [下一步]。
- 選取「個人」憑證存放區,依序按一下「下一步」和「完成」。
- 執行 Ldp.exe。
- 依序前往「連線」>「連線...」。
- 輸入下列連線詳細資料:
伺服器:ldap.google.com
通訊埠:636
無連線:取消勾選
SSL:勾選
- 按一下 [確定]。
- 依序點選 [檢視] > [樹狀目錄]。
- 輸入基準 DN,也就是 DN 格式的網域名稱 (假設您的網域為「example.com」,則輸入 dc=example,dc=com)。
- 按一下 [確定]。
- 如果連線成功,LDP.exe 就會在右側窗格顯示 Active Directory 內容 (例如基準 DN 內的所有屬性)。
Netgate / pfSense
如需將 Netgate/pfSense 連線至安全 LDAP 服務的操作說明,請參閱「Configuring Google Cloud Identity as an Authentication Source」。
OpenLDAP/ldapsearch (Linux)
如要透過指令列存取 LDAP 目錄,您可以使用 OpenLDAP ldapsearch 指令。
假設您的用戶端憑證和金鑰檔案分別為 ldap-client.crt 和 ldap-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)
步驟如下:
- 將憑證和金鑰檔案轉換成一個 PKCS12 格式的檔案。在命令提示字元中輸入下列內容:
openssl pkcs12 -inkey ldap-client.key -in ldap-client.crt -export -out ldap-client.p12
輸入密碼來加密輸出檔案。
- 按一下選單列右上角的
,然後輸入「鑰匙圈存取」。
- 開啟「鑰匙圈存取」應用程式,然後按一下左側清單中的「系統」。
- 按一下選單列左上方的 [檔案] 選項並選取 [匯入項目]。
- 瀏覽至產生 ldap-client.p12 的位置,選取 ldap-client.p12,然後按一下「開啟」。
系統顯示提示時,請輸入您的密碼。
系統鑰匙圈憑證清單中現在應該會顯示名為「LDAP Client」的憑證。 - 點選「LDAP Client」憑證旁邊的箭頭。私密金鑰會顯示在下方。
- 按兩下私密金鑰。
- 在對話方塊中選取「存取控管」分頁標籤,然後點選左下角的「+」。
-
在開啟的視窗中,按下 Command+Shift+G 開啟新視窗,然後將現有文字替換為 /usr/bin/ldapsearch。
-
按一下 [前往]。
系統會開啟醒目顯示 ldapsearch 的視窗。 -
按一下「新增」。
-
按一下「儲存變更」,然後在系統提示時輸入密碼。
現在您可以使用 OpenLDAP ldapsearch 指令,透過指令列存取 LDAP 目錄了。
-
假設您先前匯入金鑰鏈的 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 (社群版)
步驟如下:
- 視需要安裝及設定 OpenVPN;如已安裝並設定完成,則請在 OpenVPN 中開啟設定頁面。
一般 VPN 設定不在本文的說明範圍內。設定 VPN 後,您就可以透過 LDAP 新增使用者驗證和授權。具體來說,您需要安裝 openvpn-auth-ldap 外掛程式。
$ sudo apt-get install openvpn openvpn-auth-ldap
- 將 LDAP 用戶端金鑰和憑證檔案複製到 /etc/openvpn/ldap-client.key 和 /etc/openvpn/ldap-client.crt。
- 建立 /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)" # (or choose your own LDAP filter for users)
RequireGroup false
</Authorization>
- 編輯 OpenVPN 設定檔,通常名為「/etc/openvpn/server.conf」或其他類似名稱。在檔案底部新增下列內容:
plugin /usr/lib/openvpn/openvpn-auth-ldap.so /etc/openvpn/auth-ldap.conf
verify-client-cert optional
- 重新啟動 OpenVPN 伺服器。
$ sudo systemctl restart openvpn@server
- 將 VPN 用戶端設為使用者的使用者名稱和密碼。舉例來說,在 OpenVPN 用戶端設定中,將 auth-user-pass 新增至 OpenVPN 用戶端設定檔結尾,然後啟動 OpenVPN 用戶端:
$ openvpn --config /path/to/client.conf
- 請按照這篇文章的指示,使用 stunnel 做為 Proxy。
OpenVPN 存取伺服器 (商業版)
如需將 OpenVPN Access Server 連線至安全 LDAP 服務的操作說明,請參閱「Configuring Google Secure LDAP with OpenVPN Access Server」。
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 瀏覽器 4.5 (4.5.19808.0) 以上版本。請參閱 LDAP Browser 4.5。
步驟如下:
- 將憑證和金鑰檔案轉換成一個 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
重要事項:這兩個檔案 (<CERT_FILE>.crt 和 <CERT_FILE>.key) 必須位於同一目錄。此外,請確認 key 和 crt 的名稱相同 (副檔名不同)。在本範例中,我們使用 ldap-client.crt 和 ldap-client.key 這兩個名稱。 - 在 Softerra LDAP Browser 中安裝金鑰組。
- 依序前往 [Tools] (工具) > [Certificate Manager] (憑證管理員)。
- 點選 [Import…] (匯入…)。
- 點選「Next」。
- 按一下 [瀏覽…]。
- 在對話方塊右下角的「檔案類型」下拉式選單中,選取「個人資訊交換 (*.pfx;*.p12)」。
- 選取上述步驟 2 中的 ldap-client.p12 檔案。
- 依序點選 [Open] (開啟) 和 [Next] (下一步)。
- 輸入上述步驟 2 中的密碼,然後點選 [Next] (下一步)。
- 選取「個人」憑證存放區。
- 點按「繼續」。
- 按一下「完成」。
- 新增伺服器設定檔。
- 依序前往「File」>「New」>「New Profile…」
- 輸入設定檔名稱,例如「Google LDAP」。
- 點按「繼續」。
輸入下列資訊:
主機: ldap.google.com
連接埠: 636
基準 DN:DN 格式的網域名稱。(例如 example.com 的 dc=example,dc=com)
使用安全連線 (SSL):已勾選
- 點按「繼續」。
- 選取 [External (SSL Certificate)] (外部 (SSL 憑證))。
- 點按「繼續」。
- 按一下「完成」。
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 (例如 Splunk 8.1.3 版) 時,系統可能會傳送過多的 LDAP 查詢至 LDAP 伺服器,導致 LDAP 配額快速用盡。如要進一步瞭解 Splunk 8.1.3 版的問題,請參閱「Splunk 已知問題」。
步驟如下:
- 將 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.*
- 編輯 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 - 在使用者 /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
- 使用 Splunk 網頁 UI 新增 LDAP 策略。輸入下列詳細資料,然後按一下「儲存」:
|
名稱 |
Google 安全 LDAP |
|---|---|
|
主機 |
ldap.google.com |
|
Port (通訊埠) |
636 |
|
已啟用 SSL |
已勾選 |
|
連線順序 |
1 |
|
繫結 DN |
輸入您在 Google 管理控制台產生的存取憑證。 |
|
繫結 DN 密碼 |
輸入您在 Google 管理控制台產生的存取憑證。 |
|
Base DN (基準 DN) |
DN 格式的網域名稱 (例如網域「example.com」的 DN 格式為 dc=example,dc=com) |
|
使用者數量篩選器 |
針對要用來篩選使用者的物件類別輸入使用者數量篩選器。 |
|
使用者名稱屬性 |
uid |
|
真實姓名屬性 |
displayname |
|
電子郵件地址屬性 |
郵件 |
|
群組對應屬性 |
dn |
|
群組底層 DN |
DN 格式的網域名稱 (例如網域「example.com」的 ou=Groups,dc=example,dc=com) |
|
靜態群組搜尋篩選器 |
針對要用來篩選靜態群組的物件類別輸入靜態群組搜尋篩選器。 |
|
群組名稱屬性 |
cn |
|
靜態成員屬性 |
成員 |
SSSD (Red Hat Enterprise 和 CentOS)
進行使用者驗證期間,SSSD 會執行使用者查詢,藉此取得使用者的更多資訊。如要確保這個 LDAP 用戶端的使用者驗證功能正常運作,您必須為所有已啟用「驗證使用者憑證」的機構單位,開啟「讀取使用者資訊」和「讀取群組資訊」。(如需操作說明,請參閱設定存取權限)。
如要在 Red Hat 8 或 CentOS 8 上將 SSSD 用戶端連線至安全 LDAP 服務,請按照下列步驟操作:
- 將 SSSD 用戶端新增至安全 LDAP 服務:
- 在 Google 管理控制台中,依序前往 [應用程式] > [LDAP] > [新增用戶端]。
請務必使用公司帳戶 (而非個人 Gmail 帳戶) 登入。 - 輸入用戶端詳細資料,然後按一下 [繼續]。
- 設定「存取權限」:
驗證使用者憑證 - 整個網域
讀取使用者資訊 - 整個網域
讀取群組資訊 - 開啟 - 按一下 [新增 LDAP 用戶端]。
- 下載系統產生的憑證。
- 按一下 [繼續前往用戶端詳細資料]。
- 將服務狀態變更為「開啟」。
- 在 Google 管理控制台中,依序前往 [應用程式] > [LDAP] > [新增用戶端]。
- 安裝依附元件:
dnf install openldap-clients sssd-ldap
install -d --mode=700 --owner=sssd --group=root /etc/sssd/ldap
解壓縮憑證 .zip 檔案,然後將 .crt 和 .key 檔案複製到 /etc/sssd/ldap
- (選用) 使用 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 usertoverify@example.com \
-W \
'(mail=usertoverify@example.com)' \
mail dn
系統提示時,請輸入使用者的 Google 密碼。
注意:使用者必須具備 Google Workspace Enterprise 或 Cloud Identity 進階版授權。 - 建立
/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 - 更新權限和 SELinux 標籤:
chown 0:0 /etc/sssd/sssd.conf /etc/sssd/ldap/*
chmod 600 /etc/sssd/sssd.conf /etc/sssd/ldap/*
restorecon -FRv /etc/sssd
- 重新啟動 SSSD:
systemctl restart sssd
- 測試:
從安全殼層到伺服器:ssh -l user@example.com {HOSTNAME}
疑難排解
- 檢查 SSSD 版本 (必須大於或等於 1.15.2):
# sssd --version
2.2.3
-
在 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 拒絕訊息。
- 檢查 /etc/nsswitch.conf 是否有 passwd、shadow、group 和 netgroup 實體的「sss」:
passwd: files sss
shadow: files sss
group: files sss
netgroup: files sss
這裡的本機檔案會覆寫 LDAP 使用者。
- 檢查 /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 延伸模組的不支援群組。
-
檢查 /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 服務,請按照下列步驟操作:
- 安裝 SSSD 1.15.2 以上版本。
$ sudo apt-get install sssd
- 假設您的用戶端憑證和金鑰檔案分別命名為 /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
-
變更設定檔的擁有權和權限:
$ sudo chown root:root /etc/sssd/sssd.conf
$ sudo chmod 600 /etc/sssd/sssd.conf -
重新啟動 SSSD:
$ sudo service sssd restart
提示:如果您在 Google Compute Engine 上使用 Linux 電腦,且沒有外部 IP 位址,只要啟用 Google 服務的內部存取權,還是可以連線至安全 LDAP 服務。詳情請參閱「設定 Private Google Access」。
macOS
請按照下列步驟連線至 macOS 用戶端,以便使用安全 LDAP 服務進行使用者帳戶驗證。
系統需求
- macOS 必須為 Catalina 10.15.4 以上版本。
- 您必須擁有 Google 超級管理員使用者 ID,才能完成準備階段的步驟 1。
- 您必須具備本機管理員權限才能進行這項設定。
內容:
本節主要說明如何進行手動設定及使用安全 LDAP 服務測試 macOS 驗證。
步驟 1:在 Google 管理控制台中,將 macOS 設為 LDAP 用戶端
如需操作說明,請參閱「新增 LDAP 用戶端」,或觀看這部 安全 LDAP 示範影片。您也會在這個過程中下載自動產生的 TLS 用戶端憑證。
步驟 2:將憑證匯入系統鑰匙圈
- 將憑證 (於步驟 1 下載的 ZIP 檔案) 和金鑰複製到 macOS 電腦。
提示:解壓縮檔案,找出憑證和金鑰檔案。 - 將金鑰組匯入系統鑰匙圈:
-
將金鑰和憑證轉換為一個 PKCS 12 (.p12) 檔案。在終端機中執行下列指令:
openssl pkcs12 -export -out ldap-client.p12 -in ldap-client.crt -inkey ldap-client.key
提示:記下 .p12 檔案的名稱。
系統會要求您輸入密碼。請輸入要用於加密 .p12 檔案的密碼。 -
開啟「鑰匙圈存取」應用程式。
-
按一下「系統」鑰匙圈。
-
依序點選 [檔案] > [輸入項目]。
-
選取在先前步驟中建立的「ldap-client.p12」檔案。
-
如果出現系統提示,請輸入管理員密碼,允許修改系統鑰匙圈。
-
輸入在先前步驟中建立的密碼,將 .p12 檔案解密。
注意:您應該會在金鑰清單中看到新的憑證和相關聯的私密金鑰。憑證的名稱可能為「LDAP Client」。記下憑證名稱,以利進行下一個步驟。
- 請按照本文「ldapsearch (macOS)」一節中的步驟 6,為私密金鑰設定存取權控管,以便新增下列應用程式。如果「所有項目」類別下方未顯示私密金鑰,請嘗試切換至「我的憑證」類別,然後展開對應的憑證,找出正確的私密金鑰項目。
如說明所述,ldapsearch 應用程式僅適用於疑難排解,不適用於其他用途。通常會在提供 macOS 存取權給使用者之前移除。
必須將下列三個應用程式加入存取控管清單:
/System/Library/CoreServices/Applications/Directory Utility
/usr/libexec/opendirectoryd
/usr/bin/dscl
-
-
在 /etc/openldap/ldap.conf 檔案中新增一行,確保「LDAP Client」與匯入 .p12 檔案後,macOS 鑰匙圈存取應用程式中顯示的憑證名稱完全相同 (名稱來自產生憑證的 X.509 主體一般名稱):
sudo bash -c 'echo -e "TLS_IDENTITY\tLDAP Client" >> /etc/openldap/ldap.conf'
步驟 3:將裝置指向 Google 目錄進行驗證
開啟「Directory Utility」應用程式,建立新的 LDAP 目錄節點:
- 按一下鎖頭圖示,即可進行變更並輸入密碼。
- 選取「LDAPv3」,然後按一下鉛筆圖示編輯設定。
- 按一下 [新增…]。
- 在伺服器名稱欄位中輸入 ldap.google.com,選取「使用 SSL 加密」,然後按一下「手動」。
- 選取新的伺服器名稱,然後按一下 [編輯…]。
- 輸入描述性名稱,例如「Google Secure LDAP」(Google 安全 LDAP) 做為設定名稱。
- 選取「使用 SSL 加密」,並確認通訊埠已設為 636。
- 前往「搜尋和對應」分頁。
- 在「連接這個 LDAPv3 伺服器」下拉式選單中,選擇「RFC2307」。
- 出現提示時,請在「Search Base Suffix」(搜尋基礎後置字串) 中輸入網域相關資訊。舉例來說,如果網域名稱是 zomato.com,請輸入
dc=zomato,dc=com。 - 按一下 [確定]。
- 在「使用者」記錄類型下設定屬性:
- 在「記錄類型和屬性」部分,選取「使用者」,然後按一下「+」按鈕。
- 在彈出式視窗中,選擇「屬性類型」,選取「產生的 UID」,然後按一下「確定」關閉彈出式視窗。
展開「使用者」後,應該會顯示「GeneratedUID」。
- 按一下 GeneratedUID,然後點選右側方塊中的「+」圖示。
- 在文字方塊中輸入 apple-generateduid,然後按一下「Enter」。
- 在「Users」節點下方,按一下「NFSHomeDirectory」屬性。
- 在右側畫面中,將這個屬性的值更新為
#/Users/$uid$ - 按一下「確定」,然後輸入密碼來儲存變更。
- 在「目錄工具」視窗中,設定新的 LDAP 設定:
- 前往「搜尋政策」分頁。
- 按一下鎖頭圖示以進行變更,並在系統顯示提示時,輸入目前使用者的密碼。
- 將下拉式選單選項從「Search Path」變更為「Custom path」。
- 開啟「驗證」分頁,然後按一下「+」圖示。
- 從「目錄網域」清單中選擇
/LDAPv3/ldap.google.com,然後按一下「新增」。 - 按一下「套用」按鈕,並在系統提示時輸入管理員密碼。
- 執行下列四個指令,以停用 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
- 重新啟動後即可重新載入 OpenDirectory 設定。
步驟 4:建立行動帳戶 (允許離線登入)
所有 Google Workspace 或 Cloud Identity 使用者都可以透過自己的使用者名稱和密碼登入網路帳戶 (Google 帳戶),不過必須在有網路連線的情況下。如果使用者希望即使在離線時也能登入帳戶,可以建立行動帳號,使用行動帳戶時,無論是否連上網路,都能使用網路帳戶 (Google 帳戶) 的使用者名稱和密碼登入。詳情請參閱「在 Mac 上建立及設定行動帳戶」。
如何為安全 LDAP 服務使用者建立行動帳號:
-
執行下列指令,連線至安全 LDAP 伺服器,並設定主路徑和行動帳戶:
sudo /System/Library/CoreServices/ManagedClient.app/Contents/Resources/createmobileaccount -n $uid -v
提示:將 $uid 替換為與使用者 Google 帳戶相關聯的電子郵件地址使用者名稱部分。舉例來說,jsmith@solarmora.com 的使用者名稱部分為 jsmith。 -
系統提示輸入 SecureToken 管理員使用者名稱時,請輸入管理員使用者名稱,然後在下一個提示中輸入密碼。這會將 $uid 新增至 FileVault。如果 macOS 磁碟已加密,則必須提供這項資訊。
步驟 5:(選用) 設定登入畫面偏好設定
- 依序前往「系統偏好設定」>「使用者與群組」> 左下方的「登入選項」。
- 提供管理員憑證以便解鎖。
- 將「顯示登入視窗為」變更為「名稱和密碼」。
步驟 6:重新啟動裝置並登入
- 確認裝置已連上網際網路。如果沒有網際網路連線,就無法登入安全 LDAP 使用者帳戶。
注意:只有在首次登入時需要連上網路。之後使用者就能在沒有網路連線的情況下直接登入。 - 使用設定為透過安全 LDAP 進行驗證的使用者帳戶登入裝置。
本節主要說明如何為使用者自動進行裝置設定。在準備階段完成手動設定的 macOS 裝置上,執行下列步驟 1 和 2。
步驟 1:使用 Apple Configurator 2 建立含憑證的 Mac 設定檔
- 在您已透過安全 LDAP 服務手動設定 macOS 驗證的裝置上安裝 Apple Configurator 2。
- 開啟 Apple Configurator 2,建立新的描述檔,然後在「憑證」部分按一下 [設定],匯入先前產生的 .p12 檔案。
注意:請確認匯入的 .p12 檔案設有密碼。在憑證的「密碼」部分輸入該檔案的密碼。
- 儲存描述檔。
- (如果裝置使用 M1 或 M2 處理器,請略過這個步驟,直接前往步驟 5。在文字編輯器中開啟描述檔,然後在第一個 <dict> 標記的位置加入下列指令列:
<key>PayloadScope</key>
<string>System</string>
由於 Apple Configurator 尚不支援 macOS 的描述檔,所以必須新增上述指令列。
- 在第二個 <dict> 標記與憑證資料並排的位置加入下列指令列:
<key>AllowAllAppsAccess</key>
<true/>
這可以確保所有應用程式都能存取這個憑證。
步驟 2:將目錄設定檔 (plist) 轉換為 XML
在這個步驟中,您要將準備階段步驟 3 中完成的所有手動設定,擷取到 XML 檔案中。您可以使用這個檔案和上述步驟 1 建立的 Mac 描述檔,自動設定其他 macOS 裝置。
- 將 /Library/Preferences/OpenDirectory/Configurations/LDAPv3/ldap.google.com.plist 複製到桌面或其他位置。
- 將這個檔案轉換為 XML 格式,以便透過文字編輯器進行檢查。在終端機中執行下列指令:
sudo plutil -convert xml1 <path>/ldap.google.com.plist
您可以使用<path>/ldap.google.com.plist存取檔案。
- 變更上述檔案的權限,以便開啟 XML 檔案。請確認檔案內容並非空白。
步驟 3:建立 Python 指令碼,在使用者裝置上自動設定
複製下方的 Python 指令碼,然後將其儲存為 Python 檔案 (.py 檔案)。
附註:這個範例指令碼與 Python 3.10.x 版本相容。我們僅按原樣提供這個指令碼。Google 支援團隊不會針對指令碼範例提供相關支援。
Ldap_python_config.py
#!/usr/bin/python
from OpenDirectory import ODNode, ODSession, kODNodeTypeConfigure
from Foundation import NSMutableData, NSData
import os
import sys
# Reading plist
GOOGLELDAPCONFIGFILE = open(sys.argv[1], "r")
CONFIG = GOOGLELDAPCONFIGFILE.read()
GOOGLELDAPCONFIGFILE.close()
# Write the plist
od_session = ODSession.defaultSession()
od_conf_node, err = ODNode.nodeWithSession_type_error_(od_session, kODNodeTypeConfigure, None)
request = NSMutableData.dataWithBytes_length_(b' '*32, 32)
request.appendData_(NSData.dataWithBytes_length_(str.encode(CONFIG), len(CONFIG)))
response, err = od_conf_node.customCall_sendData_error_(99991, request, None)
# Edit the default search path and append the new node to allow for login
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 產生的 Mac 描述檔、步驟 2 產生的 XML 設定檔,以及步驟 3 的 Python 指令碼都複製到裝置上。
- 如要安裝指令碼的必要依附元件,請執行下列指令:
python3 -m pip install pyobjc-framework-opendirectory - 執行下列指令:
sudo python </path/to/saved_python_script> </path/to/ldap.google.com.plist generated in step 2> - 如要將憑證匯入 macOS 系統鑰匙圈,請在步驟 1 產生的 Mac 描述檔上按兩下,然後在系統出現提示時,提供您的 macOS 本機管理員憑證。接著系統會提示您輸入準備階段設定的 .p12 密碼。
- 重新啟動 macOS 電腦。
- 按照準備階段的步驟 4 建立行動帳戶,並視需要設定準備階段步驟 5 中列出的其他偏好設定。
- 如果使用者透過 Google 憑證登入 macOS,其 Workspace 帳戶使用者名稱必須與 macOS 使用者個人資料使用者 ID 不同,否則系統會封鎖登入作業。
- 使用者透過 Google 憑證登入 macOS 後,Google 網站 (例如 myaccount.google.com 或 Google 管理控制台) 就會開始執行使用者密碼管理作業 (重設或復原)。如果選擇使用第三方解決方案管理密碼,請務必將最新密碼同步到 Google。
- 如果管理員建立新使用者或重設現有使用者的密碼時,開啟了「要求在下次登入變更密碼」設定,使用者就無法使用管理員設定的臨時密碼登入 Mac。
解決方法:使用者必須透過其他裝置 (例如行動裝置或其他電腦) 登入 Google 設定永久密碼,然後再使用新密碼登入 macOS。 - Mac 必須連上可正常運作的網際網路,才能在完成上述設定後首次登入時連上 ldap.google.com。如果您選擇設定行動帳戶,之後即使沒有網路連線也一樣可以登入。
- Google 安全 LDAP 與 macOS 的整合作業已在 macOS Catalina、Big Sur 和 Monterey 上測試。
如果您無法連上安全 LDAP 服務,請按照下列操作說明進行。
步驟 1:確認連線。
使用 odutil 確認連線狀況。
在終端機中執行 odutil show nodenames 指令。
確認「/LDAPv3/ldap.google.com」狀態為「線上」。如果不是,請嘗試改用 telnet 選項。
使用 nc 確認連線狀況。
在終端機中執行下列指令:nc -zv ldap.google.com 636
如果無法透過這種方式連線至 Google,請嘗試使用 IPv4 連線。
使用 IPv4 確認連線狀況。
您可以將裝置變更為使用 IPv4,步驟如下:
- 依序前往 [系統偏好設定] > [網路] > [Wi-Fi] > [進階]。
- 在 [進階] 選單中點選 [TCP/IP] 分頁標籤。
- 將下拉式選單的選項從「設定 IPv6」變更為「僅限連結本機」。
- 按一下「確定」,然後按一下「套用」儲存變更。
- 透過 ldapsearch 連線執行有效搜尋,檢查服務驗證。
步驟 2:檢查是否能看到目錄物件。
- 開啟「目錄工具」,然後開啟「目錄編輯器」分頁。
- 在下拉式清單中選取「/LDAPv3/ldap.google.com」節點。
- 確認是否能透過您的 Google 網域查看使用者和群組。
Java 應用程式的設定操作說明
只要在應用程式的 Keystore 中安裝用戶端憑證,即可設定大部分提供 LDAP 功能的 Java 應用程式,以透過用戶端憑證進行驗證。不同應用程式的確切設定檔會有所不同,但流程大致相似。設定時必須安裝 OpenSSL 和 Java Runtime Environment。
將憑證和金鑰轉換為 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重要事項:這兩個檔案 (<CERT_FILE>.crt 和 <CERT_FILE>.key) 必須位於同一目錄。此外,請確認 key 和 crt 的名稱相同 (但副檔名不同)。在本範例中,我們使用 ldap-client.crt 和 ldap-client.key 這兩個名稱。
將憑證匯入 KeyStore:
$ keytool -v -importkeystore -srckeystore java-application-ldap.pkcs12 -srcstoretype PKCS12 -destkeystore java-application-ldap.jks -deststoretype JKS視應用程式而定,Java 屬性的設定方式可能有所不同。通常,您可以在用於啟動的「java」指令列上,使用 -D 選項設定這些屬性。針對應用程式設定 Java 屬性:
javax.net.ssl.keyStore = /<path-to>/java-application-ldap.jks javax.net.ssl.keyStorePassword = <password selected above>使用「基本設定說明」中的資訊,設定應用程式的 LDAP 連線設定。
選用:將 stunnel 做為 Proxy
如果用戶端無法使用用戶端憑證向 LDAP 驗證身分,請使用 stunnel 做為 Proxy。
設定 stunnel,向 LDAP 伺服器提供用戶端憑證,並設定用戶端連線至 stunnel。理想情況下,您會在與應用程式相同的伺服器上執行 stunnel,且只在本機接聽,這樣就不會將 LDAP 目錄公開給該伺服器以外的對象。
步驟如下:
安裝 stunnel。例如,在 Ubuntu 上:
$ sudo apt-get install stunnel4建立設定檔 /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編輯 /etc/default/stunnel4 並設定 ENABLED=1,即可啟用 stunnel。
重新啟動 stunnel。
$ sudo /etc/init.d/stunnel4 restart將應用程式設為指向 ldap://127.0.0.1:1636。
如果您也變更上述設定檔中的 accept 行,可以將「1636」替換為任何未使用的連接埠。您必須使用明文 LDAP,且用戶端與 stunnel 之間不得啟用 STARTTLS/安全資料傳輸層:SSL/傳輸層安全標準:TLS,因為兩者是在本機通訊。
注意:如果選擇在獨立伺服器上執行 stunnel,請務必設定防火牆,確保只有必要的應用程式可以存取 stunnel 伺服器。您也可以設定 stunnel 透過 TLS 監聽,以便加密應用程式和 stunnel 伺服器之間的資料。這兩項設定的詳細資料取決於您的環境。
後續步驟
將 LDAP 用戶端連上安全 LDAP 服務後,您必須將 LDAP 用戶端的服務狀態切換為開啟。
如需後續步驟的相關資訊,請參閱 5. 將 LDAP 用戶端切換為「開啟」。
注意:如果在嘗試將 LDAP 用戶端連線至服務時發生錯誤,可以視需要使用 ldapsearch、ADSI 或 ldp.exe 等簡單工具排解問題。如需操作說明,請參閱「連線測試和疑難排解」。