您可以設定雙向驗證,以確保在遠端載入器與 Identity Manager 引擎之間進行安全通訊。雙向驗證使用證書而非密碼進行信號交握。遠端載入器與 Identity Manager 引擎透過交換並驗證可信證書管理中心 (CA) 核發的公用金鑰證書或數位證書或者自行簽署的證書來相互驗證。如果雙向驗證成功,遠端載入器會向引擎進行驗證。當遠端載入器與 Identity Manager 引擎建立了信任關係,雙方均確信它們是在與授權實體通訊後,才會出現同步流量。
若要設定雙向驗證,請執行以下任務︰
為了讓雙向驗證正常運作,您需要有引擎的伺服器證書和遠端載入器的用戶端證書。您可以從 eDirectory 輸出證書,也可以輸入來自協力廠商的證書。在大多數情況下,您會從 eDirectory 輸出伺服器證書,這樣不需要花費額外的費用。在某些情況下,您可能想要輸出遠端載入器的協力廠商用戶端證書。
Identity Vault 中的證書物件稱為金鑰材料物件 (KMO)。此物件可安全地包含證書和資料,包括與用於 SSL 連接的證書關聯的公用金鑰和私密金鑰。要使用雙向驗證,您需要兩個 KMO,一個用於引擎,一個用於遠端載入器。
您可以輸出現有的 KMO,也可以建立新的 KMO,然後將其輸出。建立用戶端 KMO 與建立伺服器 KMO 的程序不同。
若要建立伺服器 KMO︰
登入 NetIQ iManager。
在左側窗格中按一下 NetIQ 證書伺服器,然後選取伺服器證書。
選取擁有您所建立證書的伺服器。
指定證書的綽號。例如,serverkmo。
在證書建立方法中選取標準,然後按下一步。
檢閱摘要,按一下完成,然後按一下關閉。
若要建立用戶端 KMO︰
登入 NetIQ iManager。
在左側窗格中按一下 NetIQ 證書伺服器,然後選取伺服器證書。
選取擁有您所建立證書的伺服器。
指定證書的綽號。例如,clientkmo
在證書建立方法中選取自訂,然後按下一步。
將預設的組織證書管理中心保留不變,然後按下一步。
取消選取啟用擴充金鑰使用,然後按下一步。
接受其餘的證書預設值。
檢閱摘要,按一下完成,然後按一下關閉。
從 eDirectory 輸出引擎和遠端載入器將用於相互驗證的 KMO。
若要為 Identity Manager 引擎輸出 KMO,請執行 DirXML 指令行 (dxcmd) 公用程式︰
dxcmd -user <admin DN> -password <password of admin> -exportcerts <kmoname> <server|client> <java|native|dotnet> <output dir>
其中
user 用於指定對驅動程式具有管理權限的使用者名稱。
password 用於指定對驅動程式具有管理權限的使用者的密碼。
exportcerts 用於從 eDirectory 輸出證書和私密金鑰/公用金鑰。您必須指定要輸出伺服器證書還是用戶端證書、將使用證書的驅動程式類型,以及指令將用於儲存此資訊的目的地資料夾。
例如,dxcmd -user admin.sa.system -password novell -exportcerts serverkmo server java '/home/certs'
此指令會在 /home/certs/ 目錄中產生 serverkmo_server.ks 檔案。金鑰儲存區的預設密碼為 dirxml。
執行用於為遠端載入器輸出 KMO 的 dxcmd 指令時,請注意以下事項︰
dxcmd 公用程式在 LDAP 模式下執行。第一次使用該公用程式時,它會提示您指定信任來自 eDirectory 的證書的選項。依據您的環境,您可以選擇僅針對目前的工作階段或針對目前和將來的工作階段信任該證書、信任所有證書,或者選取不信任證書。
如果遠端載入器要在 Identity Manager 伺服器上執行,請以 LDAP 或點格式執行該指令。如果遠端載入器安裝在單獨的伺服器上,請僅以 LDAP 格式執行指令。
在指令中指定 -host 參數可解析能夠向 Identity Manager 伺服器驗證的伺服器 IP 位址或主機名稱。
使用以下語法執行指令︰
dxcmd -dnform ldap -host <主機 IP 位址> -user <管理員 DN> -password <管理員密碼> -exportcerts <KMO 名稱> <client> <java|native|dotnet> <輸出目錄>
表 20-1 不同類型驅動程式的範例
|
驅動程式類型 |
指令 |
輸出 |
|---|---|---|
|
Java 驅動程式 |
dxcmd -dnform ldap -host 194.99.90.218 -user cn=admin,ou=sa,o=system -password novell -exportcerts clientkmo client java '/home/certs' |
/home/certs/ 目錄中的 clientkmo_client.ks 檔案 金鑰儲存區的預設密碼為 dirxml。 |
|
原生驅動程式 |
dxcmd -dnform ldap -host 194.99.90.218 -user cn=admin,ou=sa,o=system -password novell -exportcerts clientkmo client native 'C:\certs' |
C:\certs 目錄中的 clientkmo_clientcert.pem、clientkmo_clientkey.pem 和 trustedcert.b64 檔案 |
|
.NET 驅動程式 |
dxcmd -dnform ldap -host 194.99.90.218 -user cn=admin,ou=sa,o=system -password novell -exportcerts clientkmo client dotnet 'C:\certs' |
C:\certs 目錄中的 clientkmo_clientcert.pfx 和 trustedcert.b64 檔案 |
若要將協力廠商證書與遠端載入器配合使用,您需要將證書輸出為 .pfx 檔案以及 Base 64 格式的可信根檔案,然後將 .pfx 證書轉換為驅動程式使用的格式。例如,原生驅動程式需要 .pem 格式的私密金鑰和證書金鑰,而 Java 驅動程式需要 .jks 格式的金鑰儲存區。.NET 驅動程式使用 .pfx 格式的檔案。因此,您需要為 .NET 驅動程式轉換檔案。
完成以下步驟:
從 .pfx 檔案中取回 .pem 格式的私密金鑰。
輸入一條指令,例如 openssl pkcs12 -in servercert.pfx -nocerts -out serverkey.pem –nodes
從 .pfx 檔案中取回 .pem 格式的證書金鑰。
輸入一條指令,例如 openssl pkcs12 -in servercert.pfx -nokeys -out servercert.pem
透過 .pfx 檔案建立 Java 金鑰儲存區。輸入一條指令,例如 keytool -importkeystore -srckeystore servercert.pfx -srcstoretype pkcs12 -destkeystore servercert.jks -deststoretype JKS。
最後一個步驟是依據驅動程式類型,在遠端載入器組態檔案中指定資訊。如需詳細資訊,請參閱啟用驅動程式以進行雙向驗證。
若要啟用驅動程式通訊以進行雙向驗證,請執行以下任務︰
您可以在 Designer 或 iManager 中使用 KMO 或金鑰儲存區來設定驅動程式。
在 Designer 中,您可以在初始驅動程式建立過程中設定驅動程式,也可以在建立驅動程式後再設定。
若要在 Designer 中設定驅動程式︰
在 Designer 中開啟您的專案。
在「模型產生器」檢視窗的選擇區中,選取您要建立的驅動程式。
將驅動程式的圖示拖曳至「模型產生器」檢視窗中。
依照安裝精靈中的步驟操作。
在「Remote Loader」視窗中,選取是。
主機名稱: 指定用於執行驅動程式遠端載入器服務的伺服器主機名稱或 IP 位址。例如,輸入 hostname=192.168.0.1。如果未為此參數指定值,則該值預設為 localhost。
埠︰ 指定用於為此驅動程式安裝和執行遠端載入器的連接埠號碼。預設連接埠號碼為 8090.
KMO︰ 指定包含遠端載入器用於 SSL 連接的金鑰和證書的 KMO 金鑰名稱。例如,輸入 kmo=serverkmo。如果您要設定使用 KMO 進行的雙向驗證,則必須為此參數指定值。您還需要在「其他參數」區段指定根檔案參數的值。
其他參數︰ 指定您要使用的遠端載入器的設定。可以在此參數中包括有關雙向驗證通訊的資訊。指定的所有參數都必須使用金鑰值組格式,如下所示︰paraName1=paraValue1 paraName2=paraValue2
例如,對於金鑰儲存區,請使用以下語法︰
UseMutualAuth=true keystore='/home/certs/serverkmo_server.ks' storepass='dirxml' keypass='dirxml' key='serverkmo'
例如,對於 KMO,請使用以下語法︰
useMutualAuth=true rootFile='/home/cacert.b64'
設定密碼︰ 可讓您設定或變更應用程式密碼。
刪除密碼︰ 刪除應用程式的密碼。
按下一步。
依照精靈中的其餘指示操作,直到完成驅動程式的安裝。
檢閱為了建立驅動程式將要完成的任務摘要,然後按一下完成。
或者,您可以在建立驅動程式之後,透過執行以下步驟來設定驅動程式︰
在 Designer 的「大綱」檢視窗中,以滑鼠右鍵按一下驅動程式。
選取「內容」。
在導覽窗格中,選取驅動程式組態。
選取驗證。
在 遠端載入器驗證區段下方,指定設定遠端載入器與 Identity Manager 引擎間的雙向驗證所需的資訊。
對於 KOM,請使用以下語法︰
hostname=xxx.xxx.xxx.xxx port=xxxx useMutualAuth=true kmo=certificatename rootFile=<absolute path to the file>
例如:
hostname=192.168.0.1 port=8090 useMutualAuth=true kmo=serverkmo rootFile='/home/cacert.b64'
對於金鑰儲存區,請使用以下語法︰
hostname=xxx.xxx.xxx.xxx port=xxxx useMutualAuth=true keystore=<absolute path to the keystore file> storepass=<keystore password> key=<alias name> keypass= <password for the key>
例如:
hostname=192.99.90.17 port=8097 useMutualAuth=true keystore='/home/certs/serverkmo_server.ks' storepass='dirxml' key='serverkmo' keypass='dirxml'
若要在 iManager 中修改組態︰
啟動 iManager。
在綜覽中,選取 Identity Manager 驅動程式物件。
在驅動程式物件的內容中,完成以下步驟:
對於驅動程式模組,請選取連接至 Remote Loader。
對於驅動程式物件密碼,請指定遠端載入器用於向引擎驗證的密碼。
此密碼必須與 Remote Loader 中定義的驅動程式物件密碼相符。
對於 Remote Loader 連接參數,請指定連接到 Remote Loader 所需的資訊。
對於 KOM,請使用以下語法︰
hostname=xxx.xxx.xxx.xxx port=xxxx useMutualAuth=true kmo=certificatename rootFile=<absolute path to the file>
例如:
hostname=192.168.0.1 port=8090 useMutualAuth=true kmo=serverkmo rootFile='/home/cacert.b64'
對於金鑰儲存區,請使用以下語法︰
hostname=xxx.xxx.xxx.xxx port=xxxx useMutualAuth=true keystore=<absolute path to the keystore file> storepass=<keystore password> key=<alias name> keypass= <password for the key>
例如:
hostname=192.99.90.17 port=8097 useMutualAuth=true keystore='/home/certs/serverkmo_server.ks' storepass='dirxml' key='serverkmo' keypass='dirxml'
(選擇性) 對於遠端載入器密碼,請指定 Identity Manager 引擎 (或遠端載入器 Shim) 向遠端載入器進行驗證所需的密碼。
按一下「套用」,然後按一下「確定」。
您必須在遠端載入器組態檔案中設定驅動程式例項。務必在驅動程式的遠端載入器組態檔案中指定儲存金鑰檔案、證書檔案和根檔案的目錄的絕對路徑。
修改驅動程式的遠端載入器組態檔案,以包括用於啟用雙向驗證的內容。該檔案位於 /opt/novell/dirxml/doc 目錄中。
若要修改組態︰
登入安裝了驅動程式和遠端載入器的伺服器。
停止 Remote Loader。
例如,輸入以下指令:
rdxml -config /home/drivershim.conf -u在文字編輯器中開啟驅動程式的遠端載入器組態檔案。
將啟用雙向驗證所需的內容新增至該檔案。
例如,對於 Java 驅動程式,請新增以下項目︰
-connection "port=8090 useMutualAuth=true keystore='/home/certs/clientkmo_client.ks' storepass='dirxml' key='clientkmo' keypass='dirxml'"
例如,對於原生驅動程式,請新增以下項目︰
-connection "useMutualAuth=true port=8090 rootfile='/home/certs/trustedcert.b64' certfile='/home/certs/clientkmo_clientcert.pem' keyfile='/home/certs/clientkmo_clientkey.pem' keypass='dirxml' certform=PEM keyform=PEM"
儲存然後關閉該檔案。
重新啟動驅動程式。
在遠端載入器主控台上,從描述欄中選取驅動程式例項。
按一下「停止」。
輸入 Remote Loader 的密碼,然後按一下確定。
按一下「編輯」。
若要修改用於啟用雙向驗證的組態資訊,請完成以下步驟︰
選取雙向驗證。
對於原生驅動程式,指定用於驗證的證書所在金鑰檔案的路徑。該金鑰檔案必須為 Base 64 格式.
指定用於驗證的金鑰所在檔案的路徑。該金鑰檔案必須為 Base 64 格式. 例如,從 eDirectory 輸出證書 中透過 dxcmd 在 C:\certs\ 目錄下建立的 clientkmo_clientkey.pem 檔案。
指定用於驗證的私密金鑰的密碼。
指定儲存證書的檔案。證書檔案必須為 Base 64 格式. 例如,從 eDirectory 輸出證書 中透過 dxcmd 在 C:\certs\ 目錄下建立的 clientkmo_clientcert.pem 檔案。
指定包含遠端介面 Shim 所用證書核發者可信根證書的檔案名稱。該可信根檔案必須為 Base 64 格式. 例如,從 eDirectory 輸出證書 中透過 dxcmd 在 C:\certs\ 目錄下建立的 trustedcert.b64 檔案。
對於 Java 驅動程式,指定包含證書的金鑰儲存區檔案的路徑。該金鑰儲存區檔案必須至少包含一個公用金鑰/私密金鑰組。
指定要用於驗證的 Java 金鑰儲存區檔案的路徑。金鑰儲存區檔案包含加密金鑰和證書。該金鑰儲存區檔案必須至少包含一個公用金鑰/私密金鑰組。例如,從 eDirectory 輸出證書 中透過 dxcmd 在 C:\certs\ 目錄下建立的 clientkmo_client.ks。
指定金鑰儲存區檔案中將用於產生對稱式金鑰的公用/私密金鑰組名稱。例如,clientkmo。
指定用於載入 金鑰儲存區檔案的密碼。
指定金鑰儲存區中儲存的私密金鑰的密碼。Identity Manager 使用此金鑰來加密 SSL 通訊。
對於 .NET 驅動程式,指定用於驗證的證書所在金鑰檔案的路徑。
指定用於驗證的金鑰所在檔案的路徑。例如,從 eDirectory 輸出證書 中透過 dxcmd 在 C:\certs\ 目錄下建立的 clientkmo_clientcert.pfx。
指定用於驗證的私密金鑰的密碼。
指定包含遠端介面 Shim 所用證書核發者可信根證書的檔案名稱。該可信根檔案必須為 Base 64 格式. 例如,從 eDirectory 輸出證書 中透過 dxcmd 在 C:\certs\ 目錄下建立的 trustedcert.b64 檔案。
按一下「確定」。
按一下「確定」。