Sun Java logo     上一頁      目錄      索引      下一頁     

Sun logo
Sun Java™ System Identity Manager 7.0 管理指南 

第 9 章
PasswordSync

本章說明了 Sun Java™ System Identity Manager PasswordSync 功能,該功能使 Windows 用戶端可以變更其在 Windows Active Directory 和 Windows NT 網域中的密碼,從而使變更與 Identity Manager 同步。

資訊組織如下:


什麼是 PasswordSync?

PasswordSync 功能可以使在 Windows Active Directory 和 Windows NT 網域上所做的使用者密碼變更與 Identity Manager 中定義的其他資源保持同步。必須在將與 Identity Manager 同步之網域中的每個網域控制器上安裝 PasswordSync。必須將 PasswordSync 與 Identity Manager 分開安裝。

在網域控制器上安裝 PasswordSync 後,該控制器將與做為 Java Messaging Service (JMS) 用戶端代理伺服器的 Servlet 進行通訊。而該 Servlet 與啟用 JMS 的訊息佇列進行通訊。JMS 偵聽程式資源配接器將從佇列中移除訊息,並使用工作流程作業處理密碼變更。密碼將在使用者的所有指定資源中更新,並且 SMTP 伺服器將向使用者傳送電子郵件,以通知使用者密碼變更的狀態。


備註  

密碼變更必須將要轉寄的變更請求的本機密碼策略傳送至 Identity Manager 伺服器以實現同步化。如果提議的密碼變更不遵循本機密碼策略,則 ADSI 將顯示錯誤對話方塊,並且不向 Identity Manager 傳送任何同步化資料。



安裝前注意事項

只能在 Windows 2000、Windows 2003 和 Windows NT 網域控制器上安裝 PasswordSync 功能。您必須在將與 Identity Manager 同步的網域中的每個網域控制器上安裝 PasswordSync。

PasswordSync 需要具有與 JMS 伺服器的連結性。如需有關 JMS 系統需求的更多資訊,請參閱「Sun Java™ System Identity Manager Resources Reference」中的「JMS 偵聽程式資源配接卡」一節。

此外,PasswordSync 還需要

以下各節將更詳細地討論這些需求。

安裝 Microsoft .NET 1.1

若要使用 PasswordSync,您必須安裝 Microsoft .NET 1.1 或更高版本的 Framework。如果您使用 Windows 2003 網域控制器,則依預設安裝此 Framework。如果您使用 Windows 2000 或 Windows NT 網域控制器,則可以從 Microsoft 下載中心下載此工具組:

http://www.microsoft.com/downloads


備註  

  • Microsoft .NET 1.1 Framework 需要 Internet Explorer 5.01 或更高版本。Internet Explorer 5.0 (隨附於 Windows 2000 SP4) 無法滿足需要。
  • 在 [Keywords] 搜尋欄位中輸入 NET Framework 1.1 Redistributable,以快速尋找架構工具組。
  • 該工具組將安裝 .NET 1.1 Framework。

解除安裝舊版的 PasswordSync

安裝更高版本之前,您必須先移除先前安裝的所有 PasswordSync 實例。


安裝 PasswordSync

以下程序說明了如何安裝 PasswordSync 配置應用程式。


備註  

您必須在將與 Identity Manager 同步的網域中的每個網域控制器上安裝 PasswordSync。


  1. 在 Identity Manager 安裝媒體中,按一下 pwsync\IdmPwSync.msi 圖示。將顯示歡迎視窗。
  2. 安裝精靈提供了以下瀏覽按鈕:

    • [Cancel]:按一下可隨時結束精靈,而不儲存任何變更。
    • [Back]:按一下可返回前一個對話方塊。
    • [Next]:按一下可進入下一個對話方塊。
  3. 請閱讀歡迎螢幕上提供的資訊,然後按 [Next] 以顯示 [Choose Setup Type PasswordSync Configuration] 視窗。
    PasswordSync 安裝
  4. 按一下 [Typical] 或 [Complete] 以安裝完整的 PasswordSync 套裝軟體,或按一下 [Custom] 以控制要安裝套裝軟體的哪些部分。
  5. 按一下 [Install] 以安裝產品。
  6. 成功安裝 PasswordSync 後,螢幕上將顯示訊息告知您安裝成功。

  7. 按一下 [Finish] 以完成安裝程序。
  8. 請確定選取 [Launch Configuration Application],以便可以開始配置 Password Sync。請參閱「配置 PasswordSync」,以取得有關該程序的詳細資訊。


    備註  

    螢幕上將顯示對話方塊,表明您必須重新啟動系統才能使變更生效。完成配置 PasswordSync 之前不必重新啟動系統,但必須在實作 PasswordSync 之前重新啟動網域控制器。


表 9-1 說明了安裝在每個網域控制器上的檔案。

表 9-1  網域控制器檔案  

安裝的元件

說明

%$INSTALL_DIR$%\configure.exe

PasswordSync 配置程式

%$INSTALL_DIR$%\configure.exe.manifest

配置程式的資料檔

%$INSTALL_DIR$%\DotNetWrapper.dll

處理 .NET SOAP 通訊的 DLL

%$INSTALL_DIR$%\passwordsyncmsgs.dll

處理 PasswordSync 訊息的 DLL

%SYSTEMROOT%\SYSTEM32\lhpwic.dll

實作 Windows PasswordChangeNotify () 函數的密碼通知 DLL


配置 PasswordSync

如果您從安裝程式執行配置應用程式,則該應用程式會將配置螢幕顯示為精靈。完成精靈後,以後每次執行 PasswordSync 配置應用程式時,都可以透過選取標籤在螢幕之間瀏覽。

執行以下步驟來配置 PasswordSync

  1. 如果尚未執行 PasswordSync 配置應用程式,請將其啟動。
  2. 依預設,此配置應用程式安裝在 [Program Files] >
    Sun Java System Identity Manager PasswordSync > [Configuration] 中。

    螢幕上將顯示 [PasswordSync Configuration] 對話方塊 (請參閱圖 9-1)。

    圖 9-1  [PasswordSync Configuration] 對話方塊
    伺服器配置對話方塊

    依需要編輯以下欄位。

    • [Server] 必須用安裝 Identity Manager 的完全合格的主機名稱或 IP 位址替代。
    • [Protocol] 指示是否與 Identity Manager 進行安全連線。如果選取 HTTP,則預設連接埠為 80。如果選取 HTTPS,則預設連接埠為 443。
    • [Path] 指定應用程式伺服器上 Identity Manager 的路徑。
    • [URL] 透過將其他欄位鏈結在一起產生。不能在 URL 欄位中編輯值。
  3. 按 [Next] 以顯示代理伺服器配置頁面 (圖 9-2)。
  4. 圖 9-2  代理伺服器對話方塊
    代理伺服器對話方塊

    依需要編輯以下欄位。

    • 如果需要代理伺服器,則按一下 [Enable]。
    • [Server] 必須以代理伺服器的完全合格主機名稱或 IP 位址替代。
    • Port:指定可用的伺服器連接埠號碼。
      (預設代理伺服器連接埠為 8080,預設 HTTPS 連接埠為 443。)
  5. 按 [Next] 以顯示 JMS 設定對話方塊 (圖 9-3)。
  6. 圖 9-3  JMS 設定對話方塊
    JMS 設定對話方塊

    依需要編輯以下欄位。

    • [User] 指定在佇列中置入新訊息的 JMS 使用者名稱。
    • [Password][Confirm] 指定 JMS 使用者的密碼。
    • [Connection Factory] 指定要使用之 JMS 連線工廠的名稱。該工廠必須已存在於 JMS 系統中。
    • 在大多數情況下,應將 [Session Type] 設定為 [LOCAL],這表示將使用本機階段作業作業事件。系統收到每條訊息後,將提交階段作業。其他可能的值包括 [AUTO][CLIENT][DUPS_OK]
    • [Queue Name] 指定密碼同步化事件的目標查詢名稱。
  7. 按 [Next] 以顯示 JMS 特性對話方塊 (圖 9-4)。
  8. 圖 9-4  JMS 特性對話方塊
    JMS 特性對話方塊

    JMS 特性對話方塊可讓您定義用於建置初始 JNDI 環境的特性集。必須定義以下名稱/值對:

    • java.naming.provider.url — 必須將該值設定為執行 JNDI 服務之機器的 URL。
    • java.naming.factory.initial — 必須將該值設定為 JNDI 服務提供者的初始環境工廠的類別名稱 (包括套裝軟體)。
    • [Name] 下拉式功能表包含 java.naming 套裝軟體中的類別清單。選取類別或鍵入類型名稱,然後在 [Value] 欄位中輸入其對應的值。

  9. 按 [Next] 以顯示電子郵件對話方塊 (圖 9-5)。
  10. 圖 9-5  電子郵件對話方塊
    電子郵件對話方塊

    透過 [Email] 對話方塊,您可以配置當使用者的密碼變更未成功同步化 (由於通訊錯誤或 Identity Manager 之外的其他錯誤) 時,是否傳送電子郵件通知。

    依需要編輯以下欄位。

    • 選取 [Enable Email] 以啟用該功能。如果使用者要接收通知,請選取 [Email End User]。否則,將僅通知管理員。
    • [SMTP Server] 是傳送故障通知時要使用之 SMTP 伺服器的完全合格名稱或 IP 位址。
    • [Administrator Email Address] 是用於傳送通知的電子郵件位址。
    • [Sender's Name] 是寄件者的「易記名稱」。
    • [Sender's Address] 是寄件者的電子郵件地址。
    • [Message Subject] 指定所有通知的主旨行。
    • [Message Body] 指定通知的文字。

      郵件內文可能包含以下變數。

      • $(accountId) — 嘗試變更密碼的使用者的帳號 ID。
      • $(sourceEndpoint) — 安裝密碼提示程式的網域控制器的主機名稱,有助於找到出現故障的電腦。
      • $(errorMessage) — 說明所發生之錯誤的錯誤訊息。
  11. 按一下 [Finish] 以儲存變更。

如果再次執行配置應用程式,則螢幕上將顯示一組標籤,而非精靈。如果您希望將應用程式顯示為精靈,請從指令行輸入以下指令:

C:\InstallDir\Configure.exe -wizard


對 PasswordSync 執行除錯

本節提供了有關尋找診斷 PasswordSync 問題時需要的資訊以及使用配置工具啟用追蹤的詳細資訊。還列出了對 PasswordSync 執行除錯或啟用配置工具無法實作的功能時可能需要的登錄機碼。

錯誤記錄

PasswordSync 會將所有故障寫入 Windows 事件檢視器。錯誤記錄項目的來源名稱是 PasswordSync

追蹤記錄

首次執行配置工具時,精靈並不包含用於配置追蹤的面板。然而,以後每次啟動該工具時都會顯示 [Trace] 標籤 (圖 9-6)。

圖 9-6  [Trace] 標籤

追蹤對話方塊

[Trace Level] 欄位指定寫入追蹤記錄時 PasswordSync 將提供的詳細資訊層級。值 0 表示已關閉追蹤,而值 4 表示提供最多詳細資訊。

當追蹤檔案超過 [Max File Size (MB)] 欄位中指定的大小時,PasswordSync 會將檔案移至附加了 .bk 的基準名稱中。例如,如果將追蹤檔案設定為 C:\logs\pwicsvc.log,並將追蹤層級設定為 100 MB,則當追蹤檔案超過 100 MB 時,PasswordSync 會將該檔案重新命名為 C:\logs\pwicsvc.log.bk,並將新資料寫入新的
C:\logs\pwicsvc.log file 中。

登錄機碼

您可以使用 Windows 登錄編輯器編輯表 9-2 中列出的登錄機碼。這些機碼位於:

HKEY_LOCAL_MACHINE\SOFTWARE\Waveset\Lighthouse\PasswordSync

此位置也會顯示其他機碼,但這些機碼可以使用配置工具進行編輯。

表 9-2  登錄機碼

機碼名稱

類型

說明

allowInvalidCerts

REG_DWORD

如果設定為 1,則該機碼將在 .NET 用戶端上設定以下旗標:

  • SECURITY_FLAG_IGNORE_UNKNOWN_CA
  • INTERNET_FLAG_IGNORE_CERT_CN_INVALID
  • INTERNET_FLAG_IGNORE_CERT_DATE_INVALID

結果,用戶端將容許過期或具有無效 CN 或主機名稱的憑證。這僅適用於使用 SSL 的情況。

在測試環境 (大多數憑證從無效的憑證授權單位 (CA) 產生) 中進行除錯時,該設定非常有用。

預設為 0。

clientConnectionFlags

REG_DWORD

將傳送至 .NET SOAP 用戶端的可選連線標幟。

預設為 0。

clientSecurityFlags

REG_DWORD

可傳送至 .NET SOAP 用戶端的可選安全標幟。

預設為 0。

installdir

REG_SZ

安裝 PasswordSync 應用程式的目錄。

soapClientTimeout

REG_DWORD

出現故障之前 SOAP 用戶端與 Identity Manager 伺服器的通訊逾時 (以毫秒為單位)。


解除安裝 PasswordSync

若要解除安裝 PasswordSync 應用程式,請至 Windows [控制台] 並選取 [新增/移除程式]。然後選取 [Sun Java System Identity Manager PasswordSync] 並按一下 [移除]。


備註  

也可以透過載入 Identity Manager 安裝媒體並按一下 pwsync\IdmPwSync.msi 圖示來解除安裝 (或重新安裝) PasswordSync。


必須重新啟動系統才能完成該程序。


部署 PasswordSync

若要部署 PasswordSync,您必須在 Identity Manager 中執行以下動作:

配置 JMS 偵聽程式配接器

網域控制器間接將訊息置入佇列中後,必須將資源配接器配置為接受這些訊息。您必須建立 JMS 偵聽程式資源配接器並對其進行配置以與佇列通訊。請參閱「Sun Java™ System Identity Manager Resources Reference」以取得有關設定該配接卡的更多資訊。

您必須配置以下資源參數:

實作同步化使用者密碼工作流程

預設的同步化使用者密碼工作流程接受來自 JMS 偵聽程式配接卡的每個請求,出庫使用 ChangeUserPassword 檢視器,然後再將 ChangeUserPassword 檢視器入庫納管。完成簽入後,工作流程將反覆運算所有資源帳號並選取除來源資源以外的所有資源。Identity Manager 將使用電子郵件通知使用者所有資源上的密碼變更是否成功。

如果您要預設實作同步化使用者密碼工作流程,請將其指定為 JMS 偵聽程式配接器實例的程序規則。可以在配接器的 Active Sync 精靈中指定程序規則。

如果您要修改預設的同步化使用者密碼工作流程,請複製 $WSHOME/sample/wfpwsync.xml 檔案並進行修改。然後將修改的工作流程匯入 Identity Manager。

您可能要對預設工作流程執行的一些修改包括:

如需有關使用工作流程的詳細資訊,請參閱「Sun Java™ System Identity Manager Workflows, Forms, and Views」。

設定通知

Identity Manager 提供了 [Password Synchronization Notice] 和 [Password Synchronization Failure Notice] 電子郵件範本。這些範本可通知使用者在多個資源之間變更密碼的嘗試是否成功。

兩個範本均應更新,以便在使用者需要進一步幫助時,為其提供有關下一步操作的公司特定資訊。請參閱自訂電子郵件範本


使用 Sun JMS 伺服器配置 PasswordSync

Identity Manager 提供了 JMS 偵聽程式配接卡,可以使密碼變更事件在 JMS 訊息伺服器上形成佇列,以提高穩定性並保證傳送品質。


備註  

請參閱「Sun Java™ System Identity Manager Resources Reference」以取得有關此配接卡的更多資訊。


本小節透過方案範例提供了使用 Sun JMS 伺服器配置 PasswordSync 的說明。資訊組織如下:

簡介

本小節說明了方案範例、Windows PasswordSync 解決方案以及 JMS 解決方案。

方案範例

使用 JMS 伺服器配置 PasswordSync 的典型 (簡單) 用途是,可讓使用者變更其在 Windows 上的密碼,使 Identity Manager 取得新密碼,然後在 Sun Directory Server 上使用新密碼更新使用者帳號。

為此方案配置了以下環境:

已將以下文件複製到 Tomcat common/lib 目錄來啟用 JMS 和 JNDI:

解決方案簡介

分析在 Windows PasswordSync 解決方案中起作用的所有元件時,將發生以下情況:

  1. 使用者變更其工作站上的密碼時,PasswordSync 會向目前的 Active Directory 網域控制器傳送密碼修改,而 Identity Manager 密碼擷取 dll (位於網域控制器上) 會擷取明文密碼。
  2. 密碼擷取 dll 向 Identity Manager SOAP 請求處理程式發出 SOAP 請求。
  3. 此 SOAP 請求中封裝有使用者 ID、已加密的密碼以及必要的 JMS 配置資訊。例如,

    代碼範例 9-1  SOAP 請求範例  

    POST /idm/servlet/rpcrouter2 HTTP/1.0

    Accept:text/*

    SOAPAction:"urn:lighthouse"

    Content-Type:text/xml; charset=utf-8

    User-Agent:VCSoapClient

    Host: 192.168.1.4:8080

    Content-Length: 1154

    Connection:Keep-Alive

    Pragma:no-cache

    <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:xsd="http://www.w3.org/2001/XMLSchema"    xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">

    <soap:Body soap:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">

    <snp:queuePasswordUpdate xmlns:snp="urn:lighthouse">

    <userEmailAddress xsi:nil="1"/>

    <resourceAccountId>CN=John Smith,OU=people,DC=org,DC=local</resourceAccountId>
    <resourceAccountGUID>b4e1c14b79d3a949a618a607dde7784d</resourceAccountGUID>

    <password>zkpS8qcIJkVBWa/Frp+JqA==</password>

    <accounts xsi:nil="1"/>

    <resourcename xsi:nil="1"/>

    <resourcetype>Windows Active Directory</resourcetype>

    <clientEndpoint>W2003EE</clientEndpoint>

    <jmsUser>guest</jmsUser>

    <jmsPassword>guest</jmsPassword>

    <queueName>cn=pwsyncDestination</queueName>

    <connectionFactory>cn=pwsyncFactory</connectionFactory>

    <sessionType>LOCAL</sessionType>

    <JNDIProperties>java.naming.factory.initial=com.sun.jndi.ldap.LdapCtxFactory;java.naming.
       provider.url=ldap://gwenig.coopsrccom:389/ou=sunmq,dc=coopsrc,dc=com</JNDIProperties>

    <singleResult>true</singleResult>

    </snp:queuePasswordUpdate>

    </soap:Body>

    </soap:Envelope>

     

  4. SOAP 處理程式接收請求並使用請求中包含的 JMS 參數啟動與 JMS Message Queue 代理程式的連線。然後 SOAP 處理程式傳送包含使用者 ID 和已加密密碼的訊息 (與稍後要討論的一些其他參數一起)。
  5. 例如,Message Queue 代理程式上的 SOAP 處理程式會傳送類似以下內容的訊息 (屬於 MapMessage 類型):

    代碼範例 9-2  SOAP 處理程式訊息  

     

    password:zkpS8qcIJkVBWa/Frp+JqA==

    accounts:null

    resourceAccountGUID:8f245d1490de7a4192a8821c569c9ac4

    requestTimestamp: 1143639284325

    queueName:cn=pwsyncDestination

    jmsUser:guest

    resourcetype:Windows Active Directory

    resourcename:null

    JNDIProperties:

    java.naming.factory.initial=com.sun.jndi.ldap.LdapCtxFactory;

    java.naming.provider.url=ldap://gwenig.coopsrc.com:389/

    ou=sunmq,dc=coopsrc,dc=com

    connectionFactory:cn=pwsyncFactory

    clientEndpoint:W2003EE

    userEmailAddress:null

    sessionType:LOCAL

    jmsPassword:guest

    resourceAccountId:CN=John Smith,OU=people,DC=org,DC=local

     

  6. Message Queue 代理程式使訊息形成佇列,JMS 偵聽程式配接卡擷取訊息。現在 Identity Manager 可以啟動工作流程。
  7. 圖 9-7 說明了此方案範例中使用的配置:


    備註  

    雖然此圖顯示的是不同伺服器上的 SOAP 處理程式和 Identity Manager,但是您可以在同一伺服器上同時執行它們。


    圖 9-7  方案配置
    方案配置範例

JMS 簡介

Java Message Service (JMS) API 是一個訊息傳送標準,可讓應用程式元件 (基於 Java 2 Platform, Enterprise Edition (J2EE)) 建立、傳送、接收以及讀取訊息。此 API 可啟用鬆耦合、穩定且非同步的分散式通訊。

若要傳送或接收訊息,必須首先將 JMS 用戶端連線至 JMS 提供者 (通常將該 JMS 提供者做為訊息代理程式實作)。此連線可開啟用戶端和代理程式間的通訊通道。然後,用戶端必須設定一個用於建立、產生以及消耗訊息的階段作業。

JMS 無法完全定義以下訊息傳送元素:

這兩個物件通常是使用管理工具建立和配置,而不是有計劃地建立。然後,它們將儲存在物件存放區,JMS 用戶端透過標準 JNDI 查詢對其進行存取。


備註  

如需有關連線工廠和目標的更多資訊,請參閱「Sun Java™ System Message Queue Technical Overview」,位於:

http://docs.sun.com/source/819-2574/intro.html


圖 9-8 說明了方案範例的通訊流程:

圖 9-8  方案通訊流程

方案範例通訊流程

當 SOAP 處理程式接收到來自 Windows 密碼擷取 dll 的請求時,SOAP 處理程式會做為代理伺服器將 SOAP 請求翻譯為 JMS 訊息。然後 JMS 偵聽程式配接卡會接收訊息並觸發相關工作流程。

若要使用 JMS 代理程式,Identity Manager SOAP 處理程式和 Identity Manager JMS 偵聽程式配接卡必須都具有連線工廠和目標 (使用 JNDI 查詢)。

Identity Manager SOAP 處理程式會取得 SOAP 訊息中的必要詳細資訊 (如之前所示):

代碼範例 9-3  SOAP 訊息

 

<jmsUser>guest</jmsUser>

<jmsPassword>guest</jmsPassword>

<queueName>cn=pwsyncDestination</queueName>

<connectionFactory>cn=pwsyncFactory</connectionFactory>

<sessionType>LOCAL</sessionType>

<JNDIProperties>java.naming.factory.initial=com.sun.jndi.ldap.LdapCtxFactory;java.naming.
  provider.url=ldap://gwenig.coopsrc.com:389/ou=sunmq,dc=coopsrc,dc=com</JNDIProperties>

 

在 Windows 上安裝並配置 PasswordSync 時,將提供以下所有參數 (圖 9-9圖 9-10 中所示):

圖 9-9 [JMS Settings] 標籤

[JMS Settings] 標籤上的參數

圖 9-10 [JMS Properties] 標籤

[JMS Properties] 標籤上的參數

以下各節說明了這些參數:

JMS 設定參數

[JMS Settings] 標籤包含以下參數:

代碼範例 9-4 中,[Connection Factory] 和 [Queue Name] 都是 LDAP RDN,其 (當與 java.naming.provider.url 耦合時) 可形成完整 DN。一個簡單的 ldapsearch 即可顯示管理的物件項目:

代碼範例 9-4  連線工廠和佇列名稱範例  

連線工廠:

#> ldapsearch -h gwenig.coopsrc.com -b 'dc=coopsrc,dc=com' 'cn=pwsyncfactory'

dn:cn=pwsyncFactory,ou=sunmq,dc=coopsrc,dc=com

objectClass:top

objectClass:javaContainer

objectClass:javaObject

objectClass:javaNamingReference

javaClassName:com.sun.messaging.QueueConnectionFactory

javaFactory:com.sun.messaging.naming.AdministeredObjectFactory

javaReferenceAddress:#0#version#3.0

javaReferenceAddress:#1#readOnly#false

javaReferenceAddress:#2#imqOverrideJMSPriority#false

javaReferenceAddress:#3#imqConsumerFlowLimit#1000

javaReferenceAddress:#4#imqAddressListIterations#1

javaReferenceAddress:#5#imqOverrideJMSExpiration#false

javaReferenceAddress:#6#imqConnectionType#TCP

javaReferenceAddress:#7#imqLoadMaxToServerSession#true

javaReferenceAddress:#8#imqPingInterval#30

javaReferenceAddress:#9#imqSetJMSXUserID#false

javaReferenceAddress:#10#imqConfiguredClientID#

javaReferenceAddress:#11#imqSSLProviderClassname#com.sun.net.ssl.internal.ssl.Provider

javaReferenceAddress:#12#imqJMSDeliveryMode#PERSISTENT

javaReferenceAddress:#13#imqConnectionFlowLimit#1000

javaReferenceAddress:#14#imqConnectionURL#http://localhost/imq/tunnel

javaReferenceAddress:#15#imqBrokerServiceName#

javaReferenceAddress:#16#imqJMSPriority#4

javaReferenceAddress:#17#imqBrokerHostName#localhost

javaReferenceAddress:#18#imqJMSExpiration#0

javaReferenceAddress:#19#imqAckOnProduce#

javaReferenceAddress:#20#imqEnableSharedClientID#false

javaReferenceAddress:#21#imqAckTimeout#0

javaReferenceAddress:#22#imqAckOnAcknowledge#

javaReferenceAddress:#23#imqConsumerFlowThreshold#50

javaReferenceAddress:#24#imqDefaultPassword#guest

javaReferenceAddress:#25#imqQueueBrowserMaxMessagesPerRetrieve#1000

javaReferenceAddress:#26#imqDefaultUsername#guest

javaReferenceAddress:#27#imqReconnectEnabled#false

javaReferenceAddress:#28#imqConnectionFlowCount#100

javaReferenceAddress:#29#imqAddressListBehavior#PRIORITY

javaReferenceAddress:#30#imqReconnectAttempts#0

javaReferenceAddress:#31#imqSetJMSXAppID#false javaReferenceAddress:

#32#imqConnectionHandler#com.sun.messaging.jmq.jmsclient.protocol.

tcp.TCPStreamHandler

javaReferenceAddress:#33#imqSetJMSXRcvTimestamp#false

javaReferenceAddress:#34#imqBrokerServicePort#0

javaReferenceAddress:#35#imqDisableSetClientID#false

javaReferenceAddress:#36#imqSetJMSXConsumerTXID#false

javaReferenceAddress:#37#imqOverrideJMSDeliveryMode#false

javaReferenceAddress:#38#imqBrokerHostPort#7676

javaReferenceAddress:#39#imqQueueBrowserRetrieveTimeout#60000

javaReferenceAddress:#40#imqSSLIsHostTrusted#true

javaReferenceAddress:#41#imqSetJMSXProducerTXID#false

javaReferenceAddress:#42#imqConnectionFlowLimitEnabled#false

javaReferenceAddress:#43#imqReconnectInterval#3000

javaReferenceAddress:#44#imqAddressList#mq://gwenig:7676/jms

javaReferenceAddress:#45#imqOverrideJMSHeadersToTemporaryDestinations#false

cn:pwsyncFactory

 

目標如下:

代碼範例 9-5  目標範例

 

#> ldapsearch -h gwenig.coopsrc.com -b 'dc=coopsrc,dc=com' 'cn=pwsyncdestination'

dn:cn=pwsyncDestination,ou=sunmq,dc=coopsrc,dc=com

objectClass:top

objectClass:javaContainer

objectClass:javaObject

objectClass:javaNamingReference

javaClassName:com.sun.messaging.Queue

javaFactory:com.sun.messaging.naming.AdministeredObjectFactory

javaReferenceAddress:#0#version#3.0

javaReferenceAddress:#1#readOnly#false

javaReferenceAddress:#2#imqDestinationName#pwsyncQueue

javaReferenceAddress:#3#imqDestinationDescription#A Description for the Destination Object

cn:pwsyncDestination

 

JMS 特性參數

在方案範例中,連線工廠和目標物件位於 LDAP 目錄中。java.naming.factory.initial 是用於建立初始 JNDI 環境的工廠類別值。java.naming.provider.url 可保留環境特性的名稱,該環境特性用於為使用中的服務提供者指定配置資訊。如果您不提供更多資訊,則 PasswordSync 將使用匿名 LDAP 階段作業擷取連線工廠和目標物件。

若要提供憑證和連結方法,請指定以下特性:

圖 9-12 詳細說明了程序:

圖 9-12  擷取連線工廠和目標物件

連線工廠和目標物件擷取程序

SOAP 處理程式和 JMS 偵聽程式配接卡都必須搜尋連線工廠和目標,以便傳送/接收訊息。

建立與儲存管理的物件

本小節提供了建立與儲存以下管理物件的說明,這些物件是使方案範例順利工作所必需的:

將管理的物件儲存在 LDAP 目錄中

本小節提供了將連線工廠物件儲存在 LDAP 目錄中所需的指令。

儲存連線工廠物件

使用代碼範例 9-6 中的指令儲存連線工廠物件:

代碼範例 9-6  儲存連線工廠物件  

#> ./imqobjmgr add -l "cn=mytestFactory"

-j "java.naming.factory.initial=com.sun.jndi.ldap.LdapCtxFactory"

-j "java.naming.provider.url=ldap://gwenig.coopsrc.com:389/ou=sunmq,dc=coopsrc,dc=com"

-j "java.naming.security.principal=cn=directory manager"

-j "java.naming.security.credentials=password"

-j "java.naming.security.authentication=simple"

-t qf

-o "imqAddressList=mq://gwenig.coopsrc.com:7676/jms"

Adding a Queue Connection Factory object with the following attributes:

imqAckOnAcknowledge [Message Service Acknowledgement of Client Acknowledgements]

...

imqSetJMSXUserID [Enable JMSXUserID Message Property] false

 

Using the following lookup name:

cn=mytestFactory

The object's read-only state:false

To the object store specified by:

java.naming.factory.initial com.sun.jndi.ldap.LdapCtxFactory

java.naming.provider.url ldap://gwenig.coopsrc.com:389/ou=sunmq,dc=coopsrc,dc=com

java.naming.security.authentication simple

java.naming.security.credentials netscape

java.naming.security.principal cn=directory manager

Object successfully added.

 

其中 imqAddressList 定義 JMS 伺服器/代理程式主機名稱 (gwenig.coopsrc.com)、連接埠 (7676) 以及存取方法 (jms)。

儲存目標物件

使用代碼範例 9-7 中的指令儲存目標物件:

代碼範例 9-7  儲存目標物件

 

#> ./imqobjmgr add -l "cn=mytestDestination"

-j "java.naming.factory.initial=com.sun.jndi.ldap.LdapCtxFactory"

-j "java.naming.provider.url=ldap://gwenig.coopsrc.com:389/ou=sunmq,dc=coopsrc,dc=com"

-j "java.naming.security.principal=cn=directory manager"

-j "java.naming.security.credentials=password"

-j "java.naming.security.authentication=simple"

-t q

-o "imqDestinationName=mytestDestination"

Adding a Queue object with the following attributes:

imqDestinationDescription [Destination Description] A Description for the Destination Object imqDestinationName [Destination Name] mytestDestination

Using the following lookup name:

cn=mytestDestination

The object's read-only state:false

To the object store specified by:

java.naming.factory.initial com.sun.jndi.ldap.LdapCtxFactory

java.naming.provider.url ldap://gwenig.coopsrc.com:389/

    ou=sunmq,dc=coopsrc,dc=com

java.naming.security.authentication simple

java.naming.security.credentials netscape
java.naming.security.principal cn=directory manager

Object successfully added.

 


備註  

您可以使用 ldapsearch 或 LDAP 瀏覽器檢查新建立的物件。


將管理的物件儲存在檔案中

本小節說明了如何使用指令行工具將管理的物件儲存在檔案中。

儲存連線工廠物件

代碼範例 9-8 提供了儲存連線工廠物件和指定查詢名稱所需的指令:

代碼範例 9-8  儲存連線工廠物件和指定查詢名稱

 

#> ./imqobjmgr add -l "mytestFactory" -j "java.naming.factory.initial=
com.sun.jndi.fscontext.RefFSContextFactory"

-j "java.naming.provider.url=file:///home/gael/tmp" -t qf -o "imqAddressList=mq://gwenig.coopsrc.com:7676/jms"

Adding a Queue Connection Factory object with the following attributes:

imqAckOnAcknowledge [Message Service Acknowledgement of    Client Acknowledgements]

...

imqSetJMSXUserID [Enable JMSXUserID Message Property] false

Using the following lookup name:

mytestFactory

The object's read-only state:false
To the object store specified by:

java.naming.factory.initial com.sun.jndi.fscontext.RefFSContextFactory
java.naming.provider.url file:///home/gael/tmp

Object successfully added.

To specify a destination:

#> ./imqobjmgr add -l "mytestQueue" -j "java.naming.factory.initial=com.sun.jndi.fscontext.RefFSContextFactory"

-j "java.naming.provider.url=file:///home/gael/tmp" -t q -o    "imqDestinationName=myTestQueue"

Adding a Queue object with the following attributes:

imqDestinationDescription [Destination Description] A Description for the Destination Object imqDestinationName [Destination Name] myTestQueue

Using the following lookup name:

mytestQueue

The object's read-only state:false

To the object store specified by:

java.naming.factory.initial com.sun.jndi.fscontext.RefFSContextFactory java.naming.provider.url file:///home/gael/tmp

Object successfully added.

 

在代理程式上建立目標

依預設,Sun Java System Message Queue 代理程式允許自動建立佇列目標 (請參閱 config.properties,其中 imq.autocreate.queue 的預設值為 true)。

如果未自動建立佇列目標,則您必須使用代碼範例 9-9 (其中 myTestQueue 為目標) 中顯示的指令在代理程式上建立目標物件:

代碼範例 9-9  在代理程式上建立目標物件

 

name (Queue name):

#> cd /opt/sun/mq/bin

#>./imqcmd create dst -t q -n mytestQueue

Username:<admin>

Password:<admin>

Creating a destination with the following attributes:

Destination Name mytestQueue

Destination Type Queue

On the broker specified by:

-------------------------

Host Primary Port

-------------------------

localhost 7676

Successfully created the destination.

 

您可以將管理的物件儲存在目錄或檔案中:

為此方案配置 JMS 偵聽程式配接卡

JMS 偵聽程式配接卡配置的第一個頁面看起來應與圖 9-13 中的頁面相似:

圖 9-13  JMS 偵聽程式 [Adapter Resource Parameters] 頁面

JMS 偵聽程式配接卡資源參數頁面

若要配置 JMS 偵聽程式配接卡,請:

  1. 在 [Message Mapping] 欄位中指定 java:com.waveset.adapter.jms.PasswordSyncMessageMapper,以將內送 JMS 訊息轉換為同步化使用者密碼工作流程可以使用的格式。
  2. 為此方案對映以下屬性 (JMS 偵聽程式配接卡可透過 PasswordSyncMessageMapper 使用):
    • IDMAccountId:此屬性由 PasswordSyncMessageMapper 根據 JMS 訊息中傳送的 resourceAccountIdresourceAccountGUID 屬性進行解析。
    • password:以 SOAP 請求接收加密密碼並以 JMS 訊息轉寄該密碼。
    • 圖 9-14  對映 IDMAccountId 與 password 帳號屬性
      對映 IDMAccountID 與 password 帳號屬性

      在模式對映中配置這些屬性欄位時,Active Sync 精靈 (圖 9-15) 之 [Attribute Mappings] 區段中的資源可以使用這些屬性。


      備註  

      此處未提供身份識別範本。


      圖 9-15  Active Sync 屬性對映
      Active Sync 屬性對映

配置 Active Sync

使用 JMS 偵聽程式的 Active Sync 精靈在進階配置模式下為此方案配置 Active Sync。

  1. 當 [Synchronization Mode] 螢幕顯示時 (圖 9-16),您可以保持參數設定為預設值,然後按 [Next] 繼續。
  2. 預設的同步化使用者密碼工作流程接受來自 JMS 偵聽程式配接卡的每個請求,出庫使用 ChangeUserPassword 檢視器,然後再將 ChangeUserPassword 檢視器入庫納管。

    圖 9-16  [Synchronization Mode] 螢幕
    [Synchronization Mode] 螢幕

  3. 顯示 [Active Sync Running Settings] 面板時,您必須定義與空白表單關聯的代理伺服器管理員 (pwsyncadmin)。
  4. 圖 9-17  [Active Sync Running Settings] 面板
    [Active Sync 執行設定] 頁面

  5. 為除錯目的,將記錄層級設定為 4 並指定記錄檔路徑,以在特定目錄中產生詳細的記錄檔。
  6. 例如,圖 9-17 中顯示的記錄檔將儲存到 /dvlpt/Idm/pwsynctests/logs/ 目錄中。

  7. 完成後,按 [Next] 繼續。
  8. 請勿變更接下來的兩個 Active Sync 精靈面板中的預設值。您只需按 [Next] 直到顯示 [Target Resources] 螢幕 (圖 9-18)。
  9. 圖 9-18  [Target Resources] 螢幕
    [Target Resources] 頁面

  10. 使用目標資源選取工具指定目標資源。從 [Available Resources] 清單中選取資源並按一下 按鈕,以將資源移至 [Target Resources] 清單。
  11. 例如,在此方案中你要同步化 Windows 密碼與 Sun Directory Server,並且要同步化 Identity Manager 密碼。

  12. 按 [Next],當顯示 [Target Attribute Mappings] 面板時,選取 [IDM User] 標籤 (如果尚未選取)。
  13. 在 [IDM User] 標籤中,使用表格為 Identity Manager 使用者指定目標屬性對映。
  14. 例如,在圖 9-19 中定義了 passwordaccountID

    圖 9-19  定義 password 和 accountID
    對映 password 和 accountID 目標屬性

  15. 完成後,按一下 [Add Mapping]。
  16. 選取 [LDAP-kosig] 標籤以為 Sun Directory 定義目標屬性對映 (圖 9-20):
  17. 圖 9-20  為 Sun Directory 定義目標屬性對映
    為 Sun Direcory 定義目標屬性對映

  18. 完成後,按一下 [Add Mapping],然後儲存變更。

對您的配置執行除錯

您可以使用 Windows PasswordSync 配置應用程式來對 Windows 端的配置執行除錯。

  1. 如果尚未執行 PasswordSync 配置應用程式,請將其啟動。
  2. 依預設,此配置應用程式安裝在 [Program Files] > [Sun Java System Identity Manager PasswordSync] > [Configuration] 中。

  3. 當顯示 [PasswordSync Configuration] 對話方塊時,按一下 [Test] 按鈕。
  4. 將顯示 [Test Connection] 對話方塊 (圖 9-21),其中包含一條訊息表明測試連線是否成功完成。
  5. 圖 9-21  [Test Connection] 對話方塊
    [Test Connection] 對話方塊

  6. 按一下 [Close] 以關閉 [Test Connection] 對話方塊。
  7. 按一下 [OK] 以關閉 [PasswordSync Configuration] 對話方塊。
  8. 然後 JMS 偵聽程式配接卡將在除錯模式中執行,並在檔案中產生除錯資訊,與圖 9-22 所示相似:

    圖 9-22  除錯資訊檔案
    除錯資訊


PasswordSync 的容錯移轉部署

PasswordSync 的架構有助於消除 Identity Manager 之 Windows 密碼同步化部署中的任何單一故障點。

如果您將每個 Active Directory 網域控制器 (ADC) 配置為透過負載平衡器連線到一系列 JMS 用戶端之一 (請參閱圖 9-23),則 JMS 用戶端可以向 Message Queue 代理程式叢集傳送訊息,以確保有 Message Queue 發生故障時不會遺失訊息。

圖 9-23  PasswordSync 的容錯移轉部署

PasswordSync 的容錯轉移部署簡介


備註  

Message Queue 叢集可能需要一個用於保留訊息的資料庫。(在供應商的產品文件中應提供有配置 Message Queue 代理程式叢集的說明。)


執行配置為自動容錯移轉之 JMS 偵聽程式配接卡的 Identity Manager 伺服器將連絡 Message Queue 代理程式叢集。儘管該配接卡每次僅在一個 Identity Manager 上執行,但是如果主 ActiveSync 伺服器發生故障,則該配接卡將開始在次要 Identity Manager 伺服器上輪詢密碼相關訊息,並將密碼變更向外傳播到下行流程的資源。


有關 PasswordSync 的常見問題

PasswordSync 是否可以與其他用於強制自訂密碼策略的 Windows 密碼篩選器配合使用?

是的,您可以將 PasswordSync 與其他 _WINDOWS_ 密碼篩選器配合使用。然而,必須是 [Notification Package] 登錄值中列出的最後一個密碼篩選器。

您必須使用以下登錄路徑:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\Notification Packages (類型 REG_MULTI_SZ 的值)

依預設,安裝程式將 Identity Manager 密碼截取置於清單結尾。但是,如果您在安裝該軟體後安裝自訂密碼篩選器,則需要將 lhpwic 移至 [Notification Package] 清單的結尾。

您可以將 PasswordSync 與其他 Identity Manager 密碼策略配合使用。在 Identity Manager 伺服器端檢查策略時,必須傳送所有資源密碼策略,才可以將密碼同步化推出至其他資源。因此,您應使 Windows 本機密碼策略具有與 Identity Manager 中定義的大多數限制性密碼策略同等的限制性。


備註  

密碼截取 DLL 不會強制執行任何密碼策略。


是否可以將 PasswordSync Servlet 安裝在 Identity Manager 以外的其他應用伺服器上?

可以。除了 JMS 應用程式需要的所有 JAR 檔案之外,PasswordSync Servlet 還需要 JAR 檔案 spml.jaridmcommon.jar

PasswordSync 服務是否將密碼以明文傳送至 lh 伺服器?

雖然我們建議透過 SSL 執行 PasswordSync,但是在傳送至 Identity Manager 伺服器之前,所有敏感資料都是加密的。

密碼變更有時是否會導致 com.waveset.exception.ItemNotLocked?

如果啟用 PasswordSync,密碼變更 (即使從使用者介面啟動) 會使資源的密碼發生變更,而這會導致資源與 Identity Manager 連絡。

如果正確配置 passwordSyncThreshold 工作流程變數,則 Identity Manager 將檢查使用者物件並確定該使用者物件已處理密碼變更。但是,如果使用者或管理員同時對同一使用者進行其他密碼變更,則使用者物件將被鎖定。



上一頁      目錄      索引      下一頁     


文件號碼: 820-0141。   Copyright 2006 Sun Microsystems, Inc. 版權所有。