請參考本文的操作說明,將 LDAP 用戶端連線至安全 LDAP 服務。
重要事項:
- 請務必詳閱供應商的說明文件
本文就如何將 LDAP 用戶端連線至安全 LDAP 服務提供的詳細資料僅供參考,相關資訊可能隨時變更。除了這些操作說明外,請務必詳閱供應商說明文件,瞭解將用戶端連線至安全 LDAP 服務的最新步驟。 - 事前準備
按照以下說明操作之前,請先確認您已將用戶端新增至安全 LDAP 服務、設定存取權限及下載用戶端憑證和金鑰;此外,您可以視需要建立存取憑證。 - 連線測試
開始進行以下步驟前,建議您視需要使用 ldapsearch、ADSI 和 ldp.exe 等簡易工具快速執行連線測試。如果在嘗試將 LDAP 用戶端連線至服務時發生錯誤,您也可以使用這些工具排解問題。如需操作說明,請參閱安全 LDAP 連線能力測試。 - 如何完成設定步驟
按照本頁操作說明建立 LDAP 用戶端連線後,您必須在 Google 管理控制台中將服務狀態切換成「開啟」,才能完成 LDAP 用戶端設定。如需操作說明,請參閱 5. 將 LDAP 用戶端切換成「開啟」。
本文內容
本文包含以下各節:
- 基本設定操作說明:針對本文未提到的 LDAP 用戶端,提供一般連線步驟說明。
- 特定 LDAP 用戶端的設定操作說明:說明如何將 Atlassian Jira 和 OpenVPN 等特定 LDAP 用戶端連線至安全 LDAP 服務,步驟會依用戶端類型而異。
- Java 應用程式設定操作說明:針對支援 LDAP 功能的 Java 應用程式,提供一般操作說明。
- 選用:將 stunnel 當做 Proxy 使用:本節將說明為不支援數位憑證的 LDAP 用戶端建立連線時須注意的其他事項。
在以下說明中,我們假設您下載的用戶端金鑰和憑證檔案分別為 ldap-client.key 和 ldap-client.crt。
基本設定操作說明
本節將介紹 LDAP 用戶端連線至安全 LDAP 服務的一般設定步驟。如果以下操作說明未提到您的 LDAP 用戶端,請參閱該應用程式的說明文件。
注意:進行使用者驗證期間,Atlassian Jira 和 SSSD 等特定 LDAP 用戶端會執行使用者查詢作業,藉此取得更多使用者資訊。為確保這類 LDAP 用戶端的使用者驗證作業順利進行,您必須為所有已開啟「驗證使用者憑證」權限的機構單位一併開啟「讀取使用者資訊」權限。(如需操作說明,請參閱設定存取權限)。
如何將 LDAP 用戶端連線到安全 LDAP 服務:
- 使用 Cloud Directory 將 LDAP 用戶端設定為 LDAP 伺服器。
將憑證上傳到 LDAP 用戶端。
安全 LDAP 服務會使用傳輸層安全標準 (TLS) 用戶端憑證當做主要的驗證機制。如要開始將憑證上傳至 LDAP 用戶端,請開啟 LDAP 用戶端的驗證或目錄設定,然後從下表輸入詳細資料。
注意:如需上傳 TLS 憑證的做法及位置的完整資訊,請參閱供應商的說明文件。
請參閱下表,瞭解基本連線資訊:
|
主機名稱 |
ldap.google.com |
|---|---|
|
連接埠 |
如為已啟用 StartTLS 的 LDAP,通訊埠是 389 |
|
Base DN |
您的網域 (採用 DN 格式)。例如: dc=example,dc=com 即表示「example.com」example.com |
|
使用者名稱和密碼 |
除了使用憑證進行驗證外,某些 LDAP 用戶端還會要求您輸入使用者名稱和密碼。如果使用者名稱和密碼不是必填欄位,您可以跳過此步驟。 在 Google 管理控制台中產生使用者名稱和密碼。如需操作說明,請參閱「產生存取憑證」。 |
|
用戶端憑證和金鑰檔案 |
使用從 Google 管理控制台下載的憑證和金鑰檔案。如果 LDAP 用戶端並未提供透過用戶端憑證進行驗證的方式,請參閱將 stunnel 當做 Proxy 使用一節。 重要事項:Apache Directory Studio 等部分 LDAP 用戶端不支援上傳數位憑證。如果遇到這種情況,請參閱「將 stunnel 當做 Proxy 使用」一節。 |
特定 LDAP 用戶端的設定操作說明
ADSI 編輯 (Windows)
請按照下列步驟操作:
- 按照 ldp.exe (Windows) 一節的步驟 1 至 11 安裝用戶端憑證。
- 依序點選「動作」>「連線至…」。
- 輸入下列連線設定:
名稱:輸入連線名稱,例如「Google LDAP」。
連接點:「選取或輸入辨別名稱或命名內容」
以 DN 格式輸入您的網域名稱 (假設您的網域為「example.com」example.com,則輸入 dc=example,dc=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 Connection」。
- 點選 [下一步]。
- 輸入連線參數:
連線名稱:選擇一個名稱,例如「Google LDAP」
主機名稱:localhost
通訊埠:1389 (或 stunnel 監聽/接受通訊埠)
加密方法:不加密 (注意:如果 stunnel 是遠端執行,建議在 stunnel 與用戶端之間加密)。
- 點選 [下一步]。
- 輸入驗證參數:
Authentication Method (驗證方式):Simple Authentication (簡單驗證)
Bind DN or user (繫結 DN 或使用者):管理控制台的存取憑證使用者名稱
Bind password (繫結密碼):管理控制台的存取憑證密碼
- 點選 [下一步]。
- 輸入基準 DN。
這是以 DN 格式輸入的網域名稱 (假設您的網域為「example.com」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 網頁介面。
- 依序前往「設定」>「使用者管理」。(如需設定,請點選右上角的齒輪圖示)。
- 按一下「使用者目錄」。
- 按一下「新增目錄」。
- 類型選擇「LDAP」。
- 點選 [下一步]。
- 輸入下列資訊:
名稱
Google 安全 LDAP
目錄類型
OpenLDAP
主機名稱
ldap.google.com
通訊埠
636
使用 SSL
已勾選
使用者名稱
在 Google 管理控制台中產生使用者名稱和密碼。如需操作說明,請參閱「產生存取憑證」。
密碼
在 Google 管理控制台中產生使用者名稱和密碼。如需操作說明,請參閱「產生存取憑證」。
Base DN
以 DN 格式輸入的網域名稱。(例如,dc=example,dc=com 即表示「example.com」example.com)
Additional User DN (其他使用者 DN)
(選用步驟) "ou=Users"
Additional Group DN
(選用步驟) 「ou=Groups」
LDAP Permissions (LDAP 權限)
唯讀
進階設定
未變更
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。
如何將角色授予群組:- 依序前往「設定」>「應用程式」>「應用程式存取權」。
- 在「Select group」(選取群組) 文字方塊中,輸入您要授予 Jira 存取權的 Google 群組名稱。
CloudBees Core / Jenkins
如需將 CloudBees Core 連線至安全 LDAP 服務的操作說明,請參閱「透過 Google 的 Cloud Identity 安全 LDAP 設定 CloudBees Core」。
FreeRadius
請按照下列步驟操作:
- 將 FreeRADIUS 安裝到 /etc/freeradius/3.0/ 並進行設定。
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'
- 找到代表「dap -> post-auth -> update」部分的導覽標記,為其中的所有欄位加上註解
- 編輯 /etc/freeradius/3.0/sites-available/default。
這會修改 FreeRadius 用戶端連線。如果您使用的不是預設用戶端,請務必更新您所設定的相關用戶端 (inner-tunnel 或任何自訂用戶端)。
- 修改「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 服務的操作說明,請參閱「為 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
請按照下列步驟操作:
- 在 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;另外將 SSL/TLS 通訊埠改為 3269 (預設值如果是 389,就代表純文字通訊埠;如果是 636,則代表 SSL/TLS 通訊埠)。
- 將 <TestDN> 值設為 DN 格式的網域名稱。(例如,針對「example.com」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
重要事項:「<憑證檔案>.crt」和「<憑證檔案>.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」example.com輸入 dc=example,dc=com)。
- 按一下「確定」。
- 如果連線成功,LDP.exe 就會在右側窗格顯示 Active Directory 內容 (例如基準 DN 內的所有屬性)。
Netgate / pfSense
如需將 Netgate/pfSense 連線至安全 LDAP 服務的操作說明,請參閱「將 Google Cloud Identity 設為驗證來源」。
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 目錄了。
-
假設您先前匯入 Keychain 的 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」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」/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 存取伺服器連線至安全 LDAP 服務的操作說明,請參閱「透過 OpenVPN 存取伺服器設定 Google 安全 LDAP」。
PaperCut MF 和 NG
如需將 PaperCut 連線至安全 LDAP 服務的操作說明,請參閱「如何在 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。
請按照下列步驟操作:
- 將憑證和金鑰檔案轉換成一個 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」。 - 在 Softerra LDAP Browser 中安裝金鑰組。
- 依序前往「Tools」>「Certificate Manager」。
- 點選「匯入…」
- 點選 [下一步]。
- 按一下「瀏覽…」。
- 在對話方塊右下角的「File type」(檔案類型) 下拉式清單中,選取「Personal Information Exchange (*.pfx;*.p12)」(個人資訊交換 (*.pfx;*.p12))。
- 選取上述步驟 2 中的 ldap-client.p12 檔案。
- 依序點選「開啟」和「下一步」。
- 輸入上述步驟 2 中的密碼,然後點選「下一步」。
- 選取「個人」憑證存放區。
- 點選 [下一步]。
- 按一下「完成」。
- 新增伺服器設定檔。
- 依序前往「File」>「New」>「New Profile…」
- 輸入設定檔名稱,例如「Google LDAP」。
- 點選 [下一步]。
輸入以下資訊:
Host (主機): ldap.google.com
Port (通訊埠): 636
Base DN (基準 DN):以 DN 格式輸入的網域名稱 (假設您的網域為 example.com,則輸入 dc=example,dc=com)。
Use secure connection (SSL) (使用安全連線 (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 8.1.3 等舊版 Splunk 時,系統可能會向 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 |
|
通訊埠 |
636 |
|
已啟用 SSL |
已勾選 |
|
連線順序 |
1 |
|
繫結 DN |
輸入您在 Google 管理控制台產生的存取憑證。 |
|
繫結 DN 密碼 |
輸入您在 Google 管理控制台產生的存取憑證。 |
|
Base DN |
以 DN 格式輸入的網域名稱 (假設您的網域為「example.com」example.com,則輸入 dc=example,dc=com) |
|
使用者數量篩選器 |
針對要用來篩選使用者的物件類別輸入使用者數量篩選器。 |
|
使用者名稱屬性 |
uid |
|
實際名稱屬性 |
displayname |
|
電子郵件地址屬性 |
郵件 |
|
群組對應屬性 |
dn |
|
群組基準 DN |
以 DN 格式輸入的網域名稱 (假設您的網域為「example.com」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. 正在略過。動作:您必須將 .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}'. 檢查是否有錯字。[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}'. 檢查是否有錯字。
動作:從 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
提示:如果您用於操作 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 下載的 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 存取權授予使用者前,會先移除這個應用程式。
您必須將下列三個應用程式加入存取控制清單 (ACL):
/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 目錄以進行驗證
開啟「目錄工具程式」應用程式,建立新的 LDAP 目錄節點:
- 按一下鎖頭圖示,即可進行變更並輸入密碼。
- 選取「LDAPv3」LDAPv3並點選鉛筆圖示,即可編輯設定。
- 按一下「新增…」。
- 輸入 ldap.google.com 做為伺服器名稱,選取「使用 SSL 加密」,然後點選「手動」。
- 選取新的伺服器名稱,然後按一下「編輯…」。
- 輸入描述性的設定名稱,例如「Google Secure LDAP」。
- 選取「使用 SSL 加密」,並確認通訊埠已設為「636」。
- 前往「搜尋和對應」分頁。
- 在下拉式選單中依序選取「連接這個 LDAPv3 伺服器」RFC2307>「RFC2307」。
- 出現系統提示時,請在「搜尋基準網域尾碼」中輸入網域相關資訊,例如,針對「zomato.com」zomato.com的網域名稱輸入
dc=zomato,dc=com。 - 按一下「確定」。
- 在「使用者」記錄類型底下設定屬性:
- 在「記錄類型和屬性」部分選取「使用者」,然後按一下「+」按鈕。
- 在彈出式視窗中依序選取「屬性類型」>「GeneratedUID」,然後按一下「確定」,關閉彈出式視窗。
展開「使用者」後,GeneratedUID 應會顯示在下方。
- 點選該 GeneratedUID,然後按一下右側方塊中的「+」圖示。
- 在文字方塊中輸入「apple-generateduid」,然後按一下 Enter 鍵。
- 點選「使用者」節點下方的「NFSHomeDirectory」屬性。
- 在畫面右側,將這個屬性的值更新為
#/Users/$uid$ - 按一下「確定」,然後輸入密碼以儲存變更。
- 在「目錄工具程式」視窗中指定新的 LDAP 設定:
- 前往「搜尋政策」分頁。
- 按一下鎖頭圖示以進行變更,並在系統顯示提示時,輸入目前使用者的密碼。
- 將下拉式選單的選項從「搜尋路徑」改為「自訂路徑」。
- 開啟「認證」分頁,然後點選「+」圖示。
- 在目錄網域清單中選擇
/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 admin user name」時,請輸入管理員使用者名稱,待下一個提示出現時,再輸入密碼;這項操作會將「$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 管理控制台) 就會開始執行使用者密碼管理作業 (重設或復原)。myaccount.google.com如果您選擇使用第三方解決方案管理密碼,請務必將最新的密碼同步到 Google。
- 如果管理員建立新使用者或是重設現有使用者的密碼時,開啟了「要求在下次登入變更密碼」設定,使用者便無法透過管理員設定的臨時密碼登入 Mac。
解決方法:使用者必須透過其他裝置 (例如行動裝置或其他電腦) 登入 Google 設定永久密碼,然後再使用新密碼登入 macOS。 - 完成上述設定後,Mac 必須連上可正常運作的網際網路,使用者才能在首次登入時存取 ldap.google.comldap.google.com。如果您選擇設定行動帳號,之後即使沒有網路連線也一樣可以登入。
- Google 安全 LDAP 與 macOS 的整合作業已在 macOS Catalina、Big Sur 和 Monterey 上測試。
如果無法連上安全 LDAP 服務,請按照下列操作說明進行。
步驟 1:確認連線狀況。
使用 odutil 確認連線狀況。
在終端機執行 odutil show nodenames 指令。
確認 /LDAPv3/ldap.google.com 狀態為「online」。如果不是,請嘗試改用 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 執行階段環境。
將憑證和金鑰轉換為 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」。
將憑證匯入 KeyStore:
$ keytool -v -importkeystore -srckeystore java-application-ldap.pkcs12 -srcstoretype PKCS12 -destkeystore java-application-ldap.jks -deststoretype JKSJava 屬性的設定方式會因應用程式而不同,但通常都可以在用於啟動應用程式的「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。
您可以將「1636」替換成任何未使用的通訊埠,但同時也要變更上述設定檔中的「accept」指令列。如要這樣做,則必須在用戶端和 stunnel 之間使用明文 LDAP;不過您無須啟用 StartTLS/SSL/TLS,因為這兩者是在本機進行通訊。
注意:如果您選擇在其他伺服器上執行 stunnel,則必須設定防火牆,限制只有必要的應用程式才可以存取您的 stunnel 伺服器。您也可以將 stunnel 設定為使用 TLS 接聽,藉此為應用程式和 stunnel 伺服器之間的資料加密。兩者的設定細節會依您的環境而異。
後續步驟
將 LDAP 用戶端連線至安全 LDAP 服務後,您必須將 LDAP 用戶端的服務狀態切換為「開啟」。
如需後續步驟資訊,請參閱 5. 將 LDAP 用戶端切換成「開啟」。
注意:如果您嘗試將 LDAP 用戶端連線至服務時發生錯誤,可以視需要使用 ldapsearch、ADSI 或 ldp.exe 等簡易工具排解問題。如需操作說明,請參閱「連線測試與疑難排解」。