Sun Java System Access Manager 7.1 管理指南

第 4 章 管理認證

認證服務提供一項基於 Web 的使用者介面給所有安裝於 Access Manager 部署中的預設認證模組。該介面提供動態和可自訂的方式,透過為使用者請求的存取顯示登入需求螢幕 (基於呼叫的認證模組) 來匯集認證憑證。該介面使用 Sun Java System™ Application Framework (有時稱為 JATO,它是一種 Java 2 Enterprise Edition (J2EE) 表示架構,用於協助開發者建立實用的 Web 應用程式) 建立。

配置認證

本節描述如何配置您部署的認證。第一部分略述預設認證模組類型並提供任何所需的預先配置指示。您可為範圍、使用者、角色等的相同認證模組類型配置多重配置實例。此外,您可增加認證鏈接,如此一來,在成功認證之前,認證必須通過多重實例的條件。本節包含:

認證模組類型

認證模組是一個收集使用者資訊 (如使用者 ID 和密碼) 並根據資料庫中項目檢查資訊的外掛程式。若使用者提供的資訊符合認證條件,則將對使用者授予所請求資源的存取權。若使用者提供的資訊不符合認證條件,則將拒絕使用者存取所請求的資源。Access Manager 安裝時附有下列認證模組類型:


備註 –

用作認證實例之前,某些認證模組類型需要進行預先配置。如需要,配置步驟將列於模組類型描述之中。


核心

依預設,Access Manager 提供十五種不同的認證模組,以及核心認證模組。核心認證模組為認證模組提供總體配置。增加及啟用 Active Directory、匿名、基於憑證的認證、HTTP Basic、JDBC、LDAP 等任何認證模組之前,必須先增加和啟用核心認證。對預設範圍自動啟用核心和 LDAP 認證兩種模組。

按一下 [進階特性] 按鈕顯示可為範圍定義的核心認證屬性。全域屬性不適用於範圍,因此將不顯示。

Active Directory

Active Directory 認證模組執行認證的方式與 LDAP 模組相似,但使用的是 Microsoft 的 Active Directory™ 伺服器 (而 LDAP 認證模組使用的是 Directory Server)。雖然可為 Active Directory 伺服器配置 LDAP 認證模組,但此模組可讓您在相同範圍下同時擁有 LDAP 和 Active Directory 兩種認證。


備註 –

在此發行版本中,Active Directory 認證模組僅支援使用者認證。只有 LDAP 認證模組會支援密碼策略。


匿名

依預設,啟用此模組時,使用者能以 anonymous 使用者的身份登入 Access Manager。藉由配置 [有效匿名使用者清單] 屬性,亦可定義此模組的匿名使用者清單。授予匿名存取權意味著無需提供密碼即可進行存取。可以將匿名存取權限制為特定類型的存取權 (例如,讀取存取權或搜尋存取權),或限制在目錄內的子樹狀結構或個別項目中。

憑證

基於憑證的認證需要使用個人數位憑證 (personal digital certificate, PDC) 來識別和認證使用者。可以將 PDC 配置為需要與儲存在 Directory Server 中的 PDC 相符,並要根據憑證撤銷清單進行驗證。

在對範圍加入基於憑證的認證模組之前,需要完成許多工作。首先,需要確保與 Access Manager 一同安裝之 Web 容器的安全,並對其進行配置,以用於基於憑證的認證。


備註 –

若要以啟用了 SSL 的 Sun Java System Web Server 6.1 實例來配置 Access Manager 憑證認證,並希望將 WebServer 定義成接受基於憑證以及不基於憑證的認證請求,您必須在 WebServer 的 obj.conf 檔案中設定下列值︰

PathCheck fn="get-client-cert" dorequest="1" require="0"

這是因為設定這種運作方式的選擇性屬性時,在 WebServer 主控台中有限制。


於啟用基於憑證的模組之前,請參閱「Sun ONE Web Server 6.1 管理員指南」中的第 6 章「使用證書和金鑰」,以取得 Web Server 的初始配置步驟。此文件位於以下位置:

http://docs.sun.com/app/docs/coll/S1_websvr61_en

或者,參閱位於下列位置的「Sun ONE Application Server Administrator’s Guide to Security」:

http://docs.sun.com/db/prod/s1appsrv#hic


備註 –

每一位要使用基於憑證的模組進行認證的使用者,必須請求用於使用者瀏覽器的 PDC。根據所使用的瀏覽器不同,會有不同的說明。請參閱您瀏覽器的說明文件,以取得更多資訊。


為了加入此模組,您必須以範圍管理員的身份登入 Access Manager,並配置 Access Manager 和 Web 容器,以使用 SSL 並啟用用戶端認證。如需更多資訊,請參閱「Access Manager Post Installation Guide」中的「Configuring Access Manager in SSL Mode」

資料存放區

「資料存放區」認證模組也允許使用範圍的「識別儲存庫」登入,以認證使用者。如果要根據相同的資料存放區儲存庫進行認證,則使用「資料存放區」模組可以不必撰寫認證外掛程式模組、載入及配置認證模組。此外,您不需要撰寫範圍中對應儲存庫需要純文字檔認證的自訂認證模組。

此認證類型在配置 Access Manager 認證時提供某些程度的方便性。在 Access Manager 7.1 之前的發行版本中,如果您想讓 LDAPv3 資料存放區中的使用者能夠認證到他們的範圍,您必須︰

「資料存放區」認證模組可讓定義於範圍識別儲存庫中的使用者進行認證。不需要配置 LDAP 認證。例如,假設有個範圍的識別儲存庫包含一個 LDAPv3 資料存放區,且同一個範圍使用資料存放區認證。在此情況下,定義於識別儲存庫中的任何使用者都可以認證到該範圍。

HTTP Basic

此模組使用基本認證,它是 HTTP 通訊協定內建的認證支援。Web 伺服器發出要求提供使用者名稱和密碼的用戶端請求,並將這些資訊作為授權請求的一部分傳回伺服器。Access Manager 會擷取該使用者名稱和密碼,並從內部將使用者認證至 LDAP 認證模組。為使 HTTP Basic 正常工作,必須加入 LDAP 認證模組 (僅加入 HTTP Basic 模組將不起作用)。一旦使用者認證成功,其無需提供使用者名稱和密碼即可重新進行認證。

JDBC

Java Database Connectivity (JDBC) 認證模組提供一種機制,可讓 Access Manager 經由提供 JDBC 技術啟用驅動程式的 SQL 資料庫來認證使用者。SQL 資料庫的連線可以直接透過 JDBC 驅動程式或透過 JNDI 連線池。


備註 –

此模組已在 MySQL4.0 和 Oracle 8i 上通過測試。


LDAP

如果使用 LDAP 認證模組,當使用者登入時,他們必須以特定的使用者 DN 和密碼連結至 LDAP Directory Server。此為所有基於範圍的認證之預設認證模組。若使用者提供 Directory Server 中的使用者 ID 和密碼,系統將允許此使用者存取有效的 Access Manager 階段作業,並使用該階段作業進行設定。對預設範圍自動啟用核心和 LDAP 認證兩種模組。

成員身份

成員身份認證的實作類似於個人化網站,例如:my.site.commysun.sun.com。啟用此模組時,使用者無需借助管理員,即可建立帳號並對其進行個人化設定。對於這個新帳號,使用者能以已加入使用者的身份來存取它。還可以存取檢視器介面,此介面作為授權資料和使用者偏好設定儲存在使用者設定檔資料庫中。

MSISDN

Mobile Station Integrated Services Digital Network (MSISDN) 認證模組會使用如行動電話等裝置相關的行動用戶 ISDN 來啟用認證。這是非互動式模組。此模組擷取用戶 ISDN 並根據 Directory Server 進行驗證,以找到符合該號碼的使用者。

RADIUS

Access Manager 可以配置為搭配已安裝的 RADIUS 伺服器使用。如果您的企業使用舊有的 RADIUS 伺服器進行認證,這會很有用。啟用 RADIUS 認證模組需要執行兩個步驟:

  1. 配置 RADIUS 伺服器。

    如需詳細說明,請參閱 RADIUS 伺服器的文件。

  2. 註冊和啟用 RADIUS 認證模組。

與 Sun Java System Application Server 一起配置 RADIUS

RADUIS 用戶端與其伺服器形成通訊端連線時,依預設,Application Server 的 server.policy 檔案中,只允許有 SocketPermissions 的連線權限。為了使 RADUIS 認證正常運作,需要為以下動作授予權限:

若要授予通訊端連線的權限,您必須在 Application Server 的 server.policy 檔案中加入一個項目。SocketPermission 由主機規格和一組指定與該主機連線方式的動作組成。主機依如下方式指定:

host = hostname | IPaddress:portrange:portrange = portnumber 
| -portnumberportnumber-portnumber

主機表示為 DNS 名稱、數字 IP 位址或本地主機 (針對本端機器)。DNS 名稱主機規格中可使用一次萬用字元「*」。如果包含萬用字元,它必須位於最左側,如:*.example.com

連接埠 (或連接埠範圍) 為選擇性的。形式為 N- 的連接埠規格 (其中 N 為連接埠號碼),表示號碼為 NN 以上的所有連接埠。形式為 -N 的連接埠規格則表示號碼為 NN 以下的所有連接埠。

偵聽動作僅在與本地主機搭配使用時才有意義。如果存在任何其他動作,則暗含解析 (解析主機/IP 名稱服務查找) 動作。

例如,建立 SocketPermissions 時請注意,如果將以下權限授予某程式碼,則該權限可讓程式碼與 machine1.example.com 上的 port 1645 連線,並接受該連接埠上的連線:

permission java.net.SocketPermission machine1.example.com:1645, "connect,accept";

同樣,如果將以下權限授予某程式碼,則該權限可讓程式碼接受本地主機上 1024 至 65535 之間任一連接埠上的連線,並可連線或偵聽這些連接埠:

permission java.net.SocketPermission "machine1.example.com:1645", "connect,accept";
permission java.net.SocketPermission "localhost:1024-", "accept,connect,listen";

備註 –

因為有害的程式碼可以更容易在不擁有資料存取權的多方中傳輸和共用這些資料,所以將接受或建立與遠端主機連線的權限授予程式碼可能會引發問題。請確保僅透過指定精確的連接埠號 (而不是指定連接埠號範圍) 授予適當的權限。


SafeWord

可配置 Access Manager 以處理對安全運算的 SafeWord™ 或 SafeWord PremierAccess™ 認證伺服器的 SafeWord 認證請求。Access Manager 會提供 SafeWord 認證的用戶端。SafeWord 伺服器可以存在於安裝有 Access Manager 的系統,或是單獨的系統上。

與 Sun Java System Application Server 一起配置 SafeWord

SafeWord 用戶端與其伺服器形成通訊端連線時,依預設,Application Server 的 server.policy 檔案中,只允許有 SocketPermissions 的 connect 權限。為了使 SafeWord 認證正常工作,需要為以下動作授予權限:

若要授予通訊端連線的權限,您必須在 Application Server 的 server.policy 檔案中加入一個項目。SocketPermission 由主機規格和一組指定與該主機連線方式的動作組成。主機依如下方式指定:

host = (hostname | IPaddress)[:portrange] portrange = 
portnumber | -portnumberportnumber-[portnumber]

主機表示為 DNS 名稱、數字 IP 位址或本地主機 (針對本端機器)。DNS 名稱主機規格中可使用一次萬用字元「*」。如果包含萬用字元,它必須位於最左側,如:*.example.com

連接埠 (或 portrange) 為選擇性的。形式為 N- 的連接埠規格 (其中 N 為連接埠號碼),表示號碼為 NN 以上的所有連接埠。形式為 -N 的規格則表示號碼為 NN 以下的所有連接埠。

偵聽動作僅在與本地主機搭配使用時才有意義。如果存在任何其他動作,則暗含解析 (解析主機/IP 名稱服務查找) 動作。

例如,建立 SocketPermissions 時請注意,如果將以下權限授予某程式碼,則該權限可讓程式碼與 machine1.example.com 上的連接埠 1645 連線,並接受該連接埠上的連線:

permission java.net.SocketPermission machine1.example.com:5030, "connect,accept";

同樣,如果將以下權限授予某程式碼,則該權限可讓程式碼接受本地主機上 1024 至 65535 之間任一連接埠上的連線,並可連線或偵聽這些連接埠:

permission java.net.SocketPermission "machine1.example.com:5030", "connect,accept";
permission java.net.SocketPermission "localhost:1024-", "accept,connect,listen";

備註 –

因為有害的程式碼可以更容易在不擁有資料存取權的多方中傳輸和共用這些資料,所以將接受或建立與遠端主機連線的權限授予程式碼可能會引發問題。請確保僅透過指定精確的連接埠號 (而不是指定連接埠號範圍) 授予適當的權限。


SAML

安全指定標記語言 (Security Assertion Markup Language, SAML) 認證模組接收並驗證目標伺服器上的 SAML 指定。只有在此模組是配置於目標機器上時 (包括升級後,例如:Access Manager 2005Q4 升級至 Access Manager 7.1),SAML SSO 才有作用。

SecurID

Access Manager 可以配置為能處理對 RSA 的 ACE/Server 認證伺服器提出之「SecurID 認證」請求。Access Manager 會提供 SecurID 認證的用戶端。ACE/Server 可以存在於安裝有 Access Manager 的系統,或是單獨的系統上。若要對本機管理的使用者 ID 進行認證 (請參閱 admintool (1M)),則需要超級使用者存取權限。

「SecurID 認證」使用認證輔助程式 amsecuridd,它是 Access Manager 主程序以外的單獨程序。此輔助程式會在啟動時偵聽某連接埠,以取得配置資訊。若安裝了 Access Manager 並以 nobody 的身份或超級使用者以外的使用者 ID 執行,則仍必須以超級使用者的身份執行 AccessManager-base/SUNWam/share/bin/amsecuridd 程序。如需關於 amsecuridd 輔助程式的更多資訊,請參閱「Access Manager Administration Reference」中的「The amSecurID Helper」。


備註 –

在此版本的 Access Manager 中,「SecurID 認證」模組不適用於 Linux 或 Solaris x86 平台,且不應在這兩個平台上註冊、配置或啟用。它僅適用於 SPARC 系統。


UNIX

Access Manager 可以配置為根據安裝有 Access Manager 的 Solaris 或 Linux 系統上已知的 Unix 使用者 ID 和密碼,處理認證請求。雖然 Unix 認證只有一個範圍屬性和幾個全域屬性,但仍有一些針對系統的考量。若要對在本機管理的使用者 ID 進行認證 (請參閱 admintool (1M)),需要超級使用者存取權限。

「Unix 認證」使用認證輔助程式 amunixd,它是 Access Manager 主程序以外的單獨程序。此輔助程式會在啟動時偵聽某連接埠,以取得配置資訊。每個 Access Manager 只有一個 Unix 輔助程式以供其所有範圍使用。

如果安裝了 Access Manager 並以 nobody 身份或非超級使用者的使用者 ID 執行,必須仍以超級使用者身份執行 AccessManager-base/SUNWam/share/bin/amunixd 程序。Unix 認證模組透過開啟 localhost:58946 的通訊端來呼叫 amunixd 常駐程式,以偵聽 Unix 認證請求。若要在預設連接埠上執行 amunixd 輔助程式程序,請輸入以下指令:

./amunixd

若要在非預設連接埠上執行 amunixd,請輸入以下指令:

./amunixd [-c portnm] [ipaddress]

IP 位址與連接埠埠號位於 AMConfig.propertiesUnixHelper.ipadrs 屬性 (IPV4 格式) 和 UnixHelper.port 屬性中。您可透過 amserver 指令行公用程式執行 amunixd (amserver 會自動執行此程序,從 AMConfig.properties 擷取連接埠號和 IP 位址)。

/etc/nsswitch.conf 檔案中的 passwd 項目會決定是參考 /etc/passwd/etc/shadow 檔案,還是參考 NIS 來進行認證。

Windows Desktop SSO

「Windows Desktop SSO 認證」模組是以 Kerberos 為基礎的認證外掛程式模組,用於 Windows 2000™。它可讓通過 Kerberos 分發中心 (Kerberos Distribution Center, KDC) 認證的使用者,毋需再次提交登入條件便可通過 Access Manager 的認證 (單次登入)。

使用者透過 SPNEGO (Simple and Protected GSS-API Negotiation Mechanism,簡單和受保護的 GSS-API 協商機制) 通訊協定向 Access Manager 提供 Kerberos 記號。為了經由此認證模組來執行基於 Kerberos 的單次登入 Access Manager,在用戶端的使用者必須支援 SPNEGO 通訊協定,才能自我認證。通常,任何支援此通訊協定的使用者皆應可使用這個模組以進行 Access Manager 認證。視用戶端記號的可用性而定,此模組會提供 SPENGO 記號或 Kerberos 記號 (不論那一個,通訊協定都相同)。於 Windows 2000 (或更新版本) 上執行的 Microsoft Internet Explorer (5.01 或更新版本) 目前支援此通訊協定。此外,Solaris (9 和 10) 上的 Mozilla 1.4 具有 SPNEGO 支援,但僅會傳回 KERBEROS 記號,因為 Solaris 不支援 SPNEGO。


備註 –

您必須使用 JDK 1.4 或更新版本,才能利用 Kerberos V5 認證模組的新功能和 Java GSS API,在此 SPNEGO 模組中執行基於 Kerberos 的 SSO。


Internet Explorer 的已知限制

若在 WindowsDesktopSSO 認證時使用的是 Microsoft Internet Explorer 6.x,且瀏覽器不具使用者的 kerberos/SPNEGO 記號 (符合 WindowsDesktopSSO 模組中配置的 (KDC) 範圍) 之存取權,則在瀏覽器向 WindowsDesktopSSO 模組的認證失敗後,瀏覽器對其他模組的運作也會不正確。導致此問題的直接原因在於當 Internet Explorer 向 WindowsDesktopSSO 模組認證失敗後,即使出現回呼的提示,瀏覽器也無法將回呼 (屬於其他模組) 傳遞至 Access Manager,除非瀏覽器重新啟動。由於使用者憑證為空,因此 WindowsDesktopSSO 之後的所有模組都將失敗。

請參閱下列文件以取得相關資訊:

http://support.microsoft.com/default.aspx?scid=kb;en-us;308074

http://www.wedgetail.com/jcsi/sso/doc/guide/troubleshooting.html#ieNTLM


備註 –

截至此 Access Manager 發行版本,Microsoft 已修正這個限制。如需更多資訊,請參閱下列文件︰

http://www.microsoft.com/technet/security/bulletin/ms06-042.mspx


配置 Windows Desktop SSO

啟用 Windows Desktop SSO 認證是一個具有兩個步驟的程序:

  1. 在 Windows 2000 網域控制器中建立一個使用者

  2. 設定 Internet Explorer。

Procedure要在 Windows 2000 網域控制器中建立一個使用者

  1. 在網域控制器中,為 Access Manager 認證模組建立使用者帳號。

    1. 從 [開始] 功能表移至 [程式集] > [管理工具]。

    2. 選取 [使用者與電腦]。

    3. 移至 [電腦] > [新增] > [電腦],並增加用戶端電腦的名稱。如果您使用 Windows XP,則會在配置網域控制站帳號時自動執行這個步驟。

    4. 移至 [使用者] > [新增] > [使用者],並以 Access Manager 主機名稱做為使用者 ID (登入名稱) 建立新使用者。Access Manager 主機名稱不應包含網域名稱。

  2. 將使用者帳號與服務提供者名稱產生關聯,並將 keytab 檔案匯出至安裝 Access Manager 的系統。若要進行上述動作,請執行下列指令:


    ktpass -princ host/hostname.domainname@DCDOMAIN -pass password -mapuser userName -out 
    hostname.host.keytab
    ktpass -princ HTTP/hostname.domainname@DCDOMAIN -pass 
    password -mapuser userName -out hostname.HTTP.keytab

    備註 –

    ktpass 公用程式不作為 Windows 2000 伺服器的一部分安裝。您必須從安裝光碟將它安裝到 c:\program files\support 工具目錄。


    ktpass 指令接受下列參數:

    hostname。執行 Access Manager 的主機名稱 (不含網域名稱)。

    domainname。Access Manager 網域名稱。

    DCDOMAIN。網域控制器的網域名稱。此名稱可能與 Access Manager 的網域名稱不同。

    password。使用者帳號的密碼。請確定密碼正確,因為 ktpass 不會驗證密碼。

    userName。使用者帳號 ID。它應該與 hostname 相同。


    備註 –

    請確保兩個 keytab 檔案均已做好安全措施。


    服務範本值應類似於以下範例:

    服務主體: HTTP/machine1.EXAMPLE.COM@ISQA.EXAMPLE.COM

    Keytab 檔案名稱:/tmp/machine1.HTTP.keytab

    Kerberos 範圍: ISQA.EXAMPLE.COM

    Kerberos 伺服器名稱︰machine2.EXAMPLE.com

    使用網域名稱傳回委託人:false

    認證層級︰22


    備註 –

    如果您使用 Windows 2003 或 Windows 2003 Service Pack,請使用下列 ktpass 指令語法︰


    ktpass /out filename /mapuser username /princ HTTP/hostname.domainname 
         /crypto encryptiontype /rndpass /ptype principaltype /target domainname
    

    例如:


    ktpass /out demo.HTTP.keytab /mapuser http 
    /princ HTTP/demo.identity.sun.com@IDENTITY.SUN.COM /crypto RC4-HMAC-NT 
    /rndpass /ptype KRB5_NT_PRINCIPAL /target IDENTITY.SUN.COM

    如需語法定義,請參閱 http://technet2.microsoft.com/WindowsServer/en/library/64042138-9a5a-4981-84e9-d576a8db0d051033.mspx?mfr=true 網站。


  3. 重新啟動伺服器。

Procedure設定 Internet Explorer

上述步驟適用於 Microsoft Internet Explorer™ 6 及更高版本。若您是使用較早的版本,請確定 Access Manager 在瀏覽器的網際網路區域內,並啟用本機 Windows 認證。

  1. 在 [工具] 功能表中,移至 [網際網路選項] > [進階/安全性] > [安全性]。

  2. 選取 [整合 Windows 認證] 選項。

  3. 移至 [安全性] > [本機網際網路]。

    1. 選取 [自訂層級]。在 [使用者驗證/登入] 面板中,選取 [只在企業內部網路區域自動登入] 選項。

    2. 前往 [網站] 並選取所有選項。

    3. 按一下 [進階] ,並將 Access Manager 加入至本機區域 (若尚未加入的話)。

Windows NT

Access Manager 可以配置為搭配已安裝的 Windows NT/Windows 2000 伺服器使用。Access Manager 會提供 NT 認證的用戶端部分。

  1. 配置 NT 伺服器。如需詳細說明,請參閱 Windows NT 伺服器的文件。

  2. 加入和啟用 Windows NT 認證模組之前,您必須先取得和安裝 Samba 用戶端,以便與 Solaris 系統上的 Access Manager 進行通訊。

安裝 Samba Client

若要啟動 Windows NT 認證模組,必須下載 Samba Client 2.2.2,並將之安裝至下列目錄:

AccessManager-base/SUNWam/bin

Samba Client 是一種檔案與列印伺服器,用於將 Windows 和 UNIX 機器結合在一起,而無需單獨的 Windows NT/2000 Server。如需更多資訊及下載該軟體,請移至:http://wwws.sun.com/software/download/products/3e3af224.html。

Red Hat Linux 隨附 Samba 用戶端,位於下列目錄︰

/usr/bin

若要使用 Linux 的 Windows NT 認證模組進行認證,將用戶端二進位檔案複製到下列 Access Manager 目錄中:

AccessManager-base/sun/identity/bin

備註 –

如果您有多個介面,則需要額外的配置。多重介面可以透過 smb.conf 檔案中的配置設定,以傳遞到 mbclient


認證模組實例

根據預設認證模組,可為範圍建立多重認證模組實例。您可增加相同認證模組之個別配置的多重實例。

Procedure建立新的認證模組實例

  1. 按一下您要增加認證模組實例的範圍名稱。

  2. 選取 [認證] 標籤。


    備註 –

    [管理員認證配置] 按鈕僅定義管理員的認證服務。如果需要管理員的認證模組與一般使用者的認證模組有所不同,則可以使用此屬性。在訪問 Access Manager 主控台時,將使用該屬性中配置的模組。


  3. 按一下 [模組實例] 清單中的 [新建]。

  4. 輸入認證模組實例的名稱。名稱必須唯一。

  5. 選取範圍之認證模組類型的 [類型]。

  6. 按一下 [建立]。

  7. 按一下剛建立的模組實例名稱並編輯該模組的特性。請參閱線上說明中的「認證」一節,以取得每個模組類型特性的定義。

  8. 重複這些步驟以增加多重模組實例。

認證鏈接

可以配置一個以上的認證模組,使用者必須傳送認證憑證給這些模組。這稱為認證鏈接。Access Manager 中的認證鏈接是使用整合於認證服務中的 JAAS 架構來達成。

Procedure建立新的認證鏈接

  1. 按一下您要增加認證鏈接的範圍名稱。

  2. 選取 [認證] 標籤。

  3. 按一下 [認證鏈接] 清單中的 [新建]。

  4. 輸入此認證鏈接的名稱。

  5. 按一下 [建立]。

  6. 按一下 [增加] 以定義您要包括於鏈接中的認證模組實例。若要這麼做,請由 [實例] 清單中選取模組實例名稱。此清單中顯示的模組實例名稱於模組實例屬性中建立。

  7. 選取鏈接的條件。這些旗標為其定義的認證模組建立實施條件。此實施具有不同的層級。[必要的] 為最高層級而 [可選的] 為最低層級:

    必要條件

    模組實例必須成功。若成功,認證將繼續進行至 [認證鏈接] 清單中的下一個選項。如果失敗,立即返回應用程式 (不會繼續認證鏈接清單中的下一個選項)。

    必要的

    此模組的認證過程必須成功。若鏈接中任一必要的模組失敗了,則整個認證鏈接將最終失敗。然而,無論必要的模組成功與否,將繼續進行至鏈接中的下一個模組。

    充足的

    模組實例不必要成功。若其確實成功,立即返回到應用程式 (認證將不進行至模組實例清單的下一個選項)。若失敗,認證將繼續進行至 [認證鏈接] 清單中的下一個選項。

    可選的

    模組實例不必要成功。無論成功或失敗,認證都將繼續進行至 [認證鏈接] 清單中的下一個選項。

  8. 輸入鏈接的選項。允許此模組使用的其他選項,格式為「鍵=值」對。多重選項由空格分隔。

  9. 定義下列屬性:

    成功登入 URL

    指定認證成功後將使用者重新導向至的 URL。

    登入失敗 URL

    指定認證失敗後將使用者重新導向至的 URL。

    認證發佈處理類別

    定義在登入成功或失敗後用來自訂認證後程序的 Java 類別名稱。

  10. 按 [儲存]。

認證類型

認證服務提供不同的方式讓認證套用。這些不同的認證方法可藉由指定登入 URL 參數或透過認證 API 來獲取 (請參閱開發者指南「Sun Java System Access Manager 7.1 Developer’s Guide」中的第 2 章「Using Authentication APIs and SPIs」以取得更多資訊)。配置認證模組之前,必須先修改核心認證服務屬性 [範圍認證模組] ,使之包括特定的認證模組名稱。

認證配置服務用於為以下任一認證類型定義認證模組:

為這些認證類型之一定義認證模組後,便可以將此模組配置為根據認證程序成敗提供重新導向 URL 以及處理後的 Java 類別規格。

認證類型決定存取的方式

這些方法的每一種,使用者認證都可能通過或失敗。一旦確定,每種方法都會依照此程序。步驟 1 至步驟 3 在成功認證後執行;步驟 4 在認證成功或失敗後均須執行。

  1. Access Manager 會確認所認證的使用者是否在 Directory Server 資料存放區中定義,以及設定檔是否在使用中。

    核心認證模組中的使用者設定檔屬性可以定義為必需動態、隨使用者別名動態變化忽略。認證成功之後,Access Manager 會確認 Directory Server 資料存放區中是否定義了所認證的使用者,並且如果使用者設定檔值為必需,再確認設定檔是否在使用中。這是預設情形。如果使用者設定檔為動態配置認證服務將會在 Directory Server 資料存放區中建立使用者設定檔。若使用者設定檔設定為忽略,將不會完成使用者驗證。

  2. 認證處理後 SPI 的執行完成。

    核心認證模組包含認證處理後類別屬性,其中可能包含認證處理後類別名稱作為其值。AMPostAuthProcessInterface 是處理後介面。它可以在成功或失敗的認證或登出時執行。

  3. 下列特性會加入階段作業記號,或在階段作業記號中更新,而使用者的階段作業會啟動。

    realm。這是使用者歸屬的範圍 DN。

    Principal。這是使用者的 DN。

    Principals。這是使用者已認證過的名稱清單。該特性可以有多個值,值之間以管道符號分隔。

    UserId。這是模組傳回的使用者 DN,在非 LDAP 或成員模組的情況下,為使用者名稱。(所有主體都必須對映到相同的使用者。UserID 為它們所對映之使用者 DN。)


    備註 –

    此特性可為非 DN 值。


    UserToken。這是使用者名稱。(所有主體都必須對映到相同的使用者。UserToken 為它們所對映之使用者名稱。)

    Host。這是用戶端的主機名稱或是 IP 位址。

    authLevel。這是使用者已認證過的最高層級。

    AuthType。這是已認證使用者的認證模組清單,以管道符號分隔 (例如,module1|module2|module3)

    clientType。這是用戶端瀏覽器的裝置類型。

    Locale。這是用戶端的語言環境。

    CharSet。這是為用戶端確定的字元集。

    Role。僅適用於基於角色的認證,此為使用者歸屬的角色。

    Service。僅適用於基於服務的認證,此為使用者歸屬的服務。

  4. 在成功或失敗認證後,Access Manager 會尋找資訊以確定將使用者重新導向至何處。

    URL 重新導向的位置可以是 Access Manager 頁面或 URL。重新導向會依據優先順序進行,Access Manager 會根據認證方法及認證是否已成功或已失敗,依此優先順序尋找重新導向。此順序詳述於下列認證方法章節的 URL 重新導向部分。

URL 重新導向

在認證配置服務中,您可以為成功或失敗的認證指定 URL 重新導向。URL 本身在此服務的登入成功 URL 和登入失敗 URL 屬性中定義。為了啟用 URL 重新導向,您必須將認證配置服務加入您的範圍,使之可用於角色、範圍或使用者的配置。在加入認證配置服務時,請確定您加入的是認證模組,例如 LDAP - REQUIRED。

基於範圍的認證

此認證方法可讓使用者向範圍或子範圍進行認證。此為 Access Manager 的預設認證方法。範圍的認證方法是透過對範圍註冊核心認證模組,並定義範圍認證配置屬性來設定的。

基於範圍的認證登入 URL

藉由定義 realm 參數或 domain 參數,可於使用者介面登入 URL 中指定認證的範圍。由下列項目決定認證請求的範圍,其優先順序為:

  1. domain 參數。

  2. realm 參數。

  3. 管理服務中的 DNS 別名屬性值。

    於呼叫正確的範圍後,將從核心認證服務的範圍認證配置屬性擷取將認證使用者的認證模組。用來指定並啟動基於範圍的認證的登入 URL 為:


    http://server_name.domain_name:port/amserver/UI/Login
    http://server_name.domain_name:port/amserver/UI/Login?domain=domain_name
    http://server_name.domain_name:port/amserver/UI/Login?realm=realm_name

    若無定義的參數,則將由登入 URL 中指定的伺服器主機和網域決定範圍。


備註 –

如果使用者是特定範圍的成員,且經過該範圍認證,接著嘗試向其他範圍認證,則只傳送 realmmodule 兩個參數。例如,如果 User1realmA 的成員,並認證至該範圍,後來想嘗試切換或認證至 realmB,則使用者會收到警告頁面,要求他們使用針對 realmB 指定的模組實例啟動向 realmB 的新認證,或返回到現有經過驗證的 realmA 階段作業。如果使用者認證到 realmB,則只會傳送及利用範圍名稱及模組名稱 (若有指定) 來判斷新的認證程序。


基於範圍的認證重新導向 URL

在基於組織的認證成功或失敗後,Access Manager 會尋找資訊以確定將使用者重新導向至何處。以下為應用程式尋找此資訊的優先順序。

成功的基於範圍的認證重新導向 URL

成功的基於範圍的認證重新導向 URL 是依優先順序檢查下列位置來決定:

  1. 認證模組設定的 URL。

  2. goto 登入 URL 參數設定的 URL。

  3. clientType 自訂檔案中為使用者設定檔 (amUser.xml)iplanet-am-user-success-url 屬性設定的 URL。

  4. clientType 自訂檔案中為使用者角色項目的 iplanet-am-auth-login-success-url 屬性設定的 URL。

  5. clientType 自訂檔案中為使用者範圍項目的 iplanet-am-auth-login-success-url 屬性設定的 URL。

  6. clientType 自訂檔案中為 iplanet-am-auth-login-success-url 屬性做為全域預設值設定的 URL。

  7. 設定於使用者設定檔 (amUser.xml) 之 iplanet-am-user-success-url 屬性中的 URL。

  8. 使用者角色項目之 iplanet-am-auth-login-success-url 屬性中設定的 URL。

  9. 設定於使用者範圍項目之 iplanet-am-auth-login-success-url 屬性中的 URL。

  10. iplanet-am-auth-login-success-url 屬性中設定的 URL,作為全域預設值。

失敗的基於範圍的認證重新導向 URL

失敗的基於範圍的認證重新導向 URL 是以下列順序檢查下列位置來決定:

  1. 認證模組設定的 URL。

  2. gotoOnFail 登入 URL 參數設定的 URL。

  3. clientType 自訂檔案中為使用者項目 (amUser.xml) 的 iplanet-am-user-failure-url 屬性設定的 URL。

  4. clientType 自訂檔案中為使用者角色項目的 iplanet-am-auth-login-failure-url 屬性設定的 URL。

  5. clientType 自訂檔案中為使用者範圍項目的 iplanet-am-auth-login-failure-url 屬性設定的 URL。

  6. clientType 自訂檔案中為 iplanet-am-auth-login-failure-url 屬性做為全域預設值設定的 URL。

  7. 於使用者項目 (amUser.xml) 中設定 iplanet-am-user-failure-url 屬性的 URL。

  8. 針對使用者角色項目之 iplanet-am-auth-login-failure-url 屬性設定的 URL。

  9. 設定使用者範圍項目之 iplanet-am-auth-login-failure-url 屬性的 URL。

  10. 針對 iplanet-am-auth-login-failure-url 屬性設定的 URL,作為全域預設值。

若要配置基於範圍的認證

要為範圍設定認證模組,先為範圍增加核心認證服務。

Procedure若要配置範圍的認證屬性

  1. 瀏覽至您要增加認證鏈接的範圍。

  2. 按一下 [認證] 標籤。

  3. 選取 [預設認證鏈接]。

  4. 由下拉式功能表選取 [管理員認證鏈接]。如果需要管理員的認證模組與一般使用者的認證模組有所不同,則可以使用此屬性。預設認證模組為 LDAP。

  5. 定義了認證鏈接之後,按一下 [儲存]。

基於組織的認證

此認證類型僅可套用至以「舊有」模式安裝的 Access Manager 部署。

此認證方法可讓使用者向一個組織或子組織認證。它是 Access Manager 的預設認證方法。組織的認證方法是透過對組織註冊核心認證模組,並定義組織認證配置屬性來設定的。

基於組織的認證登入 URL

藉由定義 org 參數或 domain 參數,可以在使用者介面登入 URL 中指定認證的組織。由下列項目決定認證請求的組織,優先順序為:

  1. domain 參數。

  2. org 參數。

  3. 管理服務中 DNS 別名 (組織別名) 屬性的值。

    在呼叫正確的組織後,會從核心認證服務的組織認證配置屬性擷取將認證使用者的認證模組。用來指定並啟動基於組織的認證的登入 URL 為:


    http://server_name.domain_name:port/amserver/UI/Login
    http://server_name.domain_name:port/amserver/UI/Login?domain=domain_name
    http://server_name.domain_name:port/amserver/UI/Login?org=org_name

    若無定義的參數,則將由登入 URL 中指定的伺服器主機和網域決定組織。


備註 –

如果使用者是特定組織的成員,且經過該組織認證,接著嘗試向其他組織認證,則只傳送 orgmodule 兩個參數。例如,如果 User1orgA 的成員,並認證至該組織,後來想嘗試切換或認證至 orgB,則使用者會收到警告頁面,要求他們使用針對 orgB 指定的模組實例啟動向 orgB 的新認證,或返回到現有經過驗證的 orgA 階段作業。如果使用者認證到 orgB,則只會傳送及利用組織名稱及模組名稱 (若有指定) 來判斷新的認證程序。


基於組織的認證重新導向 URL

在基於組織的認證成功或失敗後,Access Manager 會尋找資訊以確定將使用者重新導向至何處。以下為應用程式尋找此資訊的優先順序。

成功的基於組織的認證重新導向 URL

成功的基於組織的認證,其重新導向 URL 是以此優先順序檢查下列位置決定的:

  1. 認證模組設定的 URL。

  2. goto 登入 URL 參數設定的 URL。

  3. clientType 自訂檔案中為使用者設定檔 (amUser.xml)iplanet-am-user-success-url 屬性設定的 URL。

  4. clientType 自訂檔案中為使用者角色項目的 iplanet-am-auth-login-success-url 屬性設定的 URL。

  5. clientType 自訂檔案中為使用者組織項目的 iplanet-am-auth-login-success-url 屬性設定的 URL。

  6. clientType 自訂檔案中為 iplanet-am-auth-login-success-url 屬性做為全域預設值設定的 URL。

  7. 設定於使用者設定檔 (amUser.xml) 之 iplanet-am-user-success-url 屬性中的 URL。

  8. 使用者角色項目之 iplanet-am-auth-login-success-url 屬性中設定的 URL。

  9. 使用者組織項目之 iplanet-am-auth-login-success-url 屬性中設定的 URL。

  10. iplanet-am-auth-login-success-url 屬性中設定的 URL,作為全域預設值。

失敗的基於組織的認證重新導向 URL

失敗的基於組織的認證,其重新導向 URL 是以此順序檢查下列位置決定的:

  1. 認證模組設定的 URL。

  2. gotoOnFail 登入 URL 參數設定的 URL。

  3. clientType 自訂檔案中為使用者項目 (amUser.xml) 的 iplanet-am-user-failure-url 屬性設定的 URL。

  4. clientType 自訂檔案中為使用者角色項目的 iplanet-am-auth-login-failure-url 屬性設定的 URL。

  5. clientType 自訂檔案中為使用者組織項目的 iplanet-am-auth-login-failure-url 屬性設定的 URL。

  6. clientType 自訂檔案中為 iplanet-am-auth-login-failure-url 屬性做為全域預設值設定的 URL。

  7. 於使用者項目 (amUser.xml) 中設定 iplanet-am-user-failure-url 屬性的 URL。

  8. 針對使用者角色項目之 iplanet-am-auth-login-failure-url 屬性設定的 URL。

  9. 針對使用者組織項目之 iplanet-am-auth-login-failure-url 屬性設定的 URL。

  10. 針對 iplanet-am-auth-login-failure-url 屬性設定的 URL,作為全域預設值。

若要配置基於組織的認證

要為組織設定認證模組,先為組織加入核心認證服務。

Procedure若要配置組織的認證屬性

  1. 瀏覽至您要增加認證鏈接的組織。

  2. 按一下 [認證] 標籤。

  3. 選取 [預設認證鏈接]。

  4. 由下拉式功能表選取 [管理員認證鏈接]。如果需要管理員的認證模組與一般使用者的認證模組有所不同,則可以使用此屬性。預設認證模組為 LDAP。

  5. 定義了認證鏈接之後,按一下 [儲存]。

基於角色的認證

此認證方法可讓使用者向組織或是子組織之中的角色 (靜態或篩選) 進行認證 。


備註 –

在認證配置服務可做為實例註冊到角色之前,必須先註冊至範圍中。


若要成功認證,使用者必須屬於該角色,並且必須認證到為該角色配置的認證配置服務實例中定義的每個模組。對每個基於角色的認證之實例,可指定下列屬性:

衝突解決層級。這為認證配置服務實例 (針對可能包含相同使用者的不同角色所定義) 設定優先層級。例如,若將 User1 指定給 Role1Role2 兩者,則可對 Role1 設定較高的衝突解決層級;因此當使用者嘗試認證時,Role1 將具有較高的優先順序以處理成功或失敗的重新導向及後認證程序。

認證配置。這會定義針對角色的認證程序配置之認證模組。

登入成功 URL。此項定義在成功認證上重新導向使用者的 URL。

登入失敗 URL。此項定義在失敗認證上重新導向使用者的 URL。

認證處理後類別。此將定義後認證介面。

基於角色的認證登入 URL

透過定義角色參數,可以在使用者介面登入 URL 中指定基於角色的認證。在呼叫正確的角色後,會從為角色定義的認證配置服務實例擷取將認證使用者的認證模組。

用於指定和啟動基於角色的認證的登入 URL 為:

http://server_name.domain_name:port/amserver/UI/Login?role=role_name
http://server_name.domain_name:port/amserver/UI/Login?realm=realm_name&role=role_name

若無配置的範圍參數,則將由登入 URL 中指定的伺服器主機和網域決定角色所屬的範圍。

基於角色的認證重新導向 URL

在基於角色的認證成功或失敗後,Access Manager 會尋找資訊以確定將使用者重新導向至何處。以下為應用程式尋找此資訊的優先順序。

成功的基於角色的認證重新導向 URL

成功的基於角色的認證,其重新導向 URL 是以此順序檢查下列位置決定的:

  1. 認證模組設定的 URL。

  2. goto 登入 URL 參數設定的 URL。

  3. clientType 自訂檔案中為使用者設定檔 (amUser.xml) 的 iplanet-am-user-success-url 屬性設定的 URL。

  4. clientType 自訂檔案中為使用者已認證至的角色之 iplanet-am-auth-login-success-url 屬性設定的 URL。

  5. clientType 自訂檔案中為已認證使用者的另一個角色項目之 iplanet-am-auth-login-success-url 屬性設定的 URL。(如果前一個重新導向 URL 失敗,此選項為備用。)

  6. clientType 自訂檔案中為使用者範圍項目的 iplanet-am-auth-login-success-url 屬性設定的 URL。

  7. clientType 自訂檔案中為 iplanet-am-auth-login-success-url 屬性做為全域預設值設定的 URL。

  8. 設定於使用者設定檔 (amUser.xml) 之 iplanet-am-user-success-url 屬性中的 URL。

  9. 已對其認證使用者的角色之 iplanet-am-auth-login-success-url 屬性中設定的 URL。

  10. 已認證使用者另一個角色項目之 iplanet-am-auth-login-success-url 屬性中設定的 URL。(如果前一個重新導向 URL 失敗,此選項為備用。)

  11. 設定於使用者範圍項目之 iplanet-am-auth-login-success-url 屬性中的 URL。

  12. iplanet-am-auth-login-success-url 屬性中設定的 URL,作為全域預設值。

失敗的基於角色的認證重新導向 URL

失敗的基於角色的認證,其重新導向 URL 是以此順序檢查下列位置決定的:

  1. 認證模組設定的 URL。

  2. goto 登入 URL 參數設定的 URL。

  3. clientType 自訂檔案中為使用者設定檔 (amUser.xml) 的 iplanet-am-user-failure-url 屬性設定的 URL。

  4. clientType 自訂檔案中為使用者已認證至的角色之 iplanet-am-auth-login-failure-url 屬性設定的 URL。

  5. clientType 自訂檔案中為已認證使用者的另一個角色項目之 iplanet-am-auth-login-failure-url 屬性設定的 URL。(如果前一個重新導向 URL 失敗,此選項為備用。)

  6. clientType 自訂檔案中為使用者範圍項目的 iplanet-am-auth-login-failure-url 屬性設定的 URL。

  7. clientType 自訂檔案中為 iplanet-am-auth-login-failure-url 屬性做為全域預設值設定的 URL。

  8. 於使用者設定檔 (amUser.xml)iplanet-am-user-failure-url 屬性中設定的 URL。

  9. 已對其認證使用者的角色之 iplanet-am-auth-login-failure-url 屬性中設定的 URL。

  10. 已認證使用者另一個角色項目之 iplanet-am-auth-login-failure-url 屬性中設定的 URL。(如果前一個重新導向 URL 失敗,此選項為備案。)

  11. 設定於使用者範圍項目之 iplanet-am-auth-login-failure-url 屬性中的 URL。

  12. iplanet-am-auth-login-failure-url 屬性中設定的 URL,作為全域預設值。

Procedure若要配置基於角色的認證

  1. 瀏覽至您將增加認證配置服務的範圍 (或組織)。

  2. 按一下 [主體] 標籤。

  3. 篩選的角色或角色。

  4. 選取要設定認證配置的角色。

  5. 選取您想啟用的「預設認證鏈接」。

  6. 按 [儲存]。


    備註 –

    如果您要建立新的角色,系統不會自動為此角色指定認證配置服務。請確定先選取角色設定檔頁面頂部的 [認證配置服務] 選項,然後再建立角色。

    啟用基於角色的認證後,可以保留 LDAP 認證模組做為預設方式,因為無需配置成員身份。


基於服務的認證

此認證方法允許使用者向在範圍或子範圍中註冊的特定服務或應用程式進行認證。服務配置為認證配置服務中的服務實例並且與一個實例名稱相關。若要成功認證,使用者必須向為服務配置的認證配置服務實例中定義的每個模組進行認證。對每個基於服務的認證之實例,可指定下列屬性:

認證配置。這會定義為服務的認證程序配置之認證模組。

登入成功 URL。此項定義在成功認證上重新導向使用者的 URL。

登入失敗 URL。此項定義在失敗認證上重新導向使用者的 URL。

認證處理後類別。此將定義後認證介面。

基於服務的認證登入 URL

透過定義服務參數,可以在使用者介面登入 URL 中指定基於服務的認證。在呼叫服務後,會從為服務定義的認證配置服務實例擷取將認證使用者的認證模組。

用於指定和啟動基於服務的認證的登入 URL 為:

http://server_name.domain_name:port/amserver/UI/
Login?service=auth-chain-name

http://server_name.domain_name:port/amserver
     /UI/Login?realm=realm_name&service=auth-chain-name

若無配置的 realm 參數,將由登入 URL 中指定的伺服器主機和網域決定範圍。

基於服務的認證重新導向 URL

在基於服務的認證成功或失敗後,Access Manager 會尋找資訊以確定將使用者重新導向至何處。以下為應用程式尋找此資訊的優先順序。

成功的基於服務的認證重新導向 URL

成功的基於服務的認證,其重新導向 URL 是以此順序檢查下列位置決定的:

  1. 認證模組設定的 URL。

  2. goto 登入 URL 參數設定的 URL。

  3. clientType 自訂檔案中為使用者設定檔 (amUser.xml) 的 iplanet-am-user-success-url 屬性設定的 URL。

  4. clientType 自訂檔案中為使用者已認證至的服務之 iplanet-am-auth-login-success-url 屬性設定的 URL。

  5. clientType 自訂檔案中為使用者角色項目的 iplanet-am-auth-login-success-url 屬性設定的 URL。

  6. clientType 自訂檔案中為使用者範圍項目的 iplanet-am-auth-login-success-url 屬性設定的 URL。

  7. clientType 自訂檔案中為 iplanet-am-auth-login-success-url 屬性做為全域預設值設定的 URL。

  8. 設定於使用者設定檔 (amUser.xml) 之 iplanet-am-user-success-url 屬性中的 URL。

  9. 已對其認證使用者的服務之 iplanet-am-auth-login-success-url 屬性中設定的 URL。

  10. 使用者角色項目之 iplanet-am-auth-login-success-url 屬性中設定的 URL。

  11. 設定於使用者範圍項目之 iplanet-am-auth-login-success-url 屬性中的 URL。

  12. iplanet-am-auth-login-success-url 屬性中設定的 URL,作為全域預設值。

失敗的基於服務的認證重新導向 URL

失敗的基於服務的認證,其重新導向是以此順序檢查下列位置決定的:

  1. 認證模組設定的 URL。

  2. goto 登入 URL 參數設定的 URL。

  3. clientType 自訂檔案中為使用者設定檔 (amUser.xml) 的 iplanet-am-user-failure-url 屬性設定的 URL。

  4. clientType 自訂檔案中為使用者已認證至的服務之 iplanet-am-auth-login-failure-url 屬性設定的 URL。

  5. clientType 自訂檔案中為使用者角色項目的 iplanet-am-auth-login-failure-url 屬性設定的 URL。

  6. clientType 自訂檔案中為使用者範圍項目的 iplanet-am-auth-login-failure-url 屬性設定的 URL。

  7. clientType 自訂檔案中為 iplanet-am-auth-login-failure-url 屬性做為全域預設值設定的 URL。

  8. 設定於使用者設定檔 (amUser.xml) 之 iplanet-am-user-failure-url 屬性中的 URL。

  9. 已對其認證使用者的服務之 iplanet-am-auth-login-failure-url 屬性中設定的 URL。

  10. 於使用者角色項目之 iplanet-am-auth-login-failure-url 屬性中設定的 URL。

  11. 設定於使用者範圍項目之 iplanet-am-auth-login-failure-url 屬性中的 URL。

  12. iplanet-am-auth-login-failure-url 屬性中設定的 URL,作為全域預設值。

Procedure若要配置基於服務的認證

加入認證配置服務後,為服務設定認證模組。若要如此,請:

  1. 選擇您要配置基於服務的認證的範圍。

  2. 按一下 [認證] 標籤。

  3. 建立認證模組實例。

  4. 建立認證鏈接。

  5. 按 [儲存]。

  6. 若要存取範圍的基於服務的認證,請輸入下列位址:

    http://server_name.domain_name:port/amserver/UI/Login?realm=realm_name&service=auth-chain-name

基於使用者的認證

此認證方法可讓使用者向特別為使用者配置的認證程序進行認證。該程序被配置為使用者設定檔中使用者認證配置屬性的值。若要成功認證,使用者必須認證到每個定義的模組。

基於使用者的認證登入 URL

透過定義使用者參數,可以在使用者介面登入 URL 中指定基於使用者的認證。在呼叫正確的使用者後,將從為使用者定義的使用者認證配置服務實例擷取將認證使用者的認證模組。

用於指定和啟動基於角色的認證的登入 URL 為:

http://server_name.domain_name:port/amserver/UI/Login?user=user_name
http://server_name.domain_name:port/amserver/UI/Login?org=org_name&user=user_name

若無配置的 realm 參數,則將由登入 URL 中指定的伺服器主機和網域決定角色所屬的範圍。

使用者別名清單屬性

在接收基於使用者的認證請求時,認證服務會先驗證使用者是有效的使用者,然後為其擷取認證配置資料。在有一個以上有效使用者設定檔與使用者登入 URL 參數有關的情形時,所有的設定檔必須對映到指定的使用者。使用者設定檔中的使用者別名屬性 (iplanet-am-user-alias-list ) 是用於定義其他屬於該使用者的設定檔之位置。如果對映失敗,則使用者會受到有效階段作業的拒絕。例外的情況是:若其中一個使用者為頂層管理員,則不會執行使用者對映驗證並給予使用者頂層管理員權限。

基於使用者的認證重新導向 URL

在基於使用者的認證成功或失敗後,Access Manager 會尋找資訊以確定將使用者重新導向至何處。以下為應用程式尋找此資訊的優先順序。

成功的基於使用者的認證重新導向 URL

成功的基於使用者的認證,其重新導向 URL 是以此優先順序檢查下列位置決定的:

  1. 認證模組設定的 URL。

  2. goto 登入 URL 參數設定的 URL。

  3. clientType 自訂檔案中為使用者設定檔 (amUser.xml)iplanet-am-user-success-url 屬性設定的 URL。

  4. clientType 自訂檔案中為使用者角色項目的 iplanet-am-auth-login-success-url 屬性設定的 URL。

  5. clientType 自訂檔案中為使用者範圍項目的 iplanet-am-auth-login-success-url 屬性設定的 URL。

  6. clientType 自訂檔案中為 iplanet-am-auth-login-success-url 屬性做為全域預設值設定的 URL。

  7. 設定於使用者設定檔 (amUser.xml) 之 iplanet-am-user-success-url 屬性中的 URL。

  8. 使用者角色項目之 iplanet-am-auth-login-success-url 屬性中設定的 URL。

  9. 設定於使用者範圍項目之 iplanet-am-auth-login-success-url 屬性中的 URL。

  10. iplanet-am-auth-login-success-url 屬性中設定的 URL,作為全域預設值。

失敗的基於使用者的認證重新導向 URL

失敗的基於使用者的認證,其重新導向 URL 是以此順序檢查下列位置決定的:

  1. 認證模組設定的 URL。

  2. gotoOnFail 登入 URL 參數設定的 URL。

  3. clientType 自訂檔案中為使用者項目 (amUser.xml) 的 iplanet-am-user-failure-url 屬性設定的 URL。

  4. clientType 自訂檔案中為使用者角色項目的 iplanet-am-auth-login-failure-url 屬性設定的 URL。

  5. clientType 自訂檔案中為使用者範圍項目的 iplanet-am-auth-login-failure-url 屬性設定的 URL。

  6. clientType 自訂檔案中為 iplanet-am-auth-login-failure-url 屬性做為全域預設值設定的 URL。

  7. 於使用者項目 (amUser.xml) 中設定 iplanet-am-user-failure-url 屬性的 URL。

  8. 針對使用者角色項目之 iplanet-am-auth-login-failure-url 屬性設定的 URL。

  9. 設定使用者範圍項目之 iplanet-am-auth-login-failure-url 屬性的 URL。

  10. 針對 iplanet-am-auth-login-failure-url 屬性設定的 URL,作為全域預設值。

Procedure若要配置基於使用者的認證

  1. 瀏覽至您要為使用者配置認證的範圍。

  2. 按一下 [主體] 標籤並按一下 [使用者]。

  3. 按一下您要修改的使用者名稱。

    [使用者設定檔] 隨即顯示。


    備註 –

    如果您要建立新的使用者,系統不會自動為此使用者指定認證配置服務。請確定先於服務設定檔中選取 [認證配置] 服務選項,然後再建立使用者。如果未選取此選項,使用者將無法繼承為角色定義的認證配置。


  4. 於 [使用者認證配置] 屬性中,選取您要套用的認證鏈接。

  5. 按 [儲存]。

基於認證層級的認證

每個認證模組均可與其認證層級的整數值相關聯。變更模組 [認證層級] 屬性的對應值,即可指定認證層級。使用者在一個或多個認證模組中經過認證後,較高的認證層級為使用者定義較高的信任層級。

在模組中成功認證使用者後,將在使用者的 SSO 記號上設定認證層級。如果使用者被要求在多個認證模組中認證,並且成功完成認證,則最高的認證層級值將標記在使用者的 SSO 記號上。

若使用者嘗試存取服務,服務可檢查使用者的 SSO 記號中之認證層級,來決定是否允許使用者進行存取。然後,它將重新導向使用者,使之以設定的認證層級通過認證模組。

使用者還可以使用特定的認證層級存取認證模組。例如,某使用者使用以下語法執行登入:

http://hostname:port/deploy_URI/UI/Login?authlevel=
auth_level_value

其認證層級大於或等於 auth_level_value 的所有模組將顯示為認證功能表,供使用者選擇。如果僅找到一個相符的模組,則會直接顯示此認證模組的登入頁面。

此認證方法可讓管理員指定可認證身份的模組的安全層級。每個認證模組都有個別的認證層級屬性,而此屬性的值可以被定義為任何有效的整數。藉由基於認證層級的認證,「認證服務」會顯示一個模組登入頁面,其中有一個功能表,包含認證層級等於或大於登入 URL 參數所指定的值之認證模組。使用者可從現有的清單選取一個模組。一旦使用者選取模組後,剩餘的程序則視基於模組的認證而定。

基於認證層級的認證登入 URL

透過定義 authlevel 參數,可以在使用者介面登入 URL 中指定基於認證層級的認證。在呼叫含有相關模組清單的登入螢幕後,使用者必須選擇一項要認證至的模組。用於指定和啟動基於認證層級的認證登入 URL 為:

http://server_name.domain_name:port/amserver/UI/Login?authlevel=authentication_level

http://server_name.domain_name:port/amserver/UI/
Login?realm=realm_name&authlevel=authentication_level

若無配置的 realm 參數,則將由登入 URL 中指定的伺服器主機和網域決定使用者所屬的範圍。

基於認證層級的認證重新導向 URL

在基於認證層級的認證成功或失敗後,Access Manager 會尋找資訊以確定將使用者重新導向至何處。以下為應用程式尋找此資訊的優先順序。

成功的基於認證層級的認證重新導向 URL

成功的基於認證層級的認證,其重新導向 URL 是以此優先順序檢查下列位置決定的:

  1. 認證模組設定的 URL。

  2. goto 登入 URL 參數設定的 URL。

  3. clientType 自訂檔案中為使用者設定檔 (amUser.xml) 的 iplanet-am-user-success-url 屬性設定的 URL。

  4. clientType 自訂檔案中為使用者角色項目的 iplanet-am-auth-login-success-url 屬性設定的 URL。

  5. clientType 自訂檔案中為使用者範圍項目的 iplanet-am-auth-login-success-url 屬性設定的 URL。

  6. clientType 自訂檔案中為 iplanet-am-auth-login-success-url 屬性做為全域預設值設定的 URL。

  7. 於使用者設定檔 (amUser.xml) 中的 iplanet-am-user-success-url 屬性中設定一個 URL。

  8. 使用者角色項目之 iplanet-am-auth-login-success-url 屬性中設定的 URL。

  9. 設定於使用者範圍項目之 iplanet-am-auth-login-success-url 屬性中的 URL。

  10. iplanet-am-auth-login-success-url 屬性中設定的 URL,作為全域預設值。

失敗的基於認證層級的認證重新導向 URL

失敗的基於認證層級的認證重新導向 URL 是以此順序檢查下列位置決定的:

  1. 認證模組設定的 URL。

  2. gotoOnFail 登入 URL 參數設定的 URL。

  3. clientType 自訂檔案中為使用者項目 (amUser.xml) 的 iplanet-am-user-failure-url 屬性設定的 URL。

  4. clientType 自訂檔案中為使用者角色項目的 iplanet-am-auth-login-failure-url 屬性設定的 URL。

  5. clientType 自訂檔案中為使用者範圍項目的 iplanet-am-auth-login-failure-url 屬性設定的 URL。

  6. clientType 自訂檔案中為 iplanet-am-auth-login-failure-url 屬性做為全域預設值設定的 URL。

  7. 於使用者項目 (amUser.xml) 中設定 iplanet-am-user-failure-url 屬性的 URL。

  8. 針對使用者角色項目之 iplanet-am-auth-login-failure-url 屬性設定的 URL。

  9. 設定使用者範圍項目之 iplanet-am-auth-login-failure-url 屬性的 URL。

  10. 針對 iplanet-am-auth-login-failure-url 屬性設定的 URL,作為全域預設值。

基於模組的認證

使用者可以使用以下語法存取特定認證模組:

http://hostname:port/deploy_URI/UI/Login?module=
module_name

存取認證模組之前,必須先修改核心認證服務屬性 [範圍認證模組] ,使之包括此認證模組名稱。如果該屬性中未包括此認證模組名稱,使用者嘗試認證時,系統將顯示 [認證模組被拒絕] 頁面。

此認證方法可讓使用者指定進行認證的模組。指定的模組必須註冊至使用者存取的範圍或子範圍。這是在範圍核心認證服務的範圍認證模組屬性中配置。在接收此項基於模組的認證請求時,認證服務會驗證模組是否依據說明正確配置,如果未定義模組,使用者會被拒絕存取。

基於模組的認證登入 URL

透過定義模組參數,可以在使用者介面登入 URL 中指定基於模組的認證。用於指定和啟動基於模組的認證登入 URL 為:

http://server_name.domain_name:port/amserver/UI/Login?module=authentication_module_name
http://server_name.domain_name:port/amserver/UI/
Login?org=org_name&module=authentication_module_name

若無配置的 realm 參數,則將由登入 URL 中指定的伺服器主機和網域決定使用者所屬的範圍。

基於模組的認證重新導向 URL

在基於模組的認證成功或失敗後,Access Manager 會尋找資訊以確定將使用者重新導向至何處。以下為應用程式尋找此資訊的優先順序。

成功的基於模組的認證重新導向 URL

成功的基於模組的認證,其重新導向 URL 是以此優先順序檢查下列位置決定的:

  1. 認證模組設定的 URL。

  2. goto 登入 URL 參數設定的 URL。

  3. clientType 自訂檔案中為使用者設定檔 (amUser.xml) 的 iplanet-am-user-success-url 屬性設定的 URL。

  4. clientType 自訂檔案中為使用者角色項目的 iplanet-am-auth-login-success-url 屬性設定的 URL。

  5. clientType 自訂檔案中為使用者範圍項目的 iplanet-am-auth-login-success-url 屬性設定的 URL。

  6. clientType 自訂檔案中為 iplanet-am-auth-login-success-url 屬性做為全域預設值設定的 URL。

  7. 於使用者設定檔 (amUser.xml) 中的 iplanet-am-user-success-url 屬性中設定一個 URL。

  8. 使用者角色項目之 iplanet-am-auth-login-success-url 屬性中設定的 URL。

  9. 設定於使用者範圍項目之 iplanet-am-auth-login-success-url 屬性中的 URL。

  10. iplanet-am-auth-login-success-url 屬性中設定的 URL,作為全域預設值。

失敗的基於模組的認證重新導向 URL

失敗的基於模組的認證,其重新導向 URL 是以此順序檢查下列位置決定的:

  1. 認證模組設定的 URL。

  2. gotoOnFail 登入 URL 參數設定的 URL。

  3. clientType 自訂檔案中為使用者項目 (amUser.xml) 的 iplanet-am-user-failure-url 屬性設定的 URL。

  4. clientType 自訂檔案中為使用者角色項目的 iplanet-am-auth-login-failure-url 屬性設定的 URL。

  5. clientType 自訂檔案中為使用者範圍項目的 iplanet-am-auth-login-failure-url 屬性設定的 URL。

  6. clientType 自訂檔案中為 iplanet-am-auth-login-failure-url 屬性做為全域預設值設定的 URL。

  7. 針對使用者角色項目之 iplanet-am-auth-login-failure-url 屬性設定的 URL。

  8. 設定使用者範圍項目之 iplanet-am-auth-login-failure-url 屬性的 URL。

  9. 針對 iplanet-am-auth-login-failure-url 屬性設定的 URL,作為全域預設值。

使用者介面登入 URL

輸入登入 URL 到網路瀏覽器的 [位置列] 可存取 [認證服務] 使用者介面。此 URL 為:

http://AccessManager-root/.domain_name:port /service_deploy_uri /UI/Login


備註 –

於安裝期間,將 service_deploy_uri 配置為 amserver。本文件中將使用此預設的服務部署 URI。


使用者介面登入 URL 也可以附加登入 URL 參數,以定義特定的認證方法或是成功/失敗的認證重新導向 URL。

登入 URL 參數

URL 參數是附加到 URL 尾端的「名稱/值」對。參數以問號開頭 (?),形式為 name=value。一個登入 URL 可以包含多個參數,例如:

http://server_name.domain_name:port/amserver/UI/
Login?module=LDAP&locale=ja&goto=http://www.sun.com

如果有一個或多個參數,會以 & 符號做為分隔符號。不過組合必須遵守下列指導方針:

下節說明各個參數,這些參數在附加到使用者介面登入 URL 並鍵入網路瀏覽器的位置列時,可達到多種認證功能。


備註 –

若要簡化認證 URL 和參數以便在範圍內分發,管理員可配置一個具備簡單 URL 的 HTML 網頁,該頁面可連結到更複雜的登入 URL 以獲取所有已配置的認證方法。


goto 參數

goto=successful_authentication_URL 參數會覆寫認證配置服務之 [登入成功 URL] 中定義的值。當成功認證時,會連結到指定的 URL。goto=logout_URL 參數也可用於在使用者登出時連結到指定的 URL。以下是成功認證 URL 的範例:

http://server_name.domain_name:port/amserver/
UI/Login?goto=http://www.sun.com/homepage.html

goto 登出 URL 的範例:

http://server_name.domain_name:port/amserver/
UI/Logout?goto=http://www.sun.com/logout.html.

備註 –

Access Manager 使用優先順序尋找成功的認證重新導向 URL。因為這些重新導向 URL 及其順序是以認證方法為基礎,此順序 (及相關資訊) 於「認證類型」一節中有詳細說明。


gotoOnFail 參數

gotoOnFail=failed_authentication_URL 參數會覆寫認證配置服務之 [登入失敗 URL] 中定義的值。如果使用者認證失敗,將會連結到指定的 URL。gotoOnFail URL 的範例為:http://server_name.domain_name:port /amserver/UI/Login?gotoOnFail=http://www.sun.com/auth_fail.html


備註 –

Access Manager 使用優先順序尋找失敗的認證重新導向 URL。因為這些重新導向 URL 及其順序是以認證方法為基礎,此順序 (及相關資訊) 於「認證類型」一節中有詳細說明。


realm 參數

realm=realmName 參數允許使用者做為指定範圍中的使用者進行認證。


備註 –

當使用者嘗試以 realm 參數認證時,若其不是指定範圍的成員,就會收到錯誤訊息。如果以下全部皆為 TRUE,可以於 Directory Server 中動態建立使用者設定檔:

使用這項參數,將顯示正確的登入頁 (根據範圍及其語言環境設定)。若未設定此參數,預設值為頂層範圍。例如:realm URL 可以是:

http://server_name.domain_name:port/amserver/UI/Login?realm=sun

org 參數

org=orgName 參數可讓使用者做為指定組織中的使用者進行認證。


備註 –

當使用者嘗試以 org 參數認證時,若其不是指定組織的成員,就會收到錯誤訊息。如果以下全部皆為 TRUE,可以於 Directory Server 中動態建立使用者設定檔:

使用這項參數,將顯示正確的登入頁 (根據組織及其語言環境設定)。如果未設定此參數,預設值為頂層組織。例如:org URL 可以是:

http://server_name.domain_name:port/amserver/UI/Login?org=sun

user 參數

user=userName 參數基於使用者設定檔之 [使用者認證配置] 屬性中配置的模組進行強制認證。例如,可以將一個使用者的設定檔配置為使用「憑證」模組進行認證,同時可以將另一個使用者配置為使用 LDAP 模組進行認證。增加此參數會將使用者傳送到其配置的認證程序,而非為其組織配置的方法。例如:

http://server_name.domain_name:port/amserver/UI/Login?user=jsmith

role 參數

role=roleName 參數會將使用者傳送到為指定角色配置的認證程序。尚未成為指定角色成員的使用者如果嘗試用此參數進行認證,會收到一條錯誤訊息。例如:

http://server_name.domain_name:port/amserver/UI/Login?role=manager.

locale 參數

Access Manager 具有為認證程序及主控台本身顯示本土化螢幕 (譯為非英語的語言) 的功能。locale=localeName 參數指定的語言環境較任何其他定義的語言環境的優先權更高。在下列位置中按指定順序搜尋配置後,用戶端會顯示登入語言環境:

  1. 登入 URL 中的語言環境參數值

    locale=localeName 參數的值優先於所有其他定義的語言環境。

  2. 使用者設定檔中定義的語言環境

    如果沒有 URL 參數,會根據在使用者設定檔的 [使用者偏好的語言] 屬性中設定的值顯示語言環境。

  3. 在標頭中定義的語言環境

    語言環境由 Web 瀏覽器設定。

  4. [核心認證服務] 中定義的語言環境

    這是在 [核心認證] 模組中 [預設認證語言環境] 屬性的值。

  5. 在 [平台服務] 中定義的語言環境

    這是在 [平台] 服務中 [平台語言環境] 屬性的值。

作業系統語言環境

由此等級順序得到的語言環境儲存於使用者的階段作業記號中,Access Manager 僅用它來載入本土化的認證模組。成功認證後,會使用於使用者設定檔之「使用者偏好的語言」屬性中定義的語言環境。如果都沒有設定,將繼續使用認證所使用的語言環境。例如:


http://server_name.domain_name:port/amserver/UI/Login?locale=ja.

備註 –

如何本土化螢幕文字和錯誤訊息的資訊可於 Access Manager 中找到。


module 參數

module=moduleName 參數允許經由指定的認證模組進行認證。可指定任何模組,但模組必須首先在使用者所屬範圍下註冊且做為「核心認證」模組中該範圍的認證模組之一被選取。例如:

http://server_name.domain_name:port/amserver/UI/Login?module=Unix.

備註 –

在 URL 參數中使用認證模組名稱時要區分大小寫。


service 參數

service=serviceName 參數允許經由服務已配置的認證方案來認證使用者。使用 [認證配置] 服務可以為不同的服務配置不同的認證方案。例如,線上薪資應用程式可能需要使用更安全「憑證認證」模組進行認證,而範圍的員工目錄應用程式可能只需要「LDAP 認證」模組。可以為這些服務中的每一個服務配置並命名認證方案。例如:

http://server_name.domain_name:port/amserver/UI/Login?service=sv1.

備註 –

「認證配置」服務用來為基於服務的認證定義方案。


arg 參數

arg=newsession 參數用於結束使用者的目前階段作業,並開始新的階段作業。認證服務會透過一個請求銷毀使用者現有的階段作業記號,並執行新的登入。此選項通常用於 [匿名認證] 模組中。使用者先以匿名階段作業認證,然後點一下註冊或登入連結。例如:

http://server_name.domain_name:port/amserver/UI/Login?arg=newsession。

authlevel 參數

authlevel=value 參數會指示認證服務呼叫認證層級等於或大於指定認證層級值的模組。每個認證模組定義有一個固定的整數認證層級。例如:

http://server_name.domain_name:port/amserver/UI/Login?authlevel=1.

備註 –

認證層級是於每個模組的特定設定檔中設定。


domain 參數

此參數可讓使用者登入到識別為指定網域的範圍。指定的網域必須符合定義於範圍設定檔之網域名稱屬性中的值。例如:

http://server_name.domain_name:port/amserver/UI/Login?domain=sun.com。

備註 –

當使用者嘗試以 domain 參數認證時,若其不是指定網域/範圍的成員,就會收到錯誤訊息。如果以下各點全部皆為 TRUE,可以於 Directory Server 中動態建立使用者設定檔:


iPSPCookie 參數

iPSPCookie=yes 參數可讓使用者以永久性的 cookie 登入。永久性的 cookie 在瀏覽器視窗關閉後仍然繼續存在。要使用此參數,使用者登入的範圍必須在其核心認證模組中啟用永久性 Cookie。一旦使用者認證及瀏覽器關閉,使用者可以新的瀏覽器階段作業登入並被導向至控制台,而不需重新認證。在核心服務的 [永久性 Cookie 最長時間] 屬性指定之時間消逝前,該功能都有效。例如:

http://server_name.domain_name:port/amserver/UI/Login?org=example&iPSPCookie=yes

IDTokenN 參數

此參數可讓使用者藉由 URL 或 HTML 表單傳送認證憑證。利用 IDTokenN= value 參數,使用者毋須存取認證服務使用者介面便可被認證。此程序稱為零頁登入。零頁登入只適用於使用單一登入頁的認證模組。IDToken0、IDToken1、 ...、IDTokenN 的值會對映至認證模組的登入頁面之欄位。例如,LDAP 認證模組可能將 IDToken1 用於 userID 資訊、將 IDToken2 用於密碼資訊。在這種情形下,LDAP 模組 IDTokenN URL 將是:

http://server_name.domain_name:port/amserver/UI/
Login?module=LDAP&IDToken1=userID&IDToken2=password

(若預設認證模組為 LDAP,就可以省略 module=LDAP。)

就匿名認證而言,登入 URL 參數會是:

http://server_name.domain_name:port/amserver/UI/Login?module=Anonymous&IDToken1=anonymousUserID。

備註 –

名稱為 Login.Token0Login.Token1...Login.TokenN 的記號 (來自之前的版本) 仍受支援,但將於未來版本中停用。建議您使用新的 IDTokenN 參數。


帳號封鎖

認證服務提供一項功能,在認證失敗次數超過某個特定值後將封鎖使用者。這項功能預設為關閉,但可以使用 Access Manager 主控台啟用。


備註 –

只有拋出 [密碼無效] 異常的模組可以利用帳號封鎖功能。


核心認證服務包含用於啟用和自訂此功能的屬性,包括但不限於:

有關任何帳號封鎖的電子郵件通知都會發送給管理員。帳號封鎖活動也會被記錄。


備註 –

有關在 Microsoft® Windows 2000 作業系統上使用此功能的特殊說明,請參閱附錄 A「AMConfig.properties 檔案」中的「簡易郵件傳輸協定 (SMTP)」。


Access Manager 支援兩種帳號封鎖類型:實體封鎖與記憶體封鎖,定義於下列章節中。

實體封鎖

這是 Access Manager 的預設封鎖運作方式。藉由變更使用者設定檔中的 LDAP 屬性為非使用中,啟動封鎖。封鎖屬性名稱屬性定義用於封鎖的 LDAP 屬性。


備註 –

以別名為名稱的使用者是藉由配置 LDAP 設定檔中使用者別名清單屬性 (amUser.xml 中的 iplanet-am-user-alias-list) ,以對映至現有 LDAP 使用者設定檔的使用者。藉由增加 iplanet-am-user-alias-list 至核心認證服務之 [別名搜尋屬性名稱] 欄位,可驗證以別名為名稱的使用者。也就是說,如果一個別名使用者被封鎖,其對映至的實際 LDAP 設定檔也將被封鎖。這只適用於使用 LDAP 和成員身份之外的認證模組的實體封鎖。


記憶體封鎖

登入失敗封鎖持續時間屬性的值變更為大於零,可啟用記憶體封鎖。啟用後,使用者帳號會依指定分鐘數封鎖於記憶體中。經過該段時間後,將解除封鎖帳號。以下是使用記憶體封鎖功能時,一些特殊的考量:


備註 –

如果在使用者設定檔中設定了失敗的 URL 屬性,則封鎖警告訊息和指出使用者帳號已遭封鎖的訊息都不會顯示,系統會將使用者重新導向至定義的 URL。


認證服務容錯移轉

若主伺服器因為硬體或軟體問題失敗或伺服器暫時關機,則認證服務容錯移轉會自動將認證請求重新導向至輔助伺服器中。

必須先在可使用認證服務的實例上建立認證環境。如果此 Access Manager 實例無法使用,則可透過認證容錯移轉機制在不同的 Access Manager 實例上建立認證環境。認證內容會依下列順序檢查伺服器的可用性:

  1. 認證服務 URL 會傳到 AuthContext API。例如:


    AuthContext(orgName, url)

    如果使用此 API,僅使用 URL 參照的伺服器。即使伺服器上可以使用認證服務,也不會發生容錯移轉。

  2. 認證環境將檢查定義於 AMConfig.properties 檔案的 com.iplanet.am.server* 屬性中的伺服器。

  3. 如果步驟 2 失敗,則認證環境會從可提供命名服務的伺服器查詢平台清單。在共用一個 Directory Server 實例安裝多個 Access Manager 實例時 (通常是為容錯移轉),會自動建立此平台清單。

    例如,如果平台清單包含 Server1Server2Server3 的 URL,則認證環境會在 Server1Server2Server3 間循環,直到成功認證至其中一個為止。

    平台清單有時不是從同一個伺服器取得,其視命名服務的可用性而異。另外,命名服務的容錯移轉可能先發生。多重命名服務 URL 指定於 com.iplanet.am.naming.url 特性中 (在 AMConfing.properties 中)。第一個可用的命名服務 URL 會用來辨識伺服器,該伺服器包含將發生容錯移轉的伺服器 (位於其平台伺服器清單中) 的清單。

完全合格的網域名稱對映

完全合格的網域名稱 (Fully Qualified Domain Name, FQDN) 對映可讓認證服務在使用者輸入錯誤的 URL 時採取修正行動 (例如指定部分的主機名稱或 IP 位址以存取受保護的資源)。FQDN 對映是藉由修改 AMConfig.properties 檔案中的 com.sun.identity.server.fqdnMap 屬性來啟用。指定此特性的格式為:

com.sun.identity.server.fqdnMap[invalid-name ]=valid-name

invalid-name 是使用者可能鍵入的無效 FQDN 主機名稱,valid-name 則為篩選器將重新導向使用者至的實際主機名稱。只要符合規定的要求,可以指定任意數量的對映 (如程式碼範例 1-1 所示)。若未設定此特性,使用者將被傳送到在 com.iplanet.am.server.host=server_name 特性 (在 AMConfig.properties 檔案中) 中配置的預設伺服器名稱。


範例 4–1 AMConfig.properties 中的 FQDN 對映屬性


com.sun.identity.server.fqdnMap[isserver]=isserver.mydomain.com
com.sun.identity.server.fqdnMap[isserver.mydomain]=isserver.mydomain.com
com.sun.identity.server.fqdnMap[
            IP address]=isserver.mydomain.com


         

FQDN 對映的可能用法

此特性可用於為多個主機名稱建立對映,例如在伺服器上的應用程式可由多個主機名稱存取時便可使用此特性。此特性亦可用於配置 Access Manager,使其不對某些 URL 採取修正動作。例如,若使用 IP 位址存取應用程式的使用者不需要重新導向時,可藉由指定對映項目來實作此功能,例如:

com.sun.identity.server.fqdnMap[IP address ]=IP address


備註 –

如果定義了一個以上的對映,請確定在無效的 FQDN 名稱中沒有重疊值。如果沒有這麼做,可能會導致應用程式無法存取。


永久性 Cookie

永久性 cookie 將於 Web 瀏覽器關閉後仍持續存在,使用者可以新的瀏覽器階段作業登入而不必重新認證。cookie 的名稱由 AMConfig.propertiescom.iplanet.am.pcookie.name 特性所定義;預設值為 DProPCookie。cookie 值是一個 3DES 加密的字串,包含使用者 DN、範圍名稱、認證模組名稱、最長階段作業時間、閒置時間和快取時間。

Procedure若要啟用永久性 Cookie

  1. 開啟核心認證模組中的永久性 Cookie 模式

  2. 配置核心認證模組中永久性 Cookie 最長時間屬性之時間值。

  3. 將 iPSPCookie 參數 (值為 yes) 附加到使用者介面登入 URL。

    一旦使用者使用此 URL 進行認證,若瀏覽器關閉,其可開啟一個新的瀏覽器視窗並重新導向至主控台,而不需重新認證。這項作業的運作時間為直到步驟 2 中定義的時間結束為止。

    可以使用認證 SPI 方法開啟永久性 Cookie 模式:

    AMLoginModule.setPersistentCookieOn()

「舊有」模式的多重 LDAP 認證模組配置

做為一種容錯移轉形式,或當 Access Manager 主控台僅提供一個值欄位時可用來配置屬性的多個值,管理員可於一個範圍之下定義多重 LDAP 認證模組配置。儘管這些附加配置不會顯示在主控台中,但它們仍可在找不到用於請求使用者認證的初始搜尋時與主配置配合使用。例如,一個範圍可於兩種不同網域中透過 LDAP 伺服器為認證定義搜尋,或於一個網域中配置多重使用者命名屬性。就後者而言,在主控台中只有一個文字欄位,如果使用主要搜尋條件找不到使用者,LDAP 模組將會使用次要範圍搜尋。依照下列步驟配置其他的 LDAP 配置。

Procedure若要增加其他的 LDAP 配置

  1. 撰寫一個 XML 檔案,其中包含完整屬性集和次要 (或第三) LDAP 認證配置需要的新值。

    檢視 amAuthLDAP.xml (位於 etc/opt/SUNWam/config/xml) 以參照可用的屬性。但於此步驟中建立的 XML 檔案是以 amadmin.dtd 為基礎,不同於 amAuthLDAP.xml。可以為此檔案定義任何或是所有屬性。程式碼範例 1-2 是子配置檔案的範例,其包含對 LDAP 認證配置可用的所有屬性之值。


    <?xml version="1.0" encoding="ISO-8859-1"?>
    <!--
      Copyright (c) 2002 Sun Microsystems, Inc. All rights reserved.
      Use is subject to license terms.
    -->
    <!DOCTYPE Requests
        PUBLIC "-//iPlanet//Sun ONE Access Manager 6.0 Admin CLI DTD//EN"
        "jar://com/iplanet/am/admin/cli/amAdmin.dtd"
    >
    <!--
      Before adding subConfiguration load the schema with
    GlobalConfiguration defined and replace corresponding
     serviceName and subConfigID in this sample file OR load
     serviceConfigurationRequests.xml before loading this sample
    -->
    <Requests>
    <realmRequests DN="dc=iplanet,dc=com">
        <AddSubConfiguration subConfigName = "ssc"
            subConfigId = "serverconfig"
            priority = "0" serviceName="iPlanetAMAuthLDAPService">
    
                  <AttributeValuePair>
                <Attribute name="iplanet-am-auth-ldap-server"/>
                <Value>vbrao.red.iplanet.com:389</Value>
            </AttributeValuePair>
            <AttributeValuePair>
                <Attribute name="iplanet-am-auth-ldap-base-dn"/>
                <Value>dc=iplanet,dc=com</Value>
            </AttributeValuePair>
            <AttributeValuePair>
                <Attribute name="planet-am-auth-ldap-bind-dn"/>
                <Value>cn=amldapuser,ou=DSAME Users,dc=iplanet,dc=com</Value>
            </AttributeValuePair>
            <AttributeValuePair>
                <Attribute name="iplanet-am-auth-ldap-bind-passwd"/>
                <Value>
                      plain text password</Value>
            </AttributeValuePair>
            <AttributeValuePair>
                <Attribute name="iplanet-am-auth-ldap-user-naming-attribute"/>
                <Value>uid</Value>
            </AttributeValuePair>
            <AttributeValuePair>
                <Attribute name="iplanet-am-auth-ldap-user-search-attributes"/>
                <Value>uid</Value>
            </AttributeValuePair>
            <AttributeValuePair>
                <Attribute name="iplanet-am-auth-ldap-search-scope"/>
                <Value>SUBTREE</Value>
            </AttributeValuePair>
            <AttributeValuePair>
                <Attribute name="iplanet-am-auth-ldap-ssl-enabled"/>
                <Value>false</Value>
            </AttributeValuePair>
            <AttributeValuePair>
                <Attribute name="iplanet-am-auth-ldap-return-user-dn"/>
                <Value>true</Value>
            </AttributeValuePair>
            <AttributeValuePair>
                <Attribute name="iplanet-am-auth-ldap-auth-level"/>
                <Value>0</Value>
            </AttributeValuePair>
            <AttributeValuePair>
                <Attribute name="iplanet-am-auth-ldap-server-check"/>
                <Value>15</Value>
            </AttributeValuePair>
    
        </AddSubConfiguration>
    
    </realmRequests>
    </Requests>
    
    
                   
  2. 複製純文字密碼做為建立於步驟 1 之 XML 檔案中 iplanet-am-auth-ldap-bind-passwd 的值。

    此屬性的值於程式碼範例中以粗體顯示。

  3. 使用 amadmin 指令行工具載入 XML 檔案。


    ./amadmin -u amadmin -w administrator_password -v -t name_of_XML_file.

    請注意次要 LDAP 配置不會顯示並且不能使用主控台修改。


    提示 –

    這是多重 LDAP 配置可用的範例。請參閱 /AccessManager-base/SUNWam/samples/admin/cli/bulk-ops/ 中的 serviceAddMultipleLDAPConfigurationRequests.xml 指令行範本。可於 /AccesManager-base/SUNWam/samples/admin/cli/Readme.html 中取得說明


階段作業升級

認證服務可讓您根據相同使用者對單一範圍第二次執行的成功認證對有效的階段作業記號進行升級。若具有有效階段作業記號的使用者試圖認證到由目前範圍保護的資源,且第二次認證請求成功,階段作業會根據新認證使用新特性更新。若認證失敗,則將傳回使用者目前的階段作業而不進行更新。 若具有有效階段作業的使用者試圖認證到由不同範圍保護的資源,使用者將收到詢問其是否要認證到新組織的訊息。使用者在此時可以維持目前階段作業,或是嘗試認證到新範圍。成功的認證將導致舊階段作業被銷毀,並建立新的階段作業。

在階段作業升級期間,如果登入頁逾時,將會重新導向到原始的成功 URL。逾時值的決定是基於:

com.iplanet.am.invalidMaxSessionTimeoutiplanet-am-max-session-time 的值應大於頁面逾時值,否則階段作業升級期間的有效階段作業資訊將會遺失,而且到前一個成功 URL 的 URL 重新導向將會失敗。

驗證外掛程式介面

管理員可以撰寫適合其範圍的使用者名稱或是密碼驗證邏輯,並外掛至認證服務中。(這項功能只有 LDAP 和成員身份認證模組支援。)認證使用者或變更密碼之前,Access Manager 將呼叫此外掛程式。如果驗證成功,認證將繼續;如果失敗,將拋出認證失敗頁面。外掛程式會延伸 com.iplanet.am.sdk.AMUserPasswordValidation 類別,其為「服務管理 SDK」的一部分。關於此 SDK 的資訊可於 Access Manager Javadocs 的 com.iplanet.am.sdk 套裝軟體中取得。

Procedure若要撰寫與配置驗證外掛程式

  1. 新的外掛程式類別將延伸 com.iplanet.am.sdk. AMUserPasswordValidation 類別,並實作 validateUserID()validatePassword() 方法。如果驗證失敗,應該會?出 AMException

  2. 編譯外掛程式並將 .class 檔案置於想要的位置中。更新類別路徑,以便在執行階段期間可由 Access Manager 存取。

  3. 以頂層管理員的身份登入 Access Manager 主控台。按一下 [配置] 標籤,然後移至管理服務的屬性。於 [使用者 ID 和密碼驗證外掛程式類別] 欄位中鍵入外掛程式類別的名稱 (包括套裝軟體名稱)。

  4. 登出並登入。

JAAS 共用狀態

共用狀態提供認證模組間使用者和密碼的共用。為每個認證模組定義的選項用於:

在失敗時,模組會提示需要的憑證。在認證失敗後,模組停止執行,或清除登出共用狀態。

啟用 JAAS 共用狀態

若要配置 JAAS 共用狀態:

失敗時,認證模組會根據 JASS 規格中建議的 tryFirstPass 選項運作方式提示用戶提供所需的憑證。

JAAS 共用狀態儲存選項

若要配置 JAAS 共用狀態儲存選項:

在確定、中斷或登出後,將清除共用狀態。