![]() | |
Sun Java(TM) System Directory Server 5.2 2005Q1 管理指南 |
第 1 章
Directory Server 管理概述Directory Server 產品包含了管理多重目錄的 Directory Server、Administration Server,以及透過圖形介面管理兩個伺服器的 Server Console。本章提供關於 Directory Server 的概述資訊,以及您要啟動管理目錄服務所需的最基本工作。
驗證 Plug-in 簽名是額外的安全性功能,讓伺服器可偵測或防止未經授權的 Plug-in 載入。Directory Server Markup Language (DSML) 是一種以 XML 為基礎的新格式,用於傳送要求給目錄伺服器。
本章包含下列章節:
Directory Server 管理概述Directory Server 為穩定、具延展性的伺服器,設計來管理企業內的使用者和資源目錄。它是以稱為輕量型目錄存取通訊協定 (Lightweight Directory Access Protocol,LDAP) 的開放式系統伺服器通訊協定為基礎。Directory Server 會以 ns-slapd 處理程序或服務在您的機器上執行。伺服器會管理目錄內容並回應用戶端的要求。
您可透過 Sun Java System 提供協助您管理 Directory Server (和數種其他 Sun Java System 伺服器) 的第二伺服器,即 Administration Server,以執行大部分的 Directory Server 管理工作。Server Console 是 Administration Server 的圖形化介面;Directory Server Console 是 Server Console 的一部分,專門設計來搭配 Directory Server 使用。
您可以透過 Directory Server Console 執行大部分的 Directory Server 管理工作。您也可以利用編輯配置檔,或使用指令行公用程式手動執行管理工作。如需關於 Server Console 的詳細資訊,請參閱 Administration Server Administration Guide。
備註
如果正在使用 Directory Server 資料服務的 Sun Cluster HA,在從指令行管理 Directory Server 時,您必須使用 directoryserver(1M) 指令及其子指令。
請勿直接使用單獨的程序檔和二進位檔案碼。
啟動和停止 Directory Server如果不使用安全通訊端階層 (Secure Sockets Layer,SSL),您可以利用列示於此處的方法啟動和停止 Directory Server。如果您使用 SSL,請參閱啟動啟用 SSL 的伺服器。
從指令行啟動和停止伺服器
從指令行啟動和停止伺服器。執行下列指令:
或
只有 Directory Server 5.2 不是預設版本時,才需要 useversion 選項。關於 directoryserver 指令的完整語法,請參閱 Directory Server Man Page Reference。
如果您將根指定為 Directory Server 的 UID,這些指令必須作為根執行。
否則,兩個指令必須作為根執行,或是與 Directory Server 相同的 UID 和 GID 一起執行。例如,如果 Directory Server 以 nobody 執行,則必須以 nobody 執行 start 和 stop 公用程式。
關於 Directory Server 之前版本的使用者,請注意已無法在參照模式中啟動伺服器。您可以使用 Directory Server Console 設定全域參照。此程序在設定預設參照中有說明。
從主控台啟動和停止伺服器
Directory Server Console 正在執行時,您可以透過其圖形介面啟動、停止和重新啟動 Directory Server。如需執行主控台的說明,請參閱啟動 Directory Server Console。
當您成功地從 Directory Server Console 啟動或停止 Directory Server 時,主控台會顯示訊息對話,說明已經啟動伺服器或關閉伺服器。如發生錯誤,主控台將顯示有關該錯誤的所有訊息。
啟動啟用 SSL 的伺服器
啟用 SSL 之前,您必須在您的伺服器上安裝與配置憑證。如需管理憑證及啟用 SSL 的說明,請參閱第 11 章「管理驗證和加密」如需關於憑證、憑證資料庫及取得伺服器憑證的資訊,請參閱 Administration Server Administration Guide。
若要啟動已啟用 SSL 的伺服器,您必須從指令行啟動伺服器,而且提供保護伺服器憑證的密碼。
或者,您可以建立密碼檔案以儲存您的憑證密碼。透過將您的憑證資料庫密碼放置在檔案中,可以從伺服器主控台啟動伺服器,並且允許伺服器在無人執行時,自動重新啟動。
密碼檔案必須放置在下列位置中:
serverRoot/alias/slapd-serverID-pin.txt
其中 serverID 是您在安裝時為伺服器指定的識別碼。
在檔案中包含安全 Token 的名稱及其密碼,如下:
tokenName:password
本範例顯示內部憑證資料庫的裝置名稱 (大小寫及空格必須完全依照如下顯示):
Internal (Software) Token:password
如果將憑證儲存在替代裝置上,請使用位在 [管理憑證] 對話方塊上方的下拉式功能表中的裝置名稱。若要建立憑證資料庫,您必須使用管理伺服器及 [憑證設定精靈]。
如果您希望啟動已啟用 SSL 的伺服器,但要防止伺服器偵聽非 SSL 連接埠,您可以將 nssldap-listenhosts 設為回送位址 127.0.0.1。或者,您可以將 nsslapd-port 屬性設為 0,雖然如此做可能會破壞某些管理程序檔,如 monitor、db2bak.pl 及 ldif2db.pl。
如需關於 Directory Server 使用 SSL 的資訊,請參閱第 11 章「管理驗證和加密」。
以非超級使用者的身份在小於 1024 的連接埠上啟動伺服器
通常,如果連接埠小於 1024,您必須為超級使用者才能啟動 Directory Server。下列程序可讓您轉為使用特定的非超級使用者。
- 安裝 Directory Server 及 Administration Server。當配置伺服器時,請確保兩台伺服器的使用者均為超級使用者。
使用 Java Enterprise System 安裝指南中的安裝指示。
- 停止 Directory Server。請參閱啟動和停止 Directory Server。
- 從 ServerRoot 目錄,執行下列指令以將目錄及檔案所有權變更為必要的 userID。
chown -R userID:groupID slapd-hostname
chown -R userID:groupID alias/slapd-hostname-*.db
- 編輯檔案 dse.ldif 以將 nsslapd-localuser 值由超級使用者變更為必要的 userID。
- 重新啟動 Directory Server。請參閱啟動和停止 Directory Server。
使用 Directory Server ConsoleDirectory Server Console 是您以 Server Console 的單獨視窗存取的介面。您可按照下列程序所述,從 Server Console 啟動 Directory Server Console。
啟動 Directory Server Console
- 請檢查確認 Directory Server 常駐程式 slapd-serverID 正在執行中。若沒有,請以超級使用者或管理使用者身份輸入下列指令來啟動它:
- 請檢查確認管理伺服器常駐程式 ns-httpd 正在執行中。若沒有,請以超級使用者或管理使用者身份輸入下列指令來啟動它:
如果要在不是安裝 Administration Server 的電腦執行 Server Console,可能需要依 Administration Server Administration Guide 所述配置 Administration Server 上的連線限制。
顯示 [主控台] 登入視窗。或者,如果您的配置目錄 (包含 o=NetscapeRoot 尾碼的目錄) 儲存在單獨的 Directory Server 實例中,則會顯示視窗,要求該目錄伺服器的系統管理員使用者 DN、密碼及 Administration Server 的 URL。
- 使用連結 DN 及使用者密碼登入,該使用者必須擁有充分的存取授權可執行您希望執行的作業。
顯示 Server Console。
- 在左面板的樹狀目錄中,瀏覽找尋您的 Directory Server 主機,然後按一下其名稱或圖示顯示其一般內容。
圖 1-1 Sun Java System Server Console
若要編輯 Directory Server 名稱和描述,請按一下 [編輯] 按鈕。在文字方塊中輸入新的名稱和描述。按一下 [確定],設定新名稱和描述。名稱會顯示在左邊的樹狀目錄中,如上圖所示。
- 連按兩下樹狀目錄中的 Directory Server 名稱,或按一下 [開啟] 按鈕,顯示管理此目錄伺服器的 Directory Server Console。
瀏覽 Directory Server Console
Directory Server Console 提供介面,可在 Directory Server 實例上瀏覽及執行管理作業。此介面始終顯示四個標籤,可從其中存取所有 Directory Server 功能:
[工作] 標籤
開啟 Directory Server Console 時,[工作] 標籤是第一個顯示的介面。它包含所有主要管理工作的按鈕,諸如下圖所示的啟動或停止 Directory Server。若要檢視所有工作及其按鈕,您或許需要捲動清單。
圖 1-2 Directory Server Console 的 [工作] 標籤
為了執行這些工作,您必須以擁有系統管理員權限的使用者身份登入。權限不足的使用者無法看到 [工作] 按鈕。
[配置] 標籤
Directory Server Console 的 [配置] 標籤提供介面和對話方塊,用來檢視及修改所有目錄設定值,如尾碼、複製、模式、記錄及外掛程式設定值。只有在您以擁有系統管理員權限的使用者身份登入時,這些對話方塊才能夠使用或生效。
此標籤的左邊含有所有配置功能的樹狀目錄,而右邊則顯示專門用來管理各功能的介面。這些介面通常包含其他標籤、對話方塊或快顯功能視窗。例如,下圖顯示整個目錄的一般設定值。
圖 1-3 Directory Server Console 的 [配置] 標籤
當您選擇左樹狀目錄中的可設定項目時,該項目目前的設定值會顯示在右面板的一或多個標籤中。如需這些設定值的說明和行為,請參閱本指南中描述各功能的章 節。視設定的不同,某些變更在儲存時會立即生效,其他的則要等到重新啟動伺服器時才會生效。當伺服器必須重新啟動時,主控台將顯示對話方塊通知您。
標籤中未儲存的變更會在標籤名稱旁以紅色標記通知。即使您配置另一個項目或檢視其他主要標籤之一,標籤上還是會保持未儲存的變更。[儲存] 及 [重設] 按鈕可套用至指定可設定項目的所有標籤,但是不會影響其他項目的未儲存設定值。
大多數文字欄位只允許您輸入具有該設定之正確語法的值。依據預設,在語法正確以前,設定標籤與您輸入的值會以紅色反白顯示。在所有設定值均為有效語法前,[儲存] 按鈕會停用。您可以選擇用斜體字型代表反白顯示的錯誤值,如視覺配置喜好設定所述。
[目錄] 標籤
主控台的 [目錄] 標籤為了方便瀏覽,以樹狀目錄顯示目錄項目。在此標籤中,您可以瀏覽、顯示及編輯包含的所有項目和屬性。
備註
如果預計瀏覽數千個項目的清單,請建立瀏覽索引以便進行快速存取。如需指令,請參閱主控台的瀏覽索引。
圖 1-4 Directory Server Console 的 [目錄] 標籤
如果登入時提供的連結 DN 具有充分的存取權限,則可以將配置項目視為一般項目來檢視,並且可以直接修改。但是,您應該始終使用透過 [配置] 標籤可用的對話方塊來安全變更配置設定值。
透過 [檢視] 功能表,有數個可用的選項可用來變更 [目錄] 標籤的佈局和內容。新佈局選項包括可檢視單一樹狀目錄中涵蓋葉項目在內的所有項目,而且也可以在右窗格中顯示屬性。預設是在右邊檢視葉項目,而非在左樹狀目錄中。
[檢視] > [顯示] 選項可啟用樹狀目錄中所有項目的 ACI 次數、角色次數及停用狀態圖示。在圖 1-4 中,ACI 次數和葉項目顯示於左樹狀目錄中,而選擇項目的屬性值顯示於右窗格中。如需詳細資訊,請參閱樹狀目錄檢視選項。
備註
如果您正在 [目錄] 標籤的左窗格上作業並看到一個黃色三角形,這表示發生錯誤。請參閱 Directory Server Console 的 [狀態] 標籤中的存取記錄,以獲得關於所發生錯誤的詳細資訊。如果您在右窗格上作業時發生錯誤,將不會看到錯誤警示。
[狀態] 標籤
[狀態] 標籤顯示伺服器統計資料和記錄檔訊息。左樹狀目錄列出所有的狀態項目,在選擇時,各項目的內容會顯示在右窗格中。例如,下圖顯示記錄檔項目表。
圖 1-5 Directory Server Console 的 [狀態] 標籤
從主控台檢視目前的連結 DN
您可以檢視用來登入 Directory Server Console 的 連結 DN,按一下位於顯示左下角的登入圖示即可。然後目前的連結 DN 會顯示於登入圖示旁,如此處所示:
![]()
變更您的登入身份
當您從 Directory Server Console 建立或管理項目時,以及當您首次存取 Server Console 時,系統讓您提供連結 DN 及密碼選項,以登入主控台。如此可識別正在存取樹狀目錄的使用者,以決定需要授與執行作業的存取授權。
首次啟動 Server Console 時,您可以目錄管理員 DN 登入。在任何時候,您都選擇以不同的使用者身份登入,而不必先停止再重新啟動主控台。
若要在 Server Console 中變更您的登入:
使用線上說明
線上說明為 Directory Server Console 的大部分標籤和對話方塊提供上下文相關資訊。[說明] 按鈕通常位在這些介面的右下角。若要在任何螢幕上呼叫上下文相關說明,其鍵盤快速鍵始終為 Alt-P。
呼叫線上說明會在主控台的內建瀏覽器中顯示 HTML 格式的頁面。您可以在這個頁面上按一下 [在瀏覽器中啟動] 按鈕,在外部瀏覽器 (如 Mozilla) 中顯示同一頁面。線上說明上有關詳細資訊的連結,也會開啟外部瀏覽器視窗。
每個線上說明頁會提供對應的標籤或對話方塊中所包含各欄位或按鈕的說明。當您透過主控台解釋、輸入或修改值時,這些資訊可以指引您。
Directory Server 的說明系統依存於 Administration Server。如果在 Administration Server 的遠端電腦上執行 Directory Server Console,您必須確認下列各項:
- 您可能必須配置 Administration Server 上強制執行的連線限制,以允許從您的電腦存取,如 Administration Server Administration Guide 所述。
- 如果要使用外部瀏覽器檢視線上說明頁,而且您的瀏覽器配置為使用代理,您必須執行下列動作:
主控台剪貼簿
Directory Server Console 使用您的系統剪貼簿複製、剪下及貼上文字。若要減少輸入字元,當您在 [目錄] 標籤內瀏覽時,可以將項目的 DN 或 URL 複製到剪貼簿。
開啟必須在文字欄位中貼入 DN 或 URL 的對話方塊或另一個標籤之前:
主控台設定值
Directory Server Console 提供許多設定值,可自訂 [配置] 及 [目錄] 標籤中資訊的顯示方式。
視覺配置喜好設定
當您在最上層 [配置] 標籤上的欄位中修改配置參數與輸入值時,Directory Server Console 會使用彩色文字表示有效輸入。例如,如果啟用某項功能,該功能要求輸入進一步的配置值,則必要欄位的標籤會以紅色顯示,等您輸入有效值之後則會變成藍色。
依預設值,主控台使用紅色和藍色,但您可以依下列方式修改此行為:
- 在 Directory Server Console 的任意標籤上,選擇 [編輯] > [喜好設定] 功能表項目。在 [主控台喜好設定] 對話方塊中,選擇 [其他] 標籤。
- 選擇您喜好的視覺配置標記的選項按鈕。您可以選擇彩色的字型或字型外觀,或同時選擇兩者。
- 如需 [主控台喜好設定] 對話方塊的其他標籤上各項設定值的描述,請參閱 Administration Server Administration Guide。
然後按一下 [確定] 以儲存變更。
- 結束 Server Console 的所有視窗,再重新啟動。
樹狀目錄檢視選項
在 Directory Server Console 最上層的 [目錄] 標籤上,[檢視] 功能表的項目可讓您顯示樹狀目錄中的其他資訊,並可選擇右面板中顯示的內容。
下列 [檢視] 選項會影響 [目錄] 標籤的內容:
- 顯示>ACI 次數 - 如果項目的 aci 屬性中包含一或多個存取控制指令 (ACI),樹狀目錄會在項目旁顯示個數。如需詳細資訊,請參閱第 6 章「管理存取控制」。
- 顯示>角色次數 - 如果項目是一或多個角色的成員,樹狀目錄會在項目旁顯示次數。如需詳細資訊,請參閱指派角色。
- 顯示>停用狀態 - 如果使用者或群組項目已停用,以防止連結到伺服器,則樹狀目錄會以項目的圖示顯示紅色方塊和線條。如需詳細資訊,請參閱停用與啟用使用者與角色。
- 佈局>檢視子項 - 當您選擇此佈局選項時,左面板中的樹狀目錄不會顯示目錄的葉項目,而選擇左面板中的父項節點會在右面板中顯示其所有子項,包括葉項目。您可以選擇任一面板的項目。
- 佈局>只檢視樹狀目錄 - 使用這個選項時,[目錄] 標籤只有一個面板,以顯示包含目錄中所有項目的樹狀目錄。
- 佈局>檢視屬性 - 在此佈局中,左面板顯示包含目錄中所有項目的樹狀目錄,而右面板顯示在樹狀目錄上選擇項目中儲存的屬性與值。
- 顯示屬性 - 按一下此功能表項目可查看 [顯示屬性] 對話方塊,並選擇 [目錄] 標籤顯示之項目的標籤。依預設值,標籤是項目第一個 RDN 屬性的值,例如 People。對於沒有 RDN 的基礎項目,標籤則是完整的 DN,例如 dc=example,dc=com。
配置 LDAP 參數LDAP 參數是目錄伺服器中的基本設定值,例如目錄管理員的辨別名稱 (DN)、全域唯讀設定、連接埠配置及能否追蹤所有目錄修改時間等。
配置目錄管理員
目錄管理員是有權限的伺服器系統管理員,相當於 UNIX 的超級使用者。存取控制不會套用至您定義為目錄管理員的項目。您已在安裝過程中先定義了此項目。預設為 cn=Directory Manager。
目錄管理員的 DN 儲存在 nsslapd-rootDN 屬性中,密碼儲存在 cn=config 分支的 nsslapd-rootpw 屬性中。
使用 Directory Server Console 變更目錄管理員 DN、密碼以及此密碼所使用的儲存結構:
- 以目錄管理員身份登入主控台。
若您已經登入主控台,如需如何以不同使用者身份登入的說明,請參閱變更您的登入身份。
- 在最上層的 [配置] 標籤上,選擇瀏覽樹狀目錄根部的伺服器節點,並在右面板中選擇 [設定值] 標籤。
- 在 [目錄管理員 DN] 欄位中輸入新的辨別名稱。預設值是安裝期間所定義的值。
- 從 [管理員密碼儲存機制] 下拉式功能表中,選擇儲存結構,讓伺服器用來儲存目錄管理員的密碼。
- 請使用所提供的文字欄位,輸入新密碼並做確認。
- 按一下 [儲存]。
變更目錄伺服器連接埠號碼
您可利用 Directory Server Console 或者變更 cn=config 項目下的 nsslapd-port 或 nssldap-secureport 屬性值,修改使用者目錄伺服器的連接埠或安全連接埠號碼。
如果您想要修改包含 Sun Java System 配置資訊 (o=NetscapeRoot 樹狀子目錄) 的 Directory Server 連接埠或安全連接埠,可以透過 Directory Server Console 進行修改。
如果您變更配置目錄或使用者目錄連接埠或安全連接埠號碼,應該瞭解下列影響:
- 您必須變更 Administration Server 所設定的配置、使用者目錄連接埠或安全連接埠號碼。請參閱 Administration Server Administration Guide。
- 如果您安裝了其他 Sun Java System Server,指向配置或使用者目錄,則您必須更新那些伺服器,以指向新的連接埠號碼。
- 如果其他伺服器上定義的複製協議中參照 Directory Server,則複製協議必須更新為使用新的連接埠或安全連接埠號碼。
- 如果設定非權限的連接埠號碼,而且 Directory Server 安裝在其他使用者可以存取的機器上,您可能冒著連接埠被另一個應用程式劫取的危險。也就是說,另一個應用程式可以連結相同的位址/連接埠對。此惡意應用程 式可以處理要用於 Directory Server 的要求,而且可用於擷取驗證程序中使用的密碼、改變用戶端要求或伺服器回應或產生拒絕服務攻擊。若要避免此類安全性危險,請使用 nsslapd-listenhost 屬性指定 Directory Server 偵聽的介面 (位址)。如需關於此屬性的詳細資訊,請參閱 Directory Server Administration Reference。
- 透過主控台變更連接埠號碼不會對某些程序檔作必要的修改。下列程序檔維持程序內定的原始連接埠號碼,必須手動才能加以修改:bak2db.pl、 schema_push.pl、 db2bak.pl、check-slapd、db2index.pl、db2ldif.pl、monitor、ldif2db.pl、ns- accountstatus.pl、ldif2ldap、ns-activate.pl、ns-inactivate.pl。
請注意,這裡提供的程序檔名稱是獨立工具的名稱,且沒有在文件記錄 check-slapd 指令,因為它不是公開提供 API 的一部分。如需詳細資訊,請參閱 Directory Server Administration Reference。
修改 Directory Server 偵聽傳入 LDAP 要求的連接埠或安全連接埠號碼若要修改 DSML 要求的連接埠,請參閱配置 DSML。
- 在 Directory Server Console 最上層的 [配置] 標籤上,選擇含有伺服器名稱的根節點,然後在右面板中選擇 [網路] 標籤。
標籤顯示伺服器目前的 LDAP 通訊協定的連接埠設定值。
- 在 [連接埠] 欄位中輸入您要伺服器用於進行非 SSL 通訊的連接埠號碼。預設值是 389。
- 如果已依第 11 章「管理驗證和加密」所述在此伺服器上啟用 SSL,您可以允許安全連接埠上的連線:
- 按一下 [儲存],然後再重新啟動伺服器。
如需資訊,請參閱啟動和停止 Directory Server。
設定全域唯讀模式
在您的目錄中,每一個尾碼都可以放置獨立的唯讀模式,而且如果定義了特定參照也可以傳回此參照。Directory Server 也提供可套用至所有尾碼的全域唯讀模式,而且當定義了全域參照時,也可以傳回此參照。
全域唯讀模式是設計來讓系統管理員防止在執行如重新編製尾碼的索引時,同時修改了目錄的內容。基於這個原因,全域唯讀模式不會套用至下列配置分支:
無論唯讀設定如何,「存取控制指令」(Access Control Instructions,ACI) 都應該保護這些分支,以防止非管理使用者進行修改 (請參閱第 6 章「管理存取控制」)。全域唯讀模式可防止目錄中所有其他尾碼的更新作業,包括由目錄管理員啟動的更新作業。
如果啟用了唯讀模式,也會中斷尾碼上的複製。主機複製將不再變更任何複製,儘管它會持續複製在啟動唯讀模式前所作的所有變更。在停用唯讀模式前,用戶複本不會收到更新。多重主機複製藍本的主機不會變更任何複製,也無法收到其他主機的更新。
若要啟用或停用全域唯讀模式:
如需關於將個別尾碼放置在唯讀模式的資訊,請參閱設定尾碼唯讀模式。
追蹤目錄項目的修改
您可將伺服器配置成維護新近建立或修改項目的特殊屬性:
- creatorsName - 首先建立項目人員的辨別名稱。
- createTimestamp - 以 GMT (格林威治標準時間) 格式表示建立項目時間的時間戳記。
- modifiersName - 最後修改項目人員的辨別名稱。
- modifyTimestamp- 以 GMT 格式表示最後修改項目時間的時間戳記。
備註
當用戶端應用程式建立或修改鏈接尾碼中的項目時,creatorsName 和 modifiersName 屬性不會反映項目的真實建立者或修改者。這些屬性包含需要連結遠端伺服器的鏈接代理伺服器名稱。如需關於代理伺服器授權的資訊,請參閱建立代理身份。
追蹤複製尾碼的修改時間時,名稱和時間戳記屬性會被當成一般屬性而進行複製。如此一來,這些屬性會反映主機伺服器上項目原始修改的時間,而不是複製到用戶的時間。
若要啟用 Directory Server 追蹤此資訊:
- 在 Directory Server Console 最上層的 [配置] 標籤上,選擇配置樹狀目錄中的根節點,然後在右面板中選擇 [設定值] 標籤。
- 選擇 [追蹤項目修改次數] 核取方塊。
伺服器會將 creatorsName、createTimestamp、modifiersName 和 modifyTimestamp 屬性加入至每一個新建或修改的項目。現有項目不會包含建立屬性。
- 按一下 [儲存],然後再重新啟動伺服器。
如需詳細資訊,請參閱啟動和停止 Directory Server。
驗證外掛程式簽名驗證外掛程式簽名是 Directory Server 5.2 的新增功能。Directory Server 所提供的外掛程式各有一個數位簽名,可在啟動時由伺服器予以驗證。依預設值,伺服器將會驗證外掛程式簽名,但無論簽名是否存在或有效與否,它都會載入每一 個外掛程式。
驗證簽名有下列優點:
配置外掛程式簽名的驗證
- 在 Directory Server Console 最上層的 [配置] 標籤上,選擇配置樹狀目錄中的 [外掛程式] 節點。目前的簽名驗證策略顯示在右面板中。
- 選擇下列其中一個選項:
- 按一下 [儲存],然後如啟動和停止 Directory Server 中所述重新啟動 Directory Server。
檢視外掛程式的狀態
配置 DSML除了在輕量型目錄存取通訊協定 (Lightweight Directory Access Protocol,LDAP) 中處理要求外,Directory Server 現在也回應使用目錄服務標記語言版本 2 (Directory Service Markup Language version 2,DSMLv2) 傳送的要求。DSML 為用戶端編碼目錄作業的另外一種方式,但是伺服器會以所有相同的存取控制及安全性功能,將 DSML 視同任何其他要求來處理。事實上,DSML 處理程序允許很多其他類型的用戶端可以存取您的目錄內容。
Directory Server 支援透過超文字傳輸通訊協定 (Hypertext Transfer Protocol,HTTP/1.1) 使用 DSMLv2,以及使用簡單物件存取通訊協定 (Simple Object Access Protocol,SOAP) 版本 1.1 作為程式設計通訊協定,以傳輸 DSML 內容。如需有關這些通訊協定和 DSML 要求範例的詳細資訊,請參閱使用 DSMLv2 存取目錄。
啟用 DSML 要求
由於 LDAP 為存取目錄的標準通訊協定,依預設,安裝 Directory Server 後,不會啟用 DSML 要求。如果您想要自己的伺服器能夠回應透過 HTTP/SOAP 傳送的 DSML 要求,必須確實啟用這項功能。
若要透過主控台在您的伺服器上啟用 DSML 要求:
- 在 Directory Server Console 最上層的 [配置] 標籤上,選擇配置樹狀目錄中的根節點,並選擇右面板中的 [網路] 標籤。
- 選擇 [啟用 DSML] 核取方塊,並選擇下列其中一個安全選項:只有已啟用 SSL 時才可使用安全連接埠選項,如第 11 章「管理驗證和加密」所述。
- 然後編輯下列任何一個欄位:
- 按一下 [儲存],將會提醒您必須重新啟動該伺服器,以開始回應 DSML 要求。
若要透過指令行啟用 DSML 要求:
- 請執行下列 ldapmodify 指令,啟用 DSML 前端外掛程式並修改其設定值。修改 ds-hdsml-port、ds-hdsml-secureport 及 ds-hdsml-rooturl 屬性是選用的:
% ldapmodify -h host -p LDAPport -D "cn=Directory Manager" -w passwd
dn:cn=DSMLv2-SOAP-HTTP,cn=frontends,cn=plugins,cn=config
changetype:modify
replace:nsslapd-pluginEnabled
nsslapd-pluginEnabled:on
-
replace:ds-hdsml-port
ds-hdsml-port:DSMLport
-
add:ds-hdsml-secureport
ds-hdsml-port:secureDSMLport
-
replace:ds-hdsml-rooturl
ds-hdsml-root:relativeURL
-
^D根據你所定義的參數及屬性值,DSML 用戶端可以使用下列 URL 將要求傳送至此伺服器:
http://host:DSMLport/relativeURL
https://host:secureDSMLport/relativeURL
- 修改完成 DSML 前端外掛程式後,您必須重新啟動伺服器使變更生效。不過,在您重新啟動伺服器前,或許會想要配置 DSML 驗證的安全性和識別對映,如下列章節中所述。
配置 DSML 安全性
除了先前章節中所述的安全連接埠配置以外,您也可以設定接受 DSML 要求時所需要的安全層級。DSML 前端外掛程式的 ds-hdsml-clientauthmethod 屬性,決定用戶端所需要的驗證方法。此屬性可以擁有下列的值:
- httpBasicOnly - 伺服器使用 HTTP Authorization 標頭中的內容,尋找可以對應至目錄中項目的使用者名稱。此處理程序及其配置在 DSML 識別對映中有進一步的描述。使用此設定時,傳到安全 HTTPS 連接埠的 DSML 要求透過 SSL 加密,但不使用用戶端憑證。
- clientCertOnly - 伺服器會使用用戶端憑證的認證識別用戶端。有了此值,所有 DSML 用戶端都必須使用安全 HTTPS 連接埠傳送 DSML 要求並提供憑證。該伺服器會檢查確認用戶端憑證符合目錄中的項目。如需詳細資訊,請參閱第 11 章「管理驗證和加密」。
- clientCertFirst - 伺服器會嘗試先利用用戶端憑證 (如果有提供的話) 來驗證用戶端。否則,該伺服器會使用授權標頭的內容來驗證用戶端。
如果 HTTP 要求中既無憑證也沒有提供授權標頭,則伺服器會以匿名連結執行 DSML 要求。下列情況中也會使用匿名連結:
不論 ds-hdsml-clientauthmethod 屬性值為何,如果提供了憑證,但是此憑證卻無法對應至任何項目,或者如果已指定了 HTTP 授權標頭,但是無法對應至使用者項目,則將會拒絕 DSML 要求並出現錯誤訊息 403:「禁止」。
若要透過主控台設定 DSML 安全需求:
- 在 Directory Server Console 最上層的 [配置] 標籤上,選擇配置樹狀目錄中的根節點,並選擇右面板中的 [加密] 標籤。
您必須已經依第 11 章「管理驗證和加密」所述配置及啟用 SSL。
- 在 [DSML 用戶端驗證] 欄位中,從下拉式功能表選擇其中一個選項。
- 按一下 [儲存],接著重新啟動伺服器以強制執行新的安全設定。
若要透過指令行設定 DSML 安全需求:
- 請執行下列 ldapmodify 指令,編輯 DSML 前端外掛程式的屬性:
% ldapmodify -h host -p LDAPport -D "cn=Directory Manager" -w passwd
dn:cn=DSMLv2-SOAP-HTTP,cn=frontends,cn=plugins,cn=config
changetype:modify
replace:ds-hdsml-clientauthmethod
ds-hdsml-clientauthmethod:httpBasicOnly 或
clientCertOnly 或 clientCertFirst
^D- 修改完成 DSML 前端外掛程式後,您必須重新啟動伺服器,強制執行此新的安全設定。
DSML 識別對映
在執行沒有憑證的基本驗證時,Directory Server 會使用稱為識別對映的機制來決定接受 DSML 要求時應使用的連結 DN。此機制會從 HTTP 要求的 Authorization 標頭中擷取資訊,決定要用於連結的識別。如需此機制的完整描述,請參閱識別對映。
伺服器配置中的下列項目,提供 DSML-over-HTTP 的預設識別對映:
dn:cn=default,cn=HTTP-BASIC, cn=identity mapping, cn=config
objectclass:top
objectclass:nsContainer
objectclass:dsIdentityMapping
cn:default
dssearchbasedn:ou=People,userRoot
dssearchfilter:(uid=${Authorization})此對應會在 ou=People,userRoot 樹狀子目錄中搜尋其 uid 屬性符合 Authorization 標頭中指定的使用者名稱的項目。userRoot 是您在安裝目錄時定義的尾碼,例如 dc=example,dc=com。
在對映項目屬性內,您可以使用 ${header} 格式的預留位置,其中 header 是 HTTP 標頭的名稱。DSML 對映中最常使用的標頭為:
若要使 DSML 要求執行不同的識別對映,請為 HTTP 標頭定義新的識別對映:
- 編輯預設的 DSML-over-HTTP 識別對映,或為此通訊協定建立自訂的對映。如需識別對映項目中各屬性的定義,請參閱識別對映。這些對映必須位於下列項目之下:
cn=HTTP-BASIC, cn=identity mapping, cn=config。您可以依照下列兩種方式之一建立新對映:
- 使用 Directory Server Console 最上層的 [目錄] 標籤,用適當的物件類別建立新項目,如使用主控台管理項目所述。
- 使用 ldapmodify 工具,從指令行加入此項目,如使用 ldapmodify 加入項目中所述。
- 新對映生效前須重新啟動 Directory Server。
系統會先評估自訂對映,而如果自訂對映都不成功,則再評估預設對映。如果所有對映在決定 DSML 要求的連結 DN 時都失敗了,則會禁止並拒絕 DSML 要求 (錯誤 403)。