Sun Java System Messaging Server 6 2005Q4 管理指南

信任圈 SSO (老舊)

本節說明信任圈 SSO。我們建議您不要使用這種 SSO 方法,因為未來的所有開發均將針對 Access Manager 進行。然而,信任圈 SSO 中可用的某些功能,在 Access Manager SSO 中並不可用。本節包含以下小節:

信任圈 SSO 簡介和定義

部署 SSO 之前,請務必瞭解以下術語。

信任圈 SSO 應用程式

實作 SSO 之前,您必須首先考量哪些應用程式將位於此信任圈中。可處於此信任圈中的應用程式包括 Messenger Express (帶或不帶 Messenger Express Multiplexor)、Calendar Express 和舊的 iPlanet Delegated Administrator for Messaging (不建議使用,因為它僅支援 Sun LDAP Schema 1)。

表 6–2 顯示透過 SSO 可彼此存取的應用程式。從使用者的角度來看,登入第一欄中的任一應用程式後,如果使用者無需重新輸入使用者 ID 和密碼即可存取頂端列中的應用程式,則說明 SSO 在運作。

表 6–2 SSO 互通性

                                    至︰ 

 

From:  

Calendar Express 

Messenger Express 

Messenger Express Multiplexor 

Delegated Administrator 

Calendar Express 

SSO 

SSO 

SSO 

SSO 

Messenger Express 

SSO 

不適用 

不適用 

SSO 

Messenger Express Multiplexor 

SSO 

不適用 

不適用 

SSO 

Delegated Administrator 

SSO 

SSO 

SSO 

不適用 

信任圈 SSO 限制

信任圈 SSO 部署方案範例

最簡易的 SSO 部署方案僅由 Messenger Express 和 Delegated Administrator 組成。可以透過在相同機器或不同機器上,使用同一 SSO 前綴 (以便它們位於同一信任圈中) 增加 Calendar Express 來建立較複雜的方案。如圖 6–1 所示。

圖 6–1 簡單的 SSO 部署

本圖顯示了簡易的 SSO 部署。

更複雜的部署將包括 Messenger Express Multiplexor 和負載平衡器。

圖 6–2 複雜的 SSO 部署

本圖顯示了複雜的 SSO 部署。

設定信任圈 SSO

本小節說明為 Messenger Express、Delegated Administrator 和 Calendar Manager 設定 SSO。

Procedure為 Messenger Express、Delegated Administrator 和 Calendar Manager 設定 SSO

步驟
  1. 針對 SSO 配置 Messenger Express。

    1. 設定適當的 SSO configutil 參數。

      若要啟用 Messenger Express 和 Delegated Administrator 單次登入,請如下設定配置參數 (假設預設網域為 siroe.com)。這些參數在表 6–3 中進行說明。您必須是超級使用者。cdinstance_root


      configutil -o local.webmail.sso.enable -v 1
      configutil -o local.webmail.sso.prefix -v ssogrp1
      

      ssogrp1 是 iDA 使用的預設 SSO 前綴,儘管您可以選擇其他前綴,但在配置 iDA 和 iCS 時使用預設可以省去一些鍵入作業。


      configutil -o local.webmail.sso.id -v ims5
      

      ims5 是您選取用來識別 Messenger Express (ME) 以區分其他應用程式的名稱。


      configutil -o local.webmail.sso.cookiedomain -v “.siroe.com”
      

      上述網域必須與 ME/瀏覽器用戶端連線至伺服器使用的網域相符。因此,儘管此伺服器上的託管網域可以稱為 xyz.com,但是我們必須使用 DNS 中的實際網域。此值必須以小數點號開頭。


      configutil -o local.webmail.sso.singlesignoff -v 1
      configutil -o local.sso.ApplicationID.verifyurl -v \
      "http://ApplicationHost:port/VerifySSO?"
      

      ApplicationID 是我們提供給 SSO 應用程式的名稱 (例如︰對於 Delegated Administrator是 ida,對於 Calendar Server 是 ics50)。ApplicationHost:port 是應用程式的主機和連接埠號碼。對於每個非 Messaging Server 應用程式,您將有以上這些行中的一行。範例:


      configutil -o local.sso.ida.verifyurl -v \
      "http://siroe.com:8080/VerifySSO?"
      
    2. 變更配置後,重新啟動 Messenger Express http 伺服器。


      cd instance_root./stop-msg http
      ./start-msg http
      
  2. 為 Directory Server 配置 SSO。

    1. 在目錄中建立代理使用者帳號。

      代理伺服器使用者帳號允許 Delegated Administrator 連結至 Directory Server 以用於代理伺服器認證。使用以下 LDIF 程式碼 (proxy.ldif),您可以建立使用 ldapadd 的代理伺服器使用者帳號項目。

      ldapadd -h mysystem.siroe.com -D "cn=Directory Manager" -w password -v -f proxy.ldif


      dn: uid=proxy, ou=people, o=siroe.com, o=isp
      objectclass: top
      objectclass: person
      objectclass: organizationalperson
      objectclass: inetorgperson
      uid: proxy
      givenname: Proxy
      sn: Auth
      cn: Proxy Auth
      userpassword: proxypassword
    2. 為代理使用者帳號認證建立適當的 ACI。

      使用 ldapmodify 公用程式,為在建立 Delegated Administrator 時建立的每個後綴建立 ACI。

      osiroot - 輸入用以儲存使用者資料的後綴 (預設為 o=isp)。osiroot 是組織數的根。

      dcroot - 輸入用以儲存網域資訊的後綴。(預設為 o=internet。)

      osiroot - 輸入用以儲存配置資訊的後綴,它應與您輸入用以儲存使用者資料的值相同。

      以下是較早建立的代理伺服器使用者的 osiroot 之 ACI 項目 (aci1.ldif) 範例:


      dn: o=isp
      changetype: modify
      add: aci
      aci: (target="ldap:///o=isp")(targetattr="*")(version 3.0; acl
      "proxy";allow (proxy) userdn="ldap:///uid=proxy, ou=people,
      o=siroe.com, o=isp";)

      ldapmodify -h siroe.com -D "cn=Directory Manager" -w password -v 
      -f aci1.ldif
      

      dcroot 建立類似的 ACI 項目 (aci2.ldif):


      dn: o=internet
      changetype: modify
      add: aci
      aci: (target="ldap:///o=internet")(targetattr="*")(version 3.0; acl 
      "proxy";allow (proxy) userdn="ldap:///uid=proxy, ou=people, 
      o=siroe.com, o=isp";)

      ldapmodify -h siroe.com -D "cn=Directory Manager" -w password -v
      -f aci2.ldif
      
  3. 配置 Delegated Administrator

    1. 將代理伺服器使用者憑證和環境 cookie 名稱增加至 Delegated Administrator resource.properties 檔案。

      取消註釋並修改 Delegated Administrator resource.properties 檔案中的以下項目︰


      LDAPDatabaseInterface-ldapauthdn=Proxy_Auth_DN
      LDAPDatabaseInterface-ldapauthpw=Proxy_Auth_Password
      NDAAuth-singleSignOnId=SSO_Prefix-
      NDAAuth-applicationId=DelAdminID
      

      例如:


      LDAPDatabaseInterface-ldapauthdn= uid=proxy,ou=people,o=cesta.com,o=isp
      LDAPDatabaseInterface-ldapauthpw=proxypassword
      NDAAuth-singleSignOnId=ssogrp1-
      NDAAuth-applicationId=ida

      resource.properties 檔案儲存於以下位置︰

      iDA_svr_base/nda/classes/netscape/nda/servlet/

    2. 增加參加伺服器的驗證 URL。

      若要驗證收到的單次登入 cookie,Delegated Administrator 必須瞭解要與誰聯絡。您必須為所有已知的參加伺服器提供驗證 URL。

      以下範例假設 Messenger Express 已安裝,並且其應用程式 ID 為 msg5。編輯 Delegated Administrator resource.properties 檔案,並增加如下項目︰


      verificationurl-ssogrp1-msg5=http://webmail_hostname:port/VerifySSO? 
      verificationurl-ssogrp1-ida=http://iDA_hostname:port/VerifySSO? 
      verificationurl-ssogrp1-ics50=http://iCS_hostname:port/VerifySSO?

      resource.properties 檔案位於以下目錄中︰

      iDA_svr_base/nda/classes/netscape/nda/servlet/

  4. 增加 Delegated Administrator 單次登入 cookie 資訊並啟用 UTF8 參數編碼。

    1. 定義 Delegated Administrator 環境識別碼。

      編輯 servlets.properties 檔案並取消註釋包含文字 servlet.*.context=ims50 的所有行。其中 * 為任意字串。

      servlets.properties 檔案位於︰

      Web_Svr_Base/https-instancename/config/

    2. 在 Enterprise Server 配置中指定環境的 cookie 名稱。

      編輯 Enterprise Server contexts.properties 檔案並將以下行增加至檔案底部 (#IDACONF-Start 行之前)︰

      context.ims50.sessionCookie=ssogrp1-ida

      contexts.properties 檔案位於︰

      Web_Svr_Base/https-instancename/config/

    3. ims5 環境啟用 UTF8 參數編碼。

      若要在 Enterprise Server 配置中為 ims5 環境啟用 UTF8 參數編碼,請將以下項目增加至 Enterprise Server contexts.properties 檔案︰

      context.ims50.parameterEncoding=utf8

  5. 重新啟動 Messenger Express。

    依照步驟 1a 至 2c 所述進行配置變更後,您必須重新啟動 Messenger Express 以使變更生效︰


    Web_Svr_Base/https-instance_name/stop
    Web_Svr_Base/https-instancename/start
    
  6. 如果您要在此 SSO 群組中部署行事曆,請配置 Calendar Server。

    編輯 ics.conf 並增加以下內容︰


    sso.appid = "ics50"
    sso.appprefix = "ssogrp1"
    sso.cookiedomain = ".red.iplanet.com"
    sso.enable = "1"
    sso.singlesignoff = "true"
    sso.userdomain = "mysystem.red.iplanet.com"
    sso.ims5.url="http://mysystem.red.iplanet.com:80/VerifySSO?"
    sso.ida.url=http://mysystem.red.iplanet.com:8080/VerifySSO?
  7. 重新啟動 Calendar Server

    start-cal

  8. 重新啟動 Messenger Express http 伺服器:


    msg_svr_base/sbin/stop-msg http
    msg_svr_base/sbin/start-msg http
    

Messenger Express 信任的 SSO 配置參數

您可以透過使用 configutil 指令,修改 Messenger Express 的單次登入配置參數,如Messenger Express 信任的 SSO 配置參數所示。如需有關 configutil 的更多資訊,請參閱「Sun Java System Messaging Server 6 2005Q4 Administration Reference」

表 6–3 信任圈單次登入參數

參數 

說明 

local.sso.appid .verifyurl

為同級 SSO 應用程式設定驗證 URL 值。appid 是同級 SSO 應用程式 (執行 SSO cookie) 的應用程式 ID。例如,Delegated Administrator 的預設 appidnda45。其實際值由 Delegated Administrator resource.properties 檔案項目 NDAAuth-applicationID 指定。

應為每個信任的同層 SSO 應用程式定義一個參數。驗證 URL 的標準格式為: 

http://nda-host:port /VerifySSO?

如果您在多個 Messenger Express Multiplexors 和 Message Store 伺服器 (執行 Messenger Express) 或行事曆前端之前使用負載平衡器,請務必為每個具有實際主機名稱的實體系統在 verifyurl 中指定不同的 appid。這將確保使用正確的系統來驗證 cookie


local.webmail.sso.
cookiedomain

此參數的字串值用於設定由 Messenger Express HTTP 伺服器設定的所有 SSO cookie 的 cookie 網域值。預設值為空。 

該網域必須與 Messenger Express 瀏覽器用於存取伺服器的 DNS 網域相符。它不是託管網域名稱。 

local.webmail.sso.enable

啟用或停用所有單次登入功能,包括擷取登入頁面後接受和驗證用戶端提供的 SSO cookie、在成功登入後將 SSO cookie 傳回至用戶端以及回應來自其他 SSO 合作夥伴要求驗證其自身 cookie 的請求。 

如果設定的值不為零,則伺服器將執行所有 SSO 功能。 

如果設定為零,則伺服器將不執行這些 SSO 功能中的任何一個。 

預設值為零。 

local.webmail.sso.id

當格式化由 Messenger Express HTTP 伺服器設定的 SSO cookie 時,此參數的字串值將用作應用程式 ID 值。預設值為空。 

這是任意字串。其值必須與在 resource.properties 檔案中為 Delegated Administrator 指定的值相符。resource.properties 中相應的項目為︰


Verifycationurl-XXX-YYY=http://webmailhost:
webmailport/VerifySSO?

其中,XXX 是上面設定的 local.webmail.sso.prefix 值,YYY 是此處設定的 local.webmail.sso.id 值。

local.webmail.sso.prefix

當格式化由 Messenger Express HTTP 伺服器設定的 SSO cookie 時,此參數的字串值將用作前綴值。伺服器將僅識別帶有此前綴的 SSO cookie,所有其他 SSO cookie 將被忽略。 

此參數的空值將有效地停用伺服器上的所有 SSO 功能。 

預設值為空。 

此字串必須與在 resource.properties 檔案中 Delegated Administrator 使用的內容相符 (沒有尾隨 -)。例如,如果:

NDAAuth-singleSignOnID=ssogrp1-

則應在此處將該值設定為 ssogrp1


local.webmail.sso.
singlesignoff

如果將此參數的整數值設定為非零值,當用戶端登出時將清除用戶端其前綴值與 webmail.sso.prefix 中配置的值相符的所有 SSO cookie。 

如果設定為零,則當用戶端登出時,Messenger Express 將清除自己的 SSO cookie。 

預設值為零。