Sun Java System Access Manager 7.1 管理指南

第 1 部分 存取控制

這是「Sun Java System Access ManagerTM 7.1 管理指南」的第一部分。「存取控制」介面提供建立與管理認證與授權服務的方法,以保護並管理基於範圍的資源。當企業使用者請求資訊時,Access Manager 將驗證使用者識別並授權使用者存取其所請求的特定資源。該部分包含以下章節:

第 1 章 Access Manager 主控台

Access Manager 主控台為 Web 介面,允許具不同層級存取權限的管理員執行作業。比如建立範圍和組織、在範圍中建立使用者或從範圍刪除使用者以及建立用以保護和限制對範圍資源之存取的強制策略。此外,管理員可檢視和終止目前的使用者階段作業,管理其聯合配置 (建立、刪除和修改認證網域與提供者)。另一方面,不具管理權限的使用者可以管理個人資訊 (名稱、電子郵件位址、電話號碼等)、變更密碼、訂閱和取消訂閱群組以及檢視其角色。Access Manager 主控台有兩個主要檢視:

管理檢視

當具有管理角色的使用者通過 Access Manager 認證後,預設檢視為 [管理] 檢視。在此檢視中,管理員可執行大部份與 Access Manager 相關的管理工作。Access Manager 可用兩種不同的模式安裝;「範圍」模式和「舊有」模式。每個模式都有自己的主控台。如需有關「範圍」和「舊有」模式的更多資訊,請參閱「Sun Java System Access Manager 7.1 Technical Overview」


備註 –

如果您以「範圍」模式安裝 Access Manager 7.1,則無法回復到「舊有」模式。如果您以「舊有」模式安裝 Access Manager,則可使用 amadmin 指令切換為「範圍」模式。如需更多資訊,請參閱「Access Manager Administration Reference」中的「Changing from Legacy Mode to Realm Mode」。


範圍模式主控台

管理員可在「範圍」模式中使用管理主控台來管理基於範圍的存取控制、預設服務配置、Web 服務和聯合。若要存取管理員登入畫面,請在您的瀏覽器中使用以下位址語法:

protocol://servername /amserver/UI/Login

protocol 可為 http 或 https,依您的部署而定。

圖 1–1 範圍模式管理檢視

Access Manager 主控台,「範圍」模式管理檢視

舊有模式主控台

「舊有模式」主控台是以 Access Manager 6.3 的架構為基礎。此舊有 Access Manager 架構使用 Sun Java System Directory Server 內的 LDAP 目錄資訊樹狀結構 (DIT) 。在「舊有」模式中,使用者資訊和存取控制資訊都是儲存在 LDAP 組織中。選擇「舊有」模式時,LDAP 組織相當於存取控制範圍。範圍資訊會整合在 LDAP 組織中。在「舊有」模式中,[目錄管理] 標籤可用於基於 Access Manager 的識別管理。

若要存取管理員登入畫面,請在您的瀏覽器中使用以下位址語法:

protocol://servername /amserver/console

protocol 可為 http 或 https,依您的部署而定。

圖 1–2 舊有模式管理檢視

Access Manager 主控台,舊有模式管理檢視

舊有模式 6.3 主控台

Access Manager 6.3 的部份功能不能在 Access Manager 7.1 主控台中使用。因此,管理員可透過 7.1 舊有部署登入 6.3 主控台。若 Access Manager 是建立在 Sun Java System Portal Server 或其他需使用 Sun Java System Directory Server 做為中央識別儲存庫的 Sun Java System 通訊產品上時,通常是使用此主控台。其他功能,如「委託管理」和「服務類別」,只能透過此主控台存取。


備註 –

請勿互換使用 6.3 和 7.1 舊有模式主控台。


若要存取 6.3 主控台,請在您的瀏覽器中使用以下位址語法:

protocol://servername /amconsole

protocol 可為 http 或 https,依您的部署而定。

圖 1–3 舊有 6.3 主控台

Access Manager 舊有模式 6.3 主控台

使用者設定檔檢視

沒有指定管理角色的使用者認證 Access Manager 時,預設的檢視為使用者本身的使用者設定檔。[使用者設定檔] 檢視可從「範圍」或「舊有」模式存取。使用者必須在 [登入] 頁面輸入使用者自己的使用者名稱和密碼才可存取此檢視。

在此檢視中,使用者可以修改其個人設定檔的特定屬性值。這包括但不僅限於名稱、家庭住址和密碼。[使用者設定檔] 檢視中顯示的屬性可以延伸。

圖 1–4 使用者設定檔檢視

Access Manager 主控台 — 使用者設定檔檢視

第 2 章 管理範圍

存取控制範圍是一組可與使用者或使用者群組關聯的認證特性與授權策略。範圍資料儲存於一個專用資訊樹狀結構中,該樹狀結構由 Access Manager 在您指定的資料存放區中建立。Access Manager 架構於 Access Manager 資訊樹狀結構中聚集每一個範圍中的策略與特性。依預設,Access Manager 會將 Access Manager 資訊樹狀結構做為特殊分支插入到 Sun Java Enterprise System Directory Server 中,但使用者資料除外。當使用任何 LDAPv3 資料庫時,您可以使用存取控制範圍。

如需有關範圍的更多資訊,請參閱「Sun Java System Access Manager 7.1 Technical Overview」

於 [範圍] 標籤中,您可為存取控制配置下列特性:

建立及管理範圍

本節描述如何建立及管理範圍。

Procedure建立新的範圍

  1. 從 [存取控制] 標籤下的 [範圍] 清單中選取 [新增]。

  2. 定義下列一般屬性:

    名稱

    輸入範圍的名稱。

    父系

    定義您正在建立的範圍位置。選取新範圍將存在處的父系範圍。

  3. 定義下列範圍屬性:

    範圍狀態

    選擇 [使用中] 或 [非使用中] 狀態。預設值為 [使用中]。在範圍存在期間,可以透過選取 [特性] 圖示隨時變更該狀態。登入時,選擇 [非使用中] 以停用使用者存取。

    範圍/DNS 別名

    允許增加範圍 DNS 名稱的別名。此屬性僅接受「實際的」網域別名 (不允許使用隨機字串)。

  4. 按一下 [確定] 以儲存,或按一下 [取消] 以返回前一個頁面。

一般特性

[一般特性] 頁面顯示範圍的基本屬性。若要修改這些特性,於 [存取控制] 標籤之下按一下 [範圍名稱] 清單中的範圍。然後,編輯下列特性:

範圍狀態

選擇 [使用中] 或 [非使用中] 狀態。預設值為 [使用中]。在範圍存在期間,可以透過選取 [特性] 圖示隨時變更該狀態。登入時,選擇 [非使用中] 以停用使用者存取。

範圍/DNS 別名

允許增加範圍 DNS 名稱的別名。此屬性僅接受「實際的」網域別名 (不允許使用隨機字串)。

一旦您編輯了特性,請按一下 [儲存]。


備註 –

AMAdmin.dtd 中的 recursive=true 旗標對於以範圍模式在子範圍內搜尋物件不起作用。這個旗標只在舊有模式中有效,因為所有子組織都位在相同根尾碼之下。而在範圍模式,每個子範圍能有不同的根尾碼,甚至可能位於不同的伺服器。若要在子範圍中搜尋物件 (例如群組),必須在 XML 資料檔案內指定要在其中進行搜尋的子範圍。


認證

一般認證服務必須先註冊為某個範圍的服務,使用者才能使用其他認證模組登入。核心認證服務可讓 Access Manager 管理員定義範圍認證參數的預設值。若未於特定認證模組中定義置換值,則稍後可以使用這些值。核心認證服務的預設值定義於 amAuth.xml 檔案中,並於安裝後儲存於 Directory Server 內。

如需更多資訊,請參閱管理認證

服務

在 Access Manager 中,服務是一組由 Access Manager 主控台一起管理的屬性。屬性可以只是一些相關資訊,如員工名稱、職稱與電子郵件地址。但屬性通常做為軟體模組 (如郵件應用程式或發薪服務) 的配置參數。

經由 [服務] 標籤,您可為範圍增加並配置大量 Access Manager 預設服務。您可以增加下列服務:


備註 –

Access Manager 會強制服務 .xml 檔案中的必需屬性必須具備一些預設值。若服務的必需屬性不具有任何值,則需要增加預設值並重新載入服務。


Procedure將服務增加至範圍

  1. 按一下您要增加服務的範圍之名稱。

  2. 選取 [服務] 標籤。

  3. 按一下 [服務] 清單中的 [增加]。

  4. 選取您要為範圍增加的服務。

  5. 按 [下一步]。

  6. 定義範圍屬性以配置服務。請參閱線上說明中的「配置」以取得服務屬性的說明。

  7. 按一下 [完成]。

  8. 若要編輯服務的特性,請按一下 [服務] 清單中的名稱。

權限

在 Access Manager 中,委託模型以指定給管理員的權限 (或資格) 為基礎。權限是一種可對資源執行的作業 (或動作),例如對「策略」物件執行的「讀取」作業。定義的作業集為「讀取」、「修改」及「委託」。資源是可對其執行動作的物件,可以是配置物件或識別物件。

配置物件的範例有「認證配置」、「策略」、「資料存放區」等等。識別物件的範例有「使用者」、「群組」、「角色」及「代理程式」。可以在 Access Manager 中動態建立和動態增加一組權限,但在安裝期間,會在 Access Manager 中增加一小組權限,以使 Access Manager 正確地執行。一旦載入權限,即可將其指定給角色及群組。屬於這些角色及群組的使用者會成為受委託的管理員,並可執行所指定的作業。一般來說,管理員是被指定一組或更多權限的角色或群組之成員。

Access Manager 7.1 可讓您為下列管理員類型配置權限︰

定義 Access Manager 7.1 的權限

新的 Access Manager 7.1 安裝實例為策略管理員、範圍管理員 (或「舊有」模式中的組織管理員) 及記錄管理員提供存取權限。若要指定或修改權限,按一下您要編輯的角色或群組名稱。您可以選擇下列任一選項︰

對所有記錄檔的讀取和寫入存取

為記錄管理員定義讀取及寫入存取權限。

對所有記錄檔的寫入存取

只為記錄管理員定義寫入存取權限。

對所有記錄檔的讀取存取

只為記錄管理員定義讀取存取權限。

僅針對策略特性的讀取與寫入存取權

為策略管理員定義讀取及寫入存取權限。

所有範圍與策略特性的讀取與寫入存取權

為範圍管理員定義讀取及寫入存取權限。

為從 Access Manager 7.0 升級到 7.1 定義權限

如果您將 Access Manager 從 7.0 升級到 7.1,其權限配置會與新的 Access Manager 7.1 安裝的權限配置有所不同,但仍支援策略管理員、範圍管理員及記錄管理員的權限。若要指定或修改權限,按一下您要編輯的角色或群組名稱。您可以選擇下列任一選項︰

對資料存放區唯讀存取

為策略管理員定義對資料存放區的讀取存取權限。

對所有記錄檔的讀取和寫入存取

為記錄管理員定義讀取及寫入存取權限。

對所有記錄檔的寫入存取

只為記錄管理員定義寫入存取權限。

對所有記錄檔的讀取存取

只為記錄管理員定義讀取存取權限。

僅針對策略特性的讀取與寫入存取權

為策略管理員定義讀取及寫入存取權限。

所有範圍與策略特性的讀取與寫入存取權

為範圍管理員定義讀取及寫入存取權限。

所有特性與服務的唯讀存取權

為策略管理員定義對所有特性及服務的讀取存取權限。

對於下列定義,無論是單獨使用還是一同使用,皆不受 Access Manager 支援︰

這些權限定義必須與「僅針對策略特性的讀取與寫入存取權」定義一起使用,以定義策略管理員的委託控制。

第 3 章 資料存放區

資料存放區是一個資料庫,您可在其中儲存使用者屬性與使用者配置資料。Access Manager 提供可連線至 LDAPv3 識別儲存庫架構的識別儲存庫外掛程式。這些外掛程式可讓您檢視並擷取 Access Manager 使用者資訊,而無需對您現有的使用者資料庫進行變更。Access Manager 架構整合識別儲存庫外掛程式的資料與其他 Access Manager 外掛程式的資料以形成每位使用者的虛擬識別。Access Manager 稍後可在多個識別儲存庫間的認證與授權程序中使用通用識別。當使用者階段作業結束時,將銷毀虛擬使用者識別。

Access Manager 資料存放區類型

本節描述您可配置的資料存放區類型,也提供建立新資料存放區類型的步驟以及配置它們的方法。

您可以針對下列任一資料存放區類型建立新的資料存放區實例︰

Access Manager 儲存庫外掛程式

此資料存放區類型位於 Sun Java System Directory Server 實例中,並保存 Access Manager 資訊樹狀結構。此資料存放區類型使用不屬於 LDAP 版本 3 規格的 Directory Server 功能 (如角色及服務類別),並與先前版本的 Access Manager 相容。

Active Directory

此資料存放區類型使用 LDAP 版本 3 規格向 Microsoft Active Directory 的實例寫入識別資料。

平面檔案儲存庫

此儲存庫可讓您在 Access Manager 的本機安裝實例上以平面 DIT 結構儲存資料及識別,而不必建立個別的資料存放區。它通常用來測試或驗證概念部署。

通用 LDAPv3

此資料存放區類型可讓您向任何與 LDAPv3 相容的資料庫寫入識別資料。如果您使用的 LDAPv3 資料庫不支援持續搜尋,則無法使用快取功能。

具有 Access Manager 模式的 Sun Directory Server

此資料存放區類型位於 Sun Java System Directory Server 實例中,並保存 Access Manager 資訊樹狀結構。它與 Access Manager 儲存庫外掛程式的不同之處在於,後者有更多配置屬性可讓您更好地自訂資料存放區。

Procedure建立新的資料存放區

下節將描述連線資料存放區的步驟。

  1. 選取要增加資料存放區的範圍。

  2. 按一下 [資料存放區] 標籤。

  3. 按一下 [資料存放區] 清單中的 [新建]。

  4. 輸入資料存放區的名稱。

  5. 選取要建立的資料存放區類型。

  6. 按 [下一步]。

  7. 輸入適當的屬性值以配置資料存放區。

  8. 按一下 [完成]。

資料存放區屬性

本節定義用來配置每個新 Access Manager 資料存放區的屬性。資料存放區屬性為︰


備註 –

Active Directory、通用 LDAPv3 以及具有 Access Manager 模式的 Sun Directory Server 資料存放區類型共用相同的基礎外掛程式,因此配置屬性都一樣。但是,對每一種資料存放區類型而言,其中有些屬性的預設值會不同,這些值會對應顯示在 Access Manager 主控台中。


Access Manager 儲存庫屬性

下列屬性用於配置 Access Manager 儲存庫外掛程式:

類別名稱

指定實作 Access Manager 儲存庫外掛程式的類別檔案位置。

Access Manager 支援的類型和作業

指定 LDAP 伺服器允許的或可執行的作業。預設作業是僅限於此 LDAPv3 儲存庫外掛程式支援的作業。以下是「LDAPv3 儲存庫外掛程式」支援的作業:

可根據您的 LDAP 伺服器設定及作業從上述清單中移除權限,但您不能增加更多權限。

如果所配置的 LDAPv3 儲存庫外掛程式指向 Sun Java Systems Directory Server 的實例,則可以增加角色類型的權限。否則,由於其他資料存放區可能不支援角色,或許不能增加此權限。「角色」類型的權限為:

如果將使用者做為 LDAPv3 儲存庫支援的類型,則該使用者可以進行讀取、建立、編輯及刪除服務作業。換句話說,如果使用者是受支援的類型,則讀取、編輯、建立及刪除作業可讓您讀取、編輯、建立及刪除識別儲存庫中的使用者項目。user=service 作業可讓 Access Manager 服務存取使用者項目中的屬性。此外,如果為使用者所屬的範圍或角色指定了動態服務,則使用者也可以存取動態服務屬性。

使用者還能管理所有指定服務的使用者屬性。如果使用者將 service 做為作業 (user=service),則它會指定所有服務相關的作業均受支援。這些作業包括 assignServiceunassignServicegetAssignedServicesgetServiceAttributes、removeServiceAttributesmodifyService

組織 DN 值

定義指向 Access Manager 管理的 Directory Server 中組織的 DN。此將做為於資料存放區中執行之所有作業的基底 DN。

使用者容器命名屬性

使用者存在於使用者容器中時,指定使用者容器的命名屬性。若使用者並未位於使用者容器中,此欄位應為空白。

使用者容器值

指定使用者容器值。預設值為 people

代理程式容器命名屬性

若代理程式位於一個代理程式容器中,則為代理程式容器的命名屬性。若代理程式並未位於代理程式容器中,此欄位應為空白。

代理程式容器值

指定代理程式容器值。預設值為 agents

遞迴搜尋

若啟用,則在 Access Manager 儲存庫中執行的搜尋會針對指定的識別進行遞迴搜尋。例如,對下列資料結構執行遞迴搜尋:

root
realm1
    subrealm11
        user5
    subrealm12
        user6
realm2
    user1
    user2
    subrealm21
        user3
        user4

會產生下列結果:

複製範圍配置

如果在範圍模式安裝中啟用了此屬性,則 Access Manager 會為每個存在於儲存庫中的範圍及子範圍建立等同的組織及子組織。此外,在範圍/子範圍中註冊的服務也會在新建立的組織/子組織中進行註冊。範圍 DIT 及組織 DIT 均存在於資料存放區內。

平面檔案儲存庫屬性

下列屬性用於配置平面檔案儲存庫:

檔案儲存庫外掛程式類別名稱

此屬性指定可提供平面檔案實作的 Java 類別檔案。此屬性不得修改。

檔案儲存庫目錄

定義存放識別及其屬性的基底目錄。

快取

若啟用 (預設值),則會快取識別及其屬性。從而後續請求將不會存取檔案系統。

更新快取的時間

若啟用了快取,則此屬性決定檢查快取的時間間隔 (以分鐘為單位),即在該時間間隔之後檢查快取中的項目,以確定有無對檔案系統進行過任何變更。檢查機制基於時間戳記。

檔案使用者物件類別

定義建立使用者時要自動增加至使用者的物件類別。

密碼屬性

提供包含用於認證之密碼的屬性名稱。若啟用了「資料存放區」認證模組,則此屬性用於認證使用者。

狀態屬性

提供儲存識別狀態的屬性名稱。狀態屬性的值是使用中非使用中。認證識別期間會使用狀態屬性。如果識別是非使用中,則不會認證使用者。

雜湊的屬性

提供一份屬性值將雜湊且儲存在檔案內的屬性清單。一旦雜湊,就無法取得原始值。只能擷取雜湊的值。這可用來確保特定屬性不應永久儲存 (但需用於驗證) 情況下的私密性。識別的密碼屬性即為此類屬性的範例。

已加密的屬性

提供一份屬性值將加密且儲存在檔案內的屬性清單。雖然屬性經過加密及儲存,但呼叫識別存放區 API 仍會傳回原來未加密的值。這樣可防止使用者直接存取檔案系統並讀取機密屬性。

LDAPv3 屬性

下列屬性用於配置 LDAPv3 儲存庫外掛程式:

LDAP 伺服器

輸入您要連線的 LDAP 伺服器名稱。格式應為 hostname.domainname:portnumber

如果輸入了多個 host:portnumber 項目,則會嘗試連線清單中的第一個主機。僅當連線至目前主機失敗時,才會嘗試清單中的下一個項目。

LDAP 連結 DN

指定 Access Manager 將用來向您目前所連線之 LDAP 伺服器認證的 DN 名稱。具有連結所用之 DN 名稱的使用者應具有您於LDAPv3 外掛程式支援的類型和作業屬性中配置之正確的增加/修改/刪除權限。

LDAP 連結密碼

指定 Access Manager 將用來向您目前所連線之 LDAP 伺服器認證的 DN 密碼。

LDAP 連結密碼 (確認)

確認密碼。

LDAP 組織 DN

此資料存放區將對映的 DN 。此將為於此資料存放區中執行之所有作業的基底 DN。

LDAP SSL

當啟用時,Access Manger 將使用 HTTPS 協定連線至主伺服器。

LDAP 連線池最小大小

指定連線池中的初始連線數目。使用連線池就不必每次都建立新的連線。

LDAP 連線池最大大小

指定允許的最大連線數目。

從搜尋傳回的最多結果

指定搜尋作業傳回項目的最大數目。若已達到上限,Directory Server 會傳回任何符合搜尋請求的項目。

搜尋逾時

指定為搜尋請求配置的最大秒數。若已達到上限,Directory Server 會傳回任何符合搜尋請求的搜尋項目。

LDAP 依照參照

若啟用,此選項指定自動跟隨其他 LDAP 伺服器的參照。

LDAPv3 儲存庫外掛程式類別名稱

指定實作 LDAPv3 儲存庫的類別檔案的位置。

一般屬性名稱對映

使架構所知的通用屬性對映至本機資料存放區。例如,若架構使用 inetUserStatus 來決定使用者狀態,則本機資料存放區可能實際使用 userStatus。屬性定義區分大小寫。

LDAPv3 外掛程式支援的類型和作業

指定 LDAP 伺服器允許的或可執行的作業。預設作業是僅限於此 LDAPv3 儲存庫外掛程式支援的作業。以下是「LDAPv3 儲存庫外掛程式」支援的作業:

可根據您的 LDAP 伺服器設定及作業從上述清單中移除權限,但您不能增加更多權限。

如果所配置的 LDAPv3 儲存庫外掛程式指向 Sun Java Systems Directory Server 的實例,則可以增加角色類型的權限。否則,由於其他資料存放區可能不支援角色,或許不能增加此權限。「角色」類型的權限為:

如果將使用者做為 LDAPv3 儲存庫支援的類型,則該使用者可以進行讀取、建立、編輯及刪除服務作業。換句話說,如果使用者是受支援的類型,則讀取、編輯、建立及刪除作業可讓您讀取、編輯、建立及刪除識別儲存庫中的使用者項目。user=service 作業可讓 Access Manager 服務存取使用者項目中的屬性。此外,如果為使用者所屬的範圍或角色指定了動態服務,則使用者也可以存取動態服務屬性。

使用者還能管理所有指定服務的使用者屬性。如果使用者將 service 做為作業 (user=service),則它會指定所有服務相關的作業均受支援。這些作業包括 assignServiceunassignServicegetAssignedServicesgetServiceAttributes、removeServiceAttributesmodifyService

LDAPv3 外掛程式搜尋範圍

定義用於尋找 LDAPv3 外掛程式項目的範圍。此範圍必須為以下一種:

LDAP 使用者搜尋屬性

此欄位定義對使用者進行搜尋的屬性類型。例如,如果使用者的 DN 是 uid=user1,ou=people,dc=iplanet,dc=com,則命名屬性是 uid

LDAP 使用者搜尋篩選器

指定用於尋找使用者項目的搜尋篩選器。

LDAP 使用者物件類別

指定使用者的物件類別。建立使用者時,本使用者物件類別清單將增加至使用者的屬性清單。

LDAP 使用者屬性

定義與使用者相關聯的屬性清單。不允許讀取/寫入任何不在此清單上的使用者屬性。這些屬性區分大小寫。於此處定義物件類別與屬性模式之前,必須在 Directory Server 中定義物件類別與屬性模式。

LDAP 使用者建立屬性對映

指定建立使用者時需要哪些屬性。此屬性使用下列語法:

DestinationAttributeName=SourceAttributeName

如果缺少來源屬性名稱,則預設值是使用者 ID (uid)。例如:

cn
sn=givenName

若要建立使用者設定檔,則 cnsn 都是必要的。cn 取得屬性 uid 的值,而 sn 取得屬性 givenName 的值。

使用者狀態屬性

指定可指示使用者狀態的屬性名稱。

使用者狀態使用中的值

指定使用中使用者狀態的屬性名稱。預設值為使用中

使用者狀態非使用中的值

指定非使用中使用者狀態的屬性名稱。預設值為非使用中

LDAP 群組搜尋屬性

此欄位定義對群組進行搜尋的屬性類型。預設值為 cn

LDAP 群組搜尋篩選器

指定用於尋找群組項目的搜尋篩選器。預設值為 (objectclass=groupOfUniqueNames)

LDAP 群組容器命名屬性

若群組存在於容器中,指定群組容器的命名屬性。否則,此屬性將為空白。例如,若 cn=group1,ou=groups,dc=iplanet,dc=com 的群組 DN 位於 ou=groups 之中,則群組容器命名屬性為 ou

LDAP 群組容器值

指定群組容器值。例如,如果 cn=group1,ou=groups,dc=iplanet,dc=com 的群組 DN 位於容器名稱 ou=groups 之中,則群組容器值應為 groups

LDAP 群組物件類別

指定群組的物件類別。建立群組時,本群組物件類別清單將增加至群組的屬性清單。

LDAP 群組屬性

定義與群組相關聯的屬性清單。不允許讀取/寫入任何不在此清單上的群組屬性。這些屬性區分大小寫。於此處定義物件類別與屬性模式之前,必須在 Directory Server 中定義物件類別與屬性模式。

群組成員身份屬性

指定屬性名稱,其值為 DN 所屬之所有群組的名稱。預設值為 memberOf

唯一成員屬性

指定屬性名稱,其值為屬於此群組的 DN。預設值為 uniqueMember

群組成員 URL 屬性

指定屬性名稱,其值為一個 LDAP URL,可解析為此群組的成員。預設值為 memberUrl

LDAP 使用者容器命名屬性

使用者存在於使用者容器中時,指定使用者容器的命名屬性。若使用者並未位於使用者容器中,此欄位應為空白。

LDAP 使用者容器值

指定使用者容器值。預設值為 people

LDAP 代理程式搜尋屬性

此欄位定義對代理程式進行搜尋的屬性類型。預設值為 uid

LDAP 代理程式容器命名屬性

若代理程式位於一個代理程式容器中,則為代理程式容器的命名屬性。若代理程式並未位於代理程式容器中,此欄位應為空白。

LDAP 代理程式容器值

指定代理程式容器值。預設值為 agents

LDAP 代理程式搜尋篩選器

定義用來搜尋代理程式的篩選器。LDAP 代理程式搜尋屬性置於此欄位之前以形成實際代理程式搜尋篩選器。

例如,若 LDAP 代理程式搜尋屬性為 uid,而 LDAP 使用者搜尋篩選器為 (objectClass=sunIdentityServerDevice),則實際使用者搜尋篩選器將為:(&(uid=*)(objectClass=sunIdentityServerDevice))

LDAP 代理程式物件類別

定義代理程式的物件類別。建立代理程式時,本使用者物件類別清單將增加至代理程式的屬性清單。

LDAP 代理程式屬性

定義與代理程式相關聯的屬性清單。不允許讀取/寫入任何不在此清單上的代理程式屬性。這些屬性區分大小寫。於此處定義物件類別與屬性模式之前,必須在 Directory Server 中定義物件類別與屬性模式。

可認證的識別類型

指定當範圍的認證模組模式設定為「資料存放區」時,資料存放區可以認證使用者及/或代理程式識別類型。

持續搜尋基底 DN

定義用於持續搜尋的基底 DN。某些 LDAPv3 伺服器僅在根尾碼層級上支援持續搜尋。

持續搜尋篩選器

定義可傳回目錄伺服器項目之特定變更的篩選器。資料存放區只會接收與定義的篩選器相符的變更。

重新啟動前持續搜尋最長閒置時間

定義重新啟動持續搜尋之前的最大閒置時間。此值必須大於 1。若值小於或等於 1,則無論連線的閒置時間為何,皆將重新啟動搜尋。

若 Access Manager 與負載平衡器同時部署,則某些負載平衡器將在閒置一段特定時間後逾時。在此情況下,您應該將 [重新啟動前持續搜尋最長閒置時間] 設定為一個小於負載平衡器之特定時間的值。

出現錯誤碼後的最大重試次數

定義遇到 [需要重試的 LDAPException 錯誤碼] 中指定的錯誤碼時,持續搜尋作業的最大重試次數。

重試之間的延遲時間

指定每次重試前的等待時間。僅適用於持續搜尋連線。

需要重試的 LDAPException 錯誤碼

指定需要重新啟動持續搜尋作業的錯誤碼。此屬性僅適用於持續搜尋,並不適用於所有 LDAP 作業。

快取

若啟用,則可讓 Access Manager 快取從資料存放區擷取的資料。

快取項目的最長保留時間

指定資料在被移除之前要儲存在快取中的最長時間。以秒為單位定義值。

快取的最大大小

指定快取的最大大小。值越大,可儲存的資料越多,但也需要更多記憶體。以位元組為單位定義值。

第 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 共用狀態儲存選項:

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

第 5 章 管理策略

本章描述 Sun Java™ System Access Manager 的策略管理功能。Access Manager 的「策略管理」功能使頂層管理員或頂層策略管理員可檢視、建立、刪除和修改用於所有範圍的特定服務的策略。它也為範圍或子範圍管理員或策略管理員提供一種方式,以檢視、刪除和修改範圍層級的策略。

本章包含下列小節:

簡介

策略定義指定擁有組織受保護資源存取權限的規則。公司擁有需要保護、管理和監視的資源、應用程式和服務。策略透過定義使用者對特定資源行動的時機和方法,控制存取權限以及這些資源的用途。策略定義特定主體的資源。


備註 –

主體可以是個人、企業、角色或群組;或是任何可以具有識別的個體。如需更多資訊,請參閱 Java™ 2 Platform Standard Edition Javadoc


單一策略可以定義二進位或非二進位決策。二進位決策為 [是]/[否]、[真]/[假] 或 [允許]/[拒絕]。非二進位決策代表屬性值。例如,郵件服務可能包含一個 mailboxQuota 屬性,並且為每位使用者設定了最大儲存值。一般來說,策略是配置為定義主體可以在什麼情況下對哪一個資源進行什麼動作。

策略管理功能

策略管理功能提供建立及管理策略的策略服務。策略服務允許管理員定義、修改、取得、取消及刪除權限,以保護 Access Manager 部署內的資源。通常,策略服務包括資料庫、允許建立、管理及評估策略的介面之程式庫、及策略執行程式或策略代理程式。依預設,Access Manager 將 Sun Java Enterprise System Directory Server 用於資料儲存,並為策略評估和策略服務自訂提供 Java 和 C API (如需更多資訊,請參閱「Sun Java System Access Manager 7.1 Developer’s Guide」)。它也讓管理員可使用 Access Manager 主控台來管理策略。Access Manager 提供一個啟用策略的服務,即「URL 策略代理程式」服務,它使用可下載的策略代理程式來強制執行策略。

URL 策略代理程式服務

在安裝時,Access Manager 提供的「URL 策略代理程式」服務可定義策略來保護 HTTP URL。此服務可讓管理員透過策略執行程式或策略代理程式建立與管理策略。

策略代理程式

策略代理程式是儲存企業資源的伺服器之策略執行點 (PEP)。策略代理程式與安裝在不同的 Web 伺服器上,且於使用者發出對受保護的 Web 伺服器上的網路資源的請求時,做為一個額外的認證步驟。此認證在執行資源的任何使用者認證請求之外。此代理程式保護 Web 伺服器,並且資源也會受到認證外掛程式的保護。

例如,受遠端安裝的 Access Manager 保護之人力資源 Web 伺服器可能已安裝一個代理程式。此代理程式可以防止沒有適當策略的人員檢視機密薪資資訊或其他敏感資料。策略是由 Access Manager 管理員所定義、儲存在 Access Manager 部署中,且由策略代理程式用於允許或拒絕使用者存取遠端 Web 伺服器的內容。

最新的 Access Manager 策略代理程式可以從 Sun Microsystems 下載中心下載。

有關安裝與管理策略代理程式的更多資訊,請參閱「Sun Java System Access Manager Policy Agent 2.2 User’s Guide」


備註 –

策略是以一般順序進行評估,但在評估時,如果一個動作值評估為 deny,就不會評估後續策略,除非策略配置服務中已啟用 [繼續評估拒絕決定] 屬性。


Access Manager 策略代理程式僅在 Web URL (http://...https://...) 上執行決策。然而,可使用 Java 和 C 策略評估 API 編寫代理程式,以在其他資源上強制執行策略。

此外,策略配置服務中的 [資源比較程式] 屬性可能也需要從預設配置變更為:

serviceType=Name_of_LDAPService |class=com.sun.identity.policy.plugins.SuffixResourceName|wildcard=*

|delimiter=,|caseSensitive=false

或者,也可以提供如 LDAPResourceName 等實作來實作 com.sun.identity.policy.interfaces.ResourceName,並正確配置 [資源比較程式]。

策略代理程式程序

當網路瀏覽器請求一個駐留在受策略代理程式保護的伺服器之 URL 時,保護網路資源的程序即開始。伺服器的已安裝策略代理程式會截取請求,並檢查現有的認證憑證 (階段作業記號)。

如果代理程式截取了請求並驗證了現有階段作業記號,隨後便會執行下列程序。

  1. 如果階段作業記號為有效,允許或拒絕使用者存取。如果記號為無效,使用者將被重新導向至認證服務,如下列步驟所述。

    假設代理程式截取了一個沒有現存階段作業記號的請求,代理程式將重新導向使用者到登入頁,不論該資源是否已經使用不同的認證方法保護。

  2. 一旦正確的認證了使用者的憑證,代理程式會核發一個請求給命名服務,以將使用的 URL 定義為連接至 Access Manager 的內部服務。

  3. 若資源符合在代理程式配置的不予執行清單,則允許存取。

  4. [命名服務] 會傳回策略服務、階段作業服務和記錄服務的定址器。

  5. 代理程式會傳送請求給 [策略服務],以取得適用於使用者的策略決策。

  6. 基於存取資源的策略決策,決定使用者是否可以存取。如果策略決策建議不同的認證層級或認證機制,代理程式將重新導向請求到認證服務,直到驗證所有準則為止。

策略類型

使用 Access Manager 配置的策略有兩種:

一般策略

在 Access Manager 中,定義存取權限的策略是指一般策略。一般策略由規則主體條件回應提供者組成。

規則

規則包含一個服務類型、一或多個動作,以及一個值。基本上,規則定義策略。


備註 –

部份服務可接受只定義動作但沒有資源。


主體

主體定義策略將影響的使用者或使用者集合 (例如,擁有特定角色的群組或使用者)。主體的一般原則是,只有當使用者為策略中至少一個主體的成員時,策略才適用。預設主體為:

Access Manager 識別主體

此主體暗指您於 [範圍主體] 標籤下建立與管理的識別可做為主體的一個成員增加。

經認證的使用者

此主體類型表示具有有效 SSOToken 的任何使用者均為此主體的成員。

所有認證的使用者都將成為此主體的成員,即使這些使用者已在與定義策略之組織不同的範圍內進行認證。如果資源所有者想要將存取權限授予其他組織的使用者所管理的資源,這個功能很有用。若要限制對特定組織的成員存取保護的資源,請使用組織主體。

Web 服務用戶端

此主體類型表示,如果包含在 SSOToken 中的任何主體之 DN 與此主體的任意所選值相符,則由 SSOToken 識別的 Web 服務用戶端 (WSC) 為此主體的成員。有效值為本機 JKS 鍵值儲存區中可信任憑證的 DN (與可信任 WSC 的憑證相對應)。此主體取決於 Liberty Web 服務架構,並且僅應該由 Liberty 服務提供者用來授權 WSC。

確定建立鍵值儲存區後再將此主體加入策略。以下位置可以找到設定鍵值儲存區的資訊:

AccessManager-base /SUNWam/samples/saml/xmlsig/keytool.html

在範圍的 [策略配置服務] 中選取下列的附加主體後,便可使用它們:

Access Manager 角色

此主體類型表示 Access Manager 角色的任何成員均為此主體的成員。使用舊有模式下的 Access Manager 及基於版本 6.3 的主控台,可以建立 Access Manager 角色。這些角色具有 Access Manager 代管的物件類別。Access Manager 角色僅可透過代管 Access Manager 策略服務存取。

LDAP 群組

此主體類型表示 LDAP 群組的任何成員均為此主體的成員。

LDAP 角色

此主體類型表示 LDAP 角色的任何成員均為此主體的成員。LDAP 角色是使用 Directory Server 角色功能的任何角色定義。這些角色具有 Directory Server 角色定義代管的物件類別。可以在策略配置服務中修改 LDAP 角色搜尋篩選器,以縮小範圍和改善效能。

LDAP 使用者

此主體類型表示任何 LDAP 使用者均為此主體的成員。

組織

此主體類型表示範圍的任何成員均為此主體的成員。

Access Manager 角色與 LDAP 角色的比較

Access Manager 角色是使用 Access Manager 建立的,這些角色具有 Access Manager 指派的物件類別。LDAP 角色是使用 Directory Server 角色功能的任何角色定義。這些角色具有 Directory Server 角色定義代管的物件類別。所有 Access Manager 角色皆可用來做為 Directory Server 角色。不過,不是所有的 Directory Server 角色都一定會是 Access Manager 角色。藉由配置策略配置服務,您可從現有目錄取用 LDAP 角色。Access Manager 角色僅可透過代管 Access Manager 策略服務存取。可以在策略配置服務中修改 LDAP 角色搜尋篩選器,以縮小範圍和改善效能。

巢式角色

在策略定義中,巢式角色可以正確評估為 LDAP 角色。

條件

條件可讓您定義對策略的限制。例如,如果您在為薪津應用程式定義策略,可以定義僅在特定幾小時限制此動作存取應用程式的條件。或者,如果請求來自給定 IP 位址集或企業內部網路,可能希望定義僅允許此動作存取的條件。

此條件可能還用於在同一網域的不同 URL 中配置不同的策略。例如,http://org.example.com/hr/*jsp 僅可以藉由 org.example.net 在上午 9 時至下午 5 時之間進行存取。配合使用 IP 條件與時間條件便可達此目的。將規則資源指定為 http://org.example.com/hr/*.jsp,此策略會套用於 http://org.example.com/hr 下的所有 JSP (包括子目錄中的 JSP)。


備註 –

參照、規則、資源、主體、條件、動作及值等術語分別對應於 policy.dtd 中的元素 ReferralRuleResourceNameSubjectConditionAttributeValue


您可增加的預設條件有:

作用中的階段作業時間

根據使用者階段作業資料設定條件。您可以修改的欄位為:

最長階段作業時間

指定自階段作業初始開始時可套用策略的最大持續時間。

終止階段作業

選取此欄位時,如果階段作業時間超過 [最大階段作業時間] 欄位中定義所允許的最大時間,則使用者階段作業將被終止。

認證鏈

若使用者成功認證到指定範圍內的認證鏈接,則會套用策略。若未指定範圍,則在任何範圍內的認證鏈接中進行的認證都滿足條件。

認證層級 (大於或等於)

若使用者的認證層級大於或等於條件中設定的認證層級,則會套用策略。此屬性指示指定範圍內認證的信任層級。

認證層級 (小於或等於)

若使用者的認證層級小於或等於條件中設定的認證層級,則會套用策略。此屬性指示指定範圍內認證的信任層級。

認證模組實例

若使用者成功認證到指定範圍內的認證模組,則會套用策略。若未指定範圍,則在任何範圍內認證模組的認證都滿足條件。

目前的階段作業特性

根據使用者的 Access Manager 階段作業中設定的特性值來判定策略是否適用於請求。於策略評估期間,僅當使用者階段作業具有條件中定義的每個特性值時,條件才傳回 true。對於條件中以多重值定義於的特性,若記號具有至少一個條件中為特性列出的值即可。

IP 位址/DNS 名稱

根據 IP 位址範圍設定條件。您可以定義的欄位為:

IP 位址自/至

指定 IP 位址的範圍。

DNS 名稱

指定 DNS 名稱。此欄位可以為完整的主機名稱或以下之一格式的字串:

domainname

*.domainname

LDAP 篩選條件

當定義的 LDAP 篩選器在策略配置服務中指定的 LDAP 目錄中尋找使用者項目時,就會套用策略。這僅於定義策略所在的範圍內才適用。

範圍認證

若使用者成功認證到指定範圍,則會套用策略。

時間 (星期幾、日期、時間和時區)

根據時間限制來設定條件。這些欄位包括:

日期自/至

指定日期範圍。

時間

指定一天內的時間範圍。

星期幾

指定星期幾的範圍。

時區

指定時區 (標準或自訂)。自訂時區僅可為 Java 識別的時區 ID (例如,PST)。如果未指定值,則預設值為 Access Manager JVM 中設定的時區。

回應提供者

回應提供者為提供策略型回應屬性的外掛程式。回應提供者屬性會和策略決策一起傳送給 PEP。Access Manager 包括一個實作,即 IDResponseProvider。此版本的 Access Manager 不支援自訂回應提供者。代理程式 PEP 通常會將這些回應以標頭的形式傳遞給應用程式。應用程式通常使用這些屬性將應用程式頁面個人化,例如入口網站頁面。

策略建議

如果無法根據條件的決定來套用策略,條件可能會產生建議訊息,指出無法將策略套用至請求的原因。這些建議訊息會在策略決策中傳播至 [策略執行點]。[策略執行點] 可以擷取此建議,並嘗試採取適當的行動,例如將使用者重新導向回認證機制,以便進行更高層級認證。採取建議的適當行動後,接著,使用者可能會收到更高層級認證的提示,只要能夠使用策略,使用者可能可以存取資源。

以下類別有更多資訊:

com.sun.identity.policy.ConditionDecision.getAdvices()

如果條件不符,只有 AuthLevelCondiitonAuthSchemeCondition 會提供建議。

AuthLevelCondition 建議與以下鍵值相關聯:

com.sun.identity.policy.plugin.AuthLevelCondition.AUTH_LEVEL_CONDITION_ADVICE

AuthSchemeCondition 建議與以下鍵值相關聯:

com.sun.identity.policy.plugin.AuthLevelCondition.AUTH_SCHEME_CONDITION_ADVICE

自訂條件也會產生建議。但是,Access Manager 策略代理程式僅回應認證層級認證和認證方案建議。可以寫入自訂代理程式來瞭解及回應其他建議,而現有 Access Manager 代理程式可以延伸來瞭解及回應其他建議。如需更多資訊,請參閱「Sun Java System Access Manager Policy Agent 2.2 User’s Guide」

參照策略

管理員可能需要將一個範圍的策略定義委託給另一個範圍。(或者,可以將資源的策略決策委託給其他策略產品。)參照策略為策略建立和評估控制此策略委託。它是由一項或多項規則及一個或多個參照組成。

策略配置服務包含一個稱為「組織別名參照」的全域屬性。此屬性可讓您在子範圍內建立策略,而無需從頂層或父系範圍內建立參照策略。您只能建立用於保護 HTTP 或 HTTPS 資源的策略,而且這些資源的完全合格主機名稱必須符合範圍的範圍別名/DNS 別名。依預設,此屬性定義為「否」。

規則

規則定義其策略定義與評估正在被參照的資源。

參照

參照定義策略評估所參照的組織。依預設,有兩種類型的參照:同級範圍及子範圍。此二者分別委託至相同層級上的範圍與子層級上的範圍。如需更多資訊,請參閱建立同級範圍與子範圍的策略


備註 –

被參照的範圍可以僅為那些已參照了該範圍的資源 (或子資源) 定義或評估策略。然而,此限制不會套用至頂層範圍。


策略定義類型文件

建立與配置好策略之後,會將其以 XML 的形式儲存於 Directory Server。在 Directory Server 中,以 XML 編碼的資料會儲存在同一位置。雖然策略是使用 amAdmin.dtd (或主控台) 定義和配置,實際上是做為基於 policy.dtd 的 XML 儲存在 Directory Server。policy.dtd 包含從 amAdmin.dtd 中擷取的 policy 元素標籤 (不含策略建立標籤)。因此,當策略服務從 Directory Server 載入策略時,將根據 policy.dtd 剖析 XML。只有在使用指令行建立策略時,才會使用 amAdmin.dtd。本節將描述 policy.dtd 的結構。policy.dtd 位於下列位置:

AccessManager-base/SUNWam/dtd (Solairs)
AccessManager-base/identity/dtd (Linux)
AccessManager-base/identity/dtd (HP-UX)
AccessManager-base\identity\dtd (Windows) 

備註 –

本章其他部分僅提供 Solaris 目錄資訊。請注意,Linux、HP-UX 與 Windows 的目錄結構不同。


Policy 元素

Policy 是根元素,其定義策略的權限或規則,及套用規則的對象或主體。它也定義策略是否為參考 (委託的) 策略,及該策略是否有任何限制 (或條件)。可能包含下列一或多個子元素:RuleConditionSubjectReferralresponse provider。必要的 XML 屬性為 name,其指定策略的名稱。referralPolicy 屬性辨識策略是否為參照策略;若未定義,預設值為一般策略。選用的 XML 屬性包括 namedescription


備註 –

將策略標示為參照時, 策略評估期間將略過主體與條件。相對的,將策略標示為一般時,策略評估期間將略過所有參考。


Rule 元素

Rule 元素定義策略特性並可接受三個子元素:ServiceNameResourceNameAttributeValuePair。可定義為其建立策略服務類型或應用程式,以及於其中執行的資源和動作。規則可被定義為不具任何動作;例如,參照策略規則不具任何動作。


備註 –

已定義策略不含已定義 ResourceName 元素是可接受的。


ServiceName 元素

ServiceName 元素定義套用策略的服務之名稱。此元素代表服務類型。不包含任何其他元素。此值與服務的 XML 檔案中定義之值完全相同 (以 sms.dtd 為根據)。ServiceName 元素的 XML 服務屬性為服務的名稱 (可接受字串值)。

ResourceName 元素

ResourceName 元素定義據以行動的物件。策略已經特別配置為保護這個物件。不包含任何其他元素。ResourceName 元素的 XML 服務屬性為物件的名稱。ResourceName 的範例有:網路伺服器上的 http://www.sunone.com:8080/images,或目錄伺服器上的 ldap://sunone.com:389/dc=example,dc=com。一個更特定的資源範例是 salary://uid=jsmith,ou=people,dc=example,dc=com,對其執行動作的物件是 John Smith 的薪金資訊。

AttributeValuePair 元素

AttributeValuePair 元素定義動作和動作的值。它被用來做為 Subject 元素Referral 元素Condition 元素的子元素。其同時包含 AttributeValue 元素,而且沒有 XML 服務屬性。

Attribute 元素

Attribute 元素定義動作的名稱。一個動作為在資源上執行的作業或事件。POST 或 GET 為 Web 伺服器資源上執行的動作,READ 或 SEARCH 為目錄伺服器上執行的動作。Attribute 元素必須與 Value 元素配對使用。Attribute 元素本身不包含其他任何元素。Attribute 元素的 XML 服務屬性為動作的名稱。

Value 元素

Value 元素定義動作值。Allow/deny 或 yes/no 為動作值範例。其他動作值可以是布林值、數字或字串。其值在定義於服務的 XML 檔案中 (以 sms.dtd 為根據)。Value 元素不包含其他任何元素,而且也不包含 XML 服務屬性。


備註 –

拒絕規則永遠優先於允許規則。例如,如果一個策略是拒絕,另一種是允許,則結果是拒絕 (假如同時滿足這兩種策略條件)。由於拒絕策略可能導致潛在的衝突,因此建議您使用拒絕策略時要非常謹慎。如果使用明確的拒絕規則,透過不同主體 (如角色和/或群組成員身份) 為給定使用者指定的策略也可能會導致拒絕對資源存取。通常,策略定義程序應該僅使用允許規則。如果未套用其他策略則可能使用預設的拒絕。


Subject 元素

Subject 子元素辨識套用策略的主體集合;此簡介集合是根據群組中的成員、角色的擁有權或個別使用者進行選擇的。它接受 Subject 子元素。XML 屬性可定義為:

name。可定義物件集合的名稱。

description。可定義主體的描述。

includeType。 目前不使用。

Subject 元素

Subject 子元素辨識套用策略的主體集合;此集合指出 Subject 元素所定義的集合中較特別的物件。成員可以根據角色、群組成員或只是一些個別使用者。其包含子元素AttributeValuePair 元素。必要的 XML 屬性為 type,其辨識可從其中取得定義特殊之主體的一般物件集合。其他的 XML 屬性包括 name,其定義物件集合的名稱、includeType,其定義是否已定義物件集合,並決定策略是否適用於「非」主體成員的使用者。


備註 –

定義多重主體時,至少一項主體必須套用到使用者,才能套用策略。若主體定義的 includeType 設為 false,使用者不可以是策略套用的主體之成員。


Referrals 元素

Referrals 子元素辨識策略參照集合。它接受 Referral 子元素。可對其定義的 XML 屬性為 name,其定義物件集合的名稱及 description ,其接受描述。

Referral 元素

Referral 子元素辨識特定策略參照。其接受子元素 AttributeValuePair 元素。對其而言必要的 XML 屬性是 type,其辨識可從其中取得定義特殊之參照的一般指定集合。它也可包含定義集合名稱的 name 屬性。

Conditions 元素

Conditions 子元素辨識策略限制集合 (時間範圍、認證層級等等)。它必須包含一或多個 Condition 子元素。可對其定義的 XML 屬性為 name,其定義物件集合的名稱及 description ,其接受描述。


備註 –

Conditions 元素為策略中的選擇性元素。


Condition 元素

Condition 子元素辨識特定策略限制 (時間範圍、認證層級等等)。其接受子元素 AttributeValuePair 元素。它的必要 XML 屬性為 type,其辨識可從其中取得定義特殊的條件之一般限制集合。它也可包含定義集合名稱的 name 屬性。

增加啟用策略的服務

只有當服務模式的 <Policy> 元素配置為 sms.dtd 時,才可以為指定服務的資源定義策略。

依預設,Access Manager 提供 URL 策略代理程式服務 (iPlanetAMWebAgentService)。此服務於下列目錄中的 XML 檔案中定義:

/etc/opt/SUNWam/config/xml/

不過您可以增加其他策略服務到 Access Manager。一旦建立了策略服務,就可以透過 amadmin 指令行公用程式將其增加至 Access Manager。

Procedure增加啟用策略的服務

  1. 在 XML 檔案中以 sms.dtd 為根據開發新的策略服務。Access Manager 提供兩種策略服務 XML 檔案,您會想要使用以下兩種檔案作為新策略服務檔案的基礎:

    amWebAgent.xml - 這是預設 URL 策略代理程式服務的 XML 檔案。它位於 /etc/opt/SUNWam/config/xml/ 中。

    SampleWebService.xml - 這是位於 AccessManager-base/samples/policy 中的範例策略服務檔案。

  2. 將 XML 檔案儲存到您即將從其中載入新策略服務的目錄。例如:


    /config/xml/newPolicyService.xml
  3. 使用 amadmin 指令行公用程式載入新的策略服務。例如:


    AccessManager-base/SUNWam/bin/amadmin
        --runasdn “uid=amAdmin,ou=People,default_org,
    root_suffix
        --password password
        --schema /config/xml/newPolicyService.xml
  4. 載入新的策略服務後,您可以透過 Access Manager 主控台,或透過 amadmin 載入新策略,來定義策略定義的規則。

建立策略

您可透過策略 API 與 Access Manager 主控台建立、修改和刪除策略,並透過 amadmin 指令行工具建立和刪除策略。您也可以使用 amadmin 公用程式在 XML 中取得和列出策略。本節重點在透過 amadmin 指令行公用程式與透過 Access Manager 主控台建立策略。如需有關策略 API 的更多資訊,請參閱「Sun Java System Access Manager 7.1 Developer’s Guide」

策略通常是以 XML 檔案建立,並透過 amadmin 指令行公用程式增加至 Access Manager,然後透過 Access Manager 主控台管理 (但可透過主控台建立策略)。這是因為不能直接使用 amadmin 修改策略。若要修改策略,必須先從 Access Manager 刪除策略,然後使用 amadmin 加入修改後的策略。

通常策略是在範圍 (或子範圍) 層級建立,可在範圍的整個樹狀結構中使用。

Procedure使用 amadmin 建立策略

  1. 根據 amadmin.dtd 建立策略 XML 檔。此檔案位於下列目錄:

    AccessManager-base/SUNWam/dtd

    下列是策略 XML 檔的範例。此範例包含所有預設的主體及條件值。如需這些值的定義,請參閱策略類型

    <Policy name="bigpolicy" referralPolicy="false" active="true" >
    <Rule name="rule1">
    <ServiceName name="iPlanetAMWebAgentService" />
    <ResourceName name="http://thehost.thedomain.com:80/*.html" />
    <AttributeValuePair>
    <Attribute name="POST" />
    <Value>allow</Value>
    </AttributeValuePair>
    <AttributeValuePair>
    <Attribute name="GET" />
    <Value>allow</Value>
    </AttributeValuePair>
    </Rule>
    <Subjects name="subjects" description="desccription">
    <Subject name="webservicescleint" type="WebServicesClients" includeType="inclusive">
    <AttributeValuePair><Attribute name="Values"/><Value>CN=sun-unix, 
    OU=SUN Java System Access Manager, O=Sun, C=US</Value>
    </AttributeValuePair>
    </Subject>
    <Subject name="amrole" type="IdentityServerRoles" includeType="inclusive">
    <AttributeValuePair><Attribute name="Values"/><Value>
    cn=organization admin role,o=realm1,dc=red,dc=iplanet,dc=com</Value>
    </AttributeValuePair>
    </Subject>
    <Subject name="au" type="AuthenticatedUsers" includeType="inclusive">
    </Subject>
    <Subject name="ldaporganization" type="Organization" includeType="inclusive">
    <AttributeValuePair><Attribute name="Values"/>
    <Value>dc=red,dc=iplanet,dc=com</Value>
    </AttributeValuePair>
    </Subject>
    <Subject name="ldapuser" type="LDAPUsers" includeType="inclusive">
    <AttributeValuePair><Attribute name="Values"/>
    <Value>uid=amAdmin,ou=People,dc=red,dc=iplanet,dc=com</Value>
    </AttributeValuePair>
    </Subject>
    <Subject name="ldaprole" type="LDAPRoles" includeType="inclusive">
    <AttributeValuePair><Attribute name="Values"/>
    <Value>cn=Organization Admin Role,o=realm1,dc=red,dc=iplanet,dc=com</Value>
    </AttributeValuePair>
    </Subject>
    <Subject name="ldapgroup" type="LDAPGroups" includeType="inclusive">
    <AttributeValuePair><Attribute name="Values"/>
    <Value>cn=g1,ou=Groups,dc=red,dc=iplanet,dc=com</Value>
    </AttributeValuePair>
    </Subject>
    <Subject name="amidentitysubject" type="AMIdentitySubject" includeType="inclusive">
    <AttributeValuePair><Attribute name="Values"/>
    <Value>id=amAdmin,ou=user,dc=red,dc=iplanet,dc=com</Value>
    </AttributeValuePair>
    </Subject>
    </Subjects>
    <Conditions name="conditions" description="description">
    <Condition name="ldapfilter" type="LDAPFilterCondition">
    <AttributeValuePair><Attribute name="ldapFilter"/>
    <Value>dept=finance</Value>
    </AttributeValuePair>
    </Condition>
    <Condition name="authlevelge-nonrealmqualified" type="AuthLevelCondition">
    <AttributeValuePair><Attribute name="AuthLevel"/>
    <Value>1</Value>
    </AttributeValuePair>
    </Condition>
    <Condition name="authlevelle-realmqaulfied" type="LEAuthLevelCondition">
    <AttributeValuePair><Attribute name="AuthLevel"/>
    <Value>/:2</Value>
    </AttributeValuePair>
    </Condition>
    <Condition name="sessionproperties" type="SessionPropertyCondition">
    <AttributeValuePair><Attribute name="valueCaseInsensitive"/>
    <Value>true</Value>
    </AttributeValuePair>
    <AttributeValuePair><Attribute name="a"/><Value>10</Value>
    <Value>20</Value>
    </AttributeValuePair>
    <AttributeValuePair><Attribute name="b"/><Value>15</Value>
    <Value>25</Value>
    </AttributeValuePair>
    </Condition>
    <Condition name="activesessiontime" type="SessionCondition">
    <AttributeValuePair><Attribute name="TerminateSession"/>
    <Value>session_condition_false_value</Value>
    </AttributeValuePair>
    <AttributeValuePair><Attribute name="MaxSessionTime"/>
    <Value>30</Value>
    </AttributeValuePair>
    </Condition>
    <Condition name="authelevelle-nonrealmqualfied" 
               type="LEAuthLevelCondition">
    <AttributeValuePair><Attribute name="AuthLevel"/>
    <Value>2</Value>
    </AttributeValuePair>
    </Condition>
    <Condition name="ipcondition" type="IPCondition">
    <AttributeValuePair><Attribute name="DnsName"/>
    <Value>*.iplanet.com</Value>
    </AttributeValuePair>
    <AttributeValuePair><Attribute name="EndIp"/>
    <Value>145.15.15.15</Value>
    </AttributeValuePair>
    <AttributeValuePair><Attribute name="StartIp"/>
    <Value>120.10.10.10</Value>
    </AttributeValuePair>
    </Condition>
    <Condition name="authchain-realmqualfied"
              type="AuthenticateToServiceCondition">
    <AttributeValuePair><Attribute name="AuthenticateToService"/>
    <Value>/:ldapService</Value>
    </AttributeValuePair>
    </Condition>
    <Condition name="auth to realm" 
          type="AuthenticateToRealmCondition">
    <AttributeValuePair><Attribute name="AuthenticateToRealm"/>
    <Value>/</Value>
    </AttributeValuePair>
    </Condition>
    <Condition name="authlevelge-realmqualified"
          type="AuthLevelCondition">
    <AttributeValuePair><Attribute name="AuthLevel"/>
    <Value>/:2</Value>
    </AttributeValuePair>
    </Condition>
    <Condition name="authchain-nonrealmqualfied" 
         type="AuthenticateToServiceCondition">
    <AttributeValuePair><Attribute name="AuthenticateToService"/>
    <Value>ldapService</Value>
    </AttributeValuePair>
    </Condition>
    <Condition name="timecondition" type="SimpleTimeCondition">
    <AttributeValuePair><Attribute name="EndTime"/>
    <Value>17:00</Value>
    </AttributeValuePair>
    <AttributeValuePair><Attribute name="StartTime"/>
    <Value>08:00</Value>
    </AttributeValuePair>
    <AttributeValuePair><Attribute name="EndDate"/>
    <Value>2006:07:28</Value>
    </AttributeValuePair>
    <AttributeValuePair><Attribute name="EnforcementTimeZone"/>
    <Value>America/Los_Angeles</Value>
    </AttributeValuePair>
    <AttributeValuePair><Attribute name="StartDay"/>
    <Value>mon</Value>
    </AttributeValuePair>
    <AttributeValuePair><Attribute name="StartDate"/>
    <Value>2006:01:02</Value>
    </AttributeValuePair>
    <AttributeValuePair><Attribute name="EndDay"/>
    <Value>fri</Value>
    </AttributeValuePair>
    </Condition>
    </Conditions>
    <ResponseProviders name="responseproviders"
           description="description">
    <ResponseProvider name="idresponseprovidere" 
         type="IDRepoResponseProvider">
    <AttributeValuePair>
    <Attribute name="DynamicAttribute"/>
    </AttributeValuePair>
    <AttributeValuePair>
    <Attribute name="StaticAttribute"/>
    <Value>m=10</Value>
    <Value>n=30</Value>
    </AttributeValuePair>
    </ResponseProvider>
    </ResponseProviders>
    </Policy>
  2. 策略 XML 檔案開發完成後,您可使用下列指令加以載入:


    AccessManager-base/SUNWam/bin/amadmin
    --runasdn "uid=amAdmin,ou=People,default_org,
    root_suffix"
    --password password
    --data policy.xml
    

    若要同時加入多重策略,請將這些策略放在一個 XML 檔案中,這一點與在每個 XML 檔案中放一個策略相反。如果使用多重 XML 檔案連續快速載入策略,則內部策略索引可能會損毀,而且某些策略可能不參與策略評估。

    透過 amadmin 建立策略時請確定:當建立認證方案條件時認證模組是以範圍註冊;當建立範圍、LDAP 群組、LDAP 角色和 LDAP 使用者時對應的 LDAP 物件範圍、群組、角色和使用者存在;當建立 IdentityServerRoles 主體時 Access Manager 角色存在;當建立子範圍或同級範圍參照時相關範圍存在。

    請注意,在 SubrealmReferralPeerRealmReferral 的 Value 元素之內容中,Realm 主體、IdentityServerRoles 主體、LDAPGroups 主體、LDAPRoles 主體和 LDAPUsers 主體必須為完整的 DN。

Procedure以 Access Manager 主控台建立一般策略

  1. 選擇您要為其建立策略的範圍。

  2. 按一下 [策略] 標籤。

  3. 按一下 [策略] 清單中的 [新建策略]。

  4. 增加策略的名稱與說明。

  5. 若您要策略為使用中,請選取 [使用中] 屬性中的 [是]。

  6. 此時無需定義一般策略的所有欄位。您可以建立策略,隨後再加入規則、主體、條件和回應等。如需更多資訊,請參閱管理策略

  7. 按一下 [確定]。

Procedure以 Access Manager 主控台建立參照策略

  1. 選擇您要建立策略的範圍。

  2. 於 [策略] 標籤中按一下 [新增參考]。

  3. 增加策略的名稱與說明。

  4. 若您要策略為使用中,請選取 [使用中] 屬性中的 [是]。

  5. 此時無需定義參照策略的所有欄位。您可以建立策略,隨後再加入規則和參照等。如需更多資訊,請參閱管理策略

  6. 按一下 [確定]。

建立同級範圍與子範圍的策略

要為同級組織或子範圍建立策略,必須先在父系範圍 (或另一個同級範圍) 中建立參照策略。參照策略的規則定義中必須包含正由子範圍管理的資源前綴。在父系範圍 (或另一個同級範圍) 中建立參照策略後,可在子範圍 (或另一個同級範圍) 建立一般策略。

在此範例中,o=isp 是父系範圍,o=example.com 是子範圍,該子範圍管理 http://www.example.com 的資源和子資源。

Procedure建立子範圍的策略

  1. o=isp 建立參照策略。如需參照策略的相關資訊,請參閱程序修改參照策略

    參照策略必須定義 http://www.example.com 做為規則中的資源,且必須包含以 example.com 做為參照中的值之 SubRealmReferral

  2. 瀏覽至子範圍 example.com

  3. 目前,isp 將資源參考為 example.com,可以為資源 http://www.example.com 或任何以 http://www.example.com 開頭的資源建立一般策略。

    若要定義由 example.com 管理的其他資源之策略,必須在 o=isp 建立額外的參考策略。

將策略匯出到其他 Access Manager 實例

Access Manager 可讓您使用 amadmin 指令行工具匯出策略。當您想要將許多現有策略移到另一個 Access Manager 實例,或希望檢查您以批次模式對現有實例所做的變更時,這個工具很有用。若要匯出策略,請使用 amadmin 指令行公用程式將指定的策略匯出到檔案。語法為:

amamdin - u username —w password —ofilename output_file.xml —t policy_data_file.xml

您可以在策略名稱中使用萬用字元 (*) 來符合任何字元的字串。

下列是 policy_data_file.xml 的範例:


<?xml version="1.0" encoding="ISO-8859-1"?>

<!--
    Copyright (c) 2005 Sun Microsystems, Inc. All rights reserved
    Use is subject to license terms.
-->

<!DOCTYPE Requests
    PUBLIC "-//iPlanet//Sun Java System Access Manager 6.2 Admin CLI DTD//EN"
    "/opt/SUNWam/dtd/amAdmin.dtd"
>>

<!--  CREATE REQUESTS -->

<!-- to export to file use option -ofilename fileName -->

<Requests>    

<RealmRequests >    
<RealmGetPolicies realm="/" >
<AttributeValuePair>
<Attribute name="policyName"/>
<Value>p*</Value>
</AttributeValuePair>
</RealmGetPolicies>
</RealmRequests>

<RealmRequests >    
<RealmGetPolicies realm="/" >
<AttributeValuePair>
<Attribute name="policyName"/>
<Value>g10</Value>
<Value>g11</Value>
</AttributeValuePair>
</RealmGetPolicies>

</RealmRequests>
<RealmRequests >    
<RealmGetPolicies realm="/realm1" >
<AttributeValuePair>
<Attribute name="policyName"/>
<Value>*</Value>
</AttributeValuePair>
</RealmGetPolicies>
</RealmRequests>

</Requests>

策略將匯出至 Output_file.xml 檔案。現在可以對檔案中包含的策略定義進行任何變更。您必須修改輸出檔案,使它與 amadmin 指令公用程式相容,然後才能將策略匯入到另一個 Access Manager 實例。如需如何匯入策略的說明,包括 amadmin 相容策略資料檔的範例,請參閱使用 amadmin 建立策略

管理策略

建立一般策略或參照策略並加入 Access Manager 後,您即可透過 Access Manager 主控台管理策略,方法是修改規則、主體、條件與參照。

修改一般策略

透過 [策略] 標籤,您可修改用來定義存取權限的一般策略。您可定義和配置數個規則、主體、條件和資源主較程式。此節列出和說明其步驟。

Procedure增加或修改一般策略的規則

  1. 若您已建立策略,按一下您要增加規則的策略名稱。若還沒建立,請參閱以 Access Manager 主控台建立一般策略

  2. 於 [規則] 功能表下,按一下 [新建]。

  3. 為規則選取下列預設服務類型之一。啟用策略的服務越多,您可以參閱的清單就越大:

    探索服務

    定義探索服務查詢的授權動作,並修改 Web 服務用戶端對特定資源的協定呼叫。

    Liberty 個人設定檔服務

    定義 Liberty 個人設定檔服務查詢的授權動作,並修改 Web 服務用戶端對特定資源的協定呼叫。

    URL 策略代理程式

    定義 URL 策略代理程式服務的授權動作。可用來定義保護 HTTP 及 HTTPS URL 的策略。這是 Access Manager 策略最常用的使用案例。

  4. 按 [下一步]。

  5. 輸入規則的名稱與資源名稱。

    目前,Access Manager 策略代理程式僅支援 http://https:// 資源,而不支援以 IP 位址取代主機名稱。

    協定、主機、連接埠及資源名稱等均支援使用萬用字元。例如:


    http*://*:*/*.html

    對 URL 策略代理程式服務而言,若未輸入連接埠埠號,則 http:// 的預設埠號為 80、https:// 的預設埠號為 443。

  6. 為此規則選取動作。依據服務類型,您可選取下列項目:

    • 查尋 (探索服務)

    • 更新 (探索服務)

    • 修改 (Liberty 個人設定檔服務)

    • 查詢 (Liberty 個人設定檔服務)

    • GET (URL 策略代理程式)

    • POST (URL 策略代理程式)

  7. 選取動作值。

    • 互動同意 — 呼叫 Liberty 互動協定以達成資源同意。此值僅用於 Liberty 個人設定檔服務類型。

    • 互動值 — 呼叫 Liberty 互動協定以取得資源上的值。此值僅用於 Liberty 個人設定檔服務類型。

    • 允許 — 可讓您存取與規則中定義的資源相符的資源。

    • 拒絕 — 不允許您存取與規則中定義的資源相符的資源。

      策略中的拒絕規則總是要優先於允許規則。例如,如果指定的資源有兩種策略,一種是拒絕存取,另一種是允許存取,則結果是拒絕存取 (假如同時滿足這兩種策略條件)。由於拒絕策略可能導致這兩種策略之間產生潛在的衝突,因此建議您使用拒絕策略時要非常謹慎。通常,策略定義程序應該僅使用允許規則,在所有策略均不適於完成此拒絕存取時才使用預設拒絕規則。

      如果使用明確的拒絕規則,即使有一個或多個策略允許存取,透過不同主體如角色和或群組成員身份為給定使用者指定的策略也可能會導致拒絕對資源存取。例如,如果存在一個適用於員工角色之資源的拒絕策略,還存在另一個適用於管理員角色之相同資源的允許策略,系統將會拒絕指定給使用者 (員工角色和管理員角色) 的策略決策。

      解決此問題的一種方法為使用條件外掛程式設計策略。在上述情況中,「角色條件」(將拒絕策略套用於認證為員工角色之使用者,並將允許策略套用至認證為經理角色之使用者) 協助區分這兩種策略。另一種方法為使用 authentication level 條件,其中管理員角色是在較高認證層級進行認證。

  8. 按一下 [完成]。

Procedure增加或修改一般策略的主體

  1. 若您已建立策略,按一下您要增加主體的策略名稱。若您尚未建立策略,請參閱以 Access Manager 主控台建立一般策略

  2. 於 [主體] 清單下,按一下 [新建]。

  3. 選取其中一個預設主體類型。如需主體類型的說明,請參閱主體

  4. 按 [下一步]。

  5. 輸入此主體的名稱。

  6. 選取或取消選取 [排除] 欄位。

    如果未選取此欄位 (預設),則此策略將套用於屬於此主體成員的身份。如果選取此欄位,則此策略將套用於不屬於此主體成員的身份。

    如果策略中存在多重主體,並且至少一個主體表示策略套用於給定身份,則策略將套用於此身份。

  7. 執行搜尋,以便顯示要加入至此主體的識別。此步驟不適用於 [已認證的使用者] 主體或 [Web 服務用戶端] 主體。

    預設 (*) 搜尋式樣將顯示所有合格的項目。

  8. 選取要為此主體加入的個別身份,或按一下 [全部加入] 以立即加入所有身份。按一下 [新增],以將識別移至選取的清單。此步驟不適用於認證使用者主體。

  9. 按一下 [完成]。

  10. 若要從策略中移除某主體,請選取此主體並按一下 [刪除]。按一下主體名稱可以編輯任何主體定義。

Procedure將條件增加至一般策略

  1. 若您已建立策略,按一下您要增加規則的策略名稱。若您尚未建立策略,請參閱以 Access Manager 主控台建立一般策略

  2. 於 [條件] 清單下,按一下 [新建]。

  3. 選取條件類型並按 [下一步]。

  4. 定義條件類型的欄位。

  5. 按一下 [完成]。

Procedure將回應提供者增加至一般策略

  1. 若您已建立策略,按一下您要增加回應提供者的策略名稱。若您尚未建立策略,請參閱以 Access Manager 主控台建立一般策略

  2. 於 [回應提供者] 清單下,按一下 [新建]。

  3. 輸入回應提供者的名稱。

  4. 定義下列值:

    StaticAttribute

    這些是格式為屬性值的靜態屬性,定義在儲存於策略中的 IDResponseProvider 的實例內。

    DynamicAttribute

    此處所選擇的回應屬性首先需要於對應之範圍的「策略配置服務」中定義。定義的屬性名稱應該是那些存在於所配置資料存放區 (IDReposotories) 中的屬性名稱的子集。如需如何定義屬性的詳細資料,請參閱「策略配置」屬性定義。若要選取特定或多個屬性,請按住 Control 鍵,並按一下滑鼠左鍵。

  5. 按一下 [完成]。

  6. 若要從策略中移除回應提供者,請選取主體,然後按一下 [刪除]。按一下名稱可以編輯任何回應提供者定義。

修改參照策略

您可將範圍的策略定義和決策委派其他使用參照策略的範圍。自訂參照可用以從任何策略目標點取得策略決策。建立參照策略後,可增加或修改關聯的規則、參照和資源提供者。

Procedure增加或修改參照策略的規則

  1. 若您已建立策略,按一下您要增加規則的策略名稱。若還沒建立,請參閱以 Access Manager 主控台建立參照策略

  2. 於 [規則] 功能表下,按一下 [新建]。

  3. 為規則選取下列預設服務類型之一。啟用策略的服務越多,您可以參閱的清單就越大:

    探索服務

    定義探索服務查詢的授權動作,並修改 Web 服務用戶端對特定資源的協定呼叫。

    Liberty 個人設定檔服務

    定義 Liberty 個人設定檔服務查詢的授權動作,並修改 Web 服務用戶端對特定資源的協定呼叫。

    URL 策略代理程式

    定義 URL 策略代理程式服務的授權動作。可用來定義保護 HTTP 及 HTTPS URL 的策略。這是 Access Manager 策略最常用的使用案例。

  4. 按 [下一步]。

  5. 輸入規則的名稱與資源名稱。

    目前,Access Manager 策略代理程式僅支援 http://https:// 資源,而不支援以 IP 位址取代主機名稱。

    協定、主機、連接埠及資源名稱等均支援使用萬用字元。例如:


    http*://*:*/*.html

    對 URL 策略代理程式服務而言,若未輸入連接埠埠號,則 http:// 的預設埠號為 80、https:// 的預設埠號為 443。


    備註 –

    步驟 6 與 7 不適用於參照策略。


  6. 按一下 [完成]。

Procedure增加或修改策略的參照

  1. 若您已建立策略,按一下您要增加回應提供者的策略名稱。若您尚未建立策略,請參閱以 Access Manager 主控台建立參照策略

  2. 於 [參照] 清單下,按一下 [新增]。

  3. 定義 [規則] 欄位中的資源。這些欄位包括:

    參照— 顯示目前的參照類型。

    名稱— 輸入參照的名稱。

    資源名稱— 輸入資源的名稱。

    篩選器— 指定將於 [值] 欄位中顯示之範圍名稱的篩選器。依預設,將顯示所有範圍名稱。

    — 選取參照的範圍名稱。

  4. 按一下 [完成]。

    若要從策略中移除某個參照,請選取此參照,然後按一下 [刪除]。

    可以透過按一下參照名稱旁邊的 [編輯] 連結,編輯任何參照定義。

Procedure將回應提供者增加至參照策略

  1. 若您已建立策略,按一下您要增加回應提供者的策略名稱。若您尚未建立策略,請參閱以 Access Manager 主控台建立參照策略

  2. 於 [回應提供者] 清單下,按一下 [新建]。

  3. 輸入回應提供者的名稱。

  4. 定義下列值:

    StaticAttribute

    這些是格式為屬性值的靜態屬性,定義在儲存於策略中的 IDResponseProvider 的實例內。

    DynamicAttribute

    此處所選擇的回應屬性首先需要於對應之範圍的「策略配置服務」中定義。定義的屬性名稱應該是那些存在於所配置資料存放區 (IDReposotories) 中的屬性名稱的子集。如需如何定義屬性的詳細資料,請參閱「策略配置」屬性定義。若要選取特定或多個屬性,請按住 Control 鍵,並按一下滑鼠左鍵。

  5. 按一下 [完成]。

  6. 若要從策略中移除回應提供者,請選取主體,然後按一下 [刪除]。按一下名稱可以編輯任何回應提供者定義。

策略配置服務

策略配置服務用來為每個組織透過 Access Manager 主控台配置每個策略相關屬性。您也可定義資源名稱實作和 Directory Server 資料存放區,以和 Access Manager 策略架構一起使用。[策略配置服務] 中指定的 Directory Server 用於 LDAP 使用者、LDAP 群組、LDAP 角色和組織策略主體的成員身份評估。

持續的主體結果時間

若要改善策略評估表現,成員身份評估將快取一段時間 (以策略配置服務中 [主體結果存在時間] 屬性中定義的時間為基準)。將一直使用這些快取成員身份決策,直到 [主體結果存在時間] 屬性定義之時間結束。在這之後,成員身份評估會用於反映目錄中使用者的目前狀態。

動態屬性

這些為允許的動態屬性名稱,其顯示於清單中,並可選取以定義策略回應提供者動態屬性。定義的名稱需要與資料儲存庫中定義的屬性名稱相同。

amldapuser 定義

amldapuser 是在安裝中建立的使用者,預設由 [策略配置] 服務中指定的 Directory Server 使用。若有必要,範圍的管理員或策略管理員可變更此值。

加入策略配置服務

建立範圍時,會自動設定範圍的 [策略配置] 服務屬性。然而,若有必要您可加以修改。

基於資源的認證

有些組織需要有進階認證方案,使用者可根據特定模組、根據試圖存取的資源進行認證。基於資源的認證是 Access Manager 的一項功能,使用者必須通過用以保護資訊的特定認證模組的認證,而非預設認證模組。此功能僅適用於首次使用者認證。


備註 –

這是與階段作業升級中描述的基於資源認證不同的功能。該特定功能並不具有任何限制。


限制

基於資源的認證有下列限制:

Procedure配置基於資源的認證

Access Manager 和策略代理程式都安裝好之後,就可以配置基於資源的認證。要這樣做,必須先將 Access Manager 指向 Gateway servlet。

  1. 開啟 AMAgent.properties

    AMAgent.properties 可以在 /etc/opt/SUNWam/agents/config/ 中找到 (於 Solaris 環境中)。

  2. 註釋下面的行:

    #com.sun.am.policy.am.loginURL = http://Access Manager_server_host.domain_name:port/amserver/UI/Login.

  3. 增加下列行到檔案中:

    com.sun.am.policy.am.loginURL = http://AccessManager_host.domain_name:port/amserver/gateway


    備註 –

    閘道 servlet 使用策略評估 API 開發,並可用來撰寫自訂機制以完成基於資源的認證。請參閱「Access Manager 開發者指南」中「Sun Java System Access Manager 7.1 Developer’s Guide」中的第 3 章「Using the Policy APIs」


  4. 重新啟動代理程式。

第 6 章 管理主體

主體介面在一個範圍內啟用基本識別管理。您建立於主體介面中的識別可用於以「Access Manager 身份識別主體」類型建立之策略的主體定義中。

您可以建立與修改的識別為:

使用者

使用者代表個人的識別。可於群組中建立與刪除使用者,並可在角色和/或群組中增加或移除。您亦可為使用者指定服務。

Procedure建立或修改使用者

  1. 按一下 [使用者] 標籤。

  2. 按一下 [開啟新檔] 。

  3. 輸入下列欄位的資料:

    使用者 ID。此欄位中為登入 Access Manager 的使用者名稱。此特性可為非 DN 值。

    名字。此欄位中為使用者的名字。

    姓氏。此欄位中為使用者的姓氏。

    全名 — 此欄位中為使用者的全名。

    密碼。— 此欄位中為 [使用者 ID] 欄位中所指定名稱的密碼。

    密碼 (確認) — 確認密碼。

    使用者狀態。此選項指出是否允許使用者透過 Access Manager 認證。

  4. 按一下 [建立]。

  5. 一旦建立了使用者,您可以按一下使用者名稱來編輯使用者資訊。如需使用者屬性的資訊,請參閱「使用者」屬性。您可執行的其他修改:

Procedure將使用者增加至角色或群組

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

  2. 選取角色或群組。僅會顯示已指定給使用者的角色與群組。

  3. 從 [可用的] 清單選取角色或群組並按一下 [增加]。

  4. 一旦角色或群組顯示於 [選取的] 清單中,按一下 [儲存]。

Procedure將服務增加至識別

  1. 選取您要增加服務的識別。

  2. 按一下 [服務] 標籤。

  3. 按一下 [加入] 。

  4. 依據您所選取的識別類型,將顯示下列服務清單:

    • 認證配置

    • 探索服務

    • Liberty 個人設定檔服務

    • 階段作業

    • 使用者

  5. 選取您要增加的服務,並按 [下一步]。

  6. 編輯服務的屬性。如需有關服務的說明,請按一下步驟 4 中的服務名稱。

  7. 按一下 [完成]。

代理程式設定檔

Access Manager 策略代理程式保護 Web 伺服器與 Web 代理伺服器上的內容以防止未授權的侵入。它們根據管理員所配置的策略控制對服務與 Web 資源的存取。

代理程式物件定義策略代理程式設定檔,可讓 Access Manager 儲存認證及其他與保護 Access Manager 資源之特定代理程式有關的設定檔資訊。經由 Access Manager 主控台,管理員可以檢視、建立、修改與刪除代理程式設定檔。

在代理程式物件建立頁面,可以定義代理程式認證至 Access Manager 所需的 UID/密碼。若您具有使用同一 Access Manager 建立的多重 Web 容器,您可以對不同代理程式啟用多重 ID,並由 Access Manager 個別地啟用與停用。您亦可集中管理代理程式的某些喜好設定值,而不需在每台機器上編輯 AMAgent.properties

Procedure建立或修改代理程式

  1. 按一下 [代理程式] 標籤。

  2. 按一下 [開啟新檔] 。

  3. 輸入下列欄位值:

    名稱。 輸入代理程式的名稱或識別。這是代理程式將用來登入 Access Manager 的名稱。不接受多位元的名稱。

    密碼。 輸入代理程式密碼。此密碼必須與 LDAP 認證期間代理程式所使用的密碼不同。

    確認密碼。確認密碼。

    裝置狀態。輸入代理程式的裝置狀態。若設為 [使用中],代理程式將可以認證至 Access Manager,並與其通訊。若設為 [非使用中],代理程式將無法認證至 Access Manager。

  4. 按一下 [建立]。

  5. 一旦您建立了代理程式,您可以另外編輯下列欄位:

    描述。輸入代理程式的簡要描述。例如,您可以輸入代理程式實例名稱或其保護的應用程式的名稱。

    代理程式金鑰值。以一個「金鑰/值」對設定代理程式特性。此特性為 Access Manager 所使用,以接收有關使用者之憑證指定的代理程式請求。目前,僅有一個特性有效,且將忽略所有其他特性。請使用以下格式:

    agentRootURL=protocol:// hostname:port/

    此項目必須精確,而且 agentRootURL 大小寫相符。

    protocol

    代表所使用的通訊協定,可能是 HTTP 或 HTTPS。

    hostname

    代表代理程式所在電腦的主機名稱。這部電腦也託管代理程式所保護的資源。

    port

    代表安裝代理程式的連接埠號碼。代理程式在這個連接埠上偵聽內送的流量,並截取存取主機資源的所有請求。

配置 Access Manager 以保護 Cookie 免遭劫持

Cookie 遭受劫持係指侵入者 (駭客,可能使用不受信任的應用程式) 對 Cookie 進行未經授權的存取。若被劫持的 Cookie 是階段作業 Cookie,視系統配置方式而定,Cookie 劫持可能增加對受保護 Web 資源的未經授權存取威脅。

Sun 文件提供一份技術說明,標題為「Precautions Against Session-Cookie Hijacking in an Access Management Deployment」,其中說明了要對抗與階段作業 Cookie 劫持有關的特定安全威脅可以採取的預防措施。請參閱下列文件:

「Technical Note: Precautions Against Cookie Hijacking in an Access Manager Deployment」

篩選的角色

篩選的角色是使用 LDAP 篩選器建立的動態角色。建立角色時,所有使用者都會透過篩選器的篩選並指定給此角色。篩選器會在項目中尋找任何屬性值對 (例如,ca=user*),並自動將包含該屬性的使用者指定給角色。

Procedure建立篩選角色

  1. 於 [瀏覽] 窗格中,移至將建立角色的組織。

  2. 按一下 [開啟新檔] 。

  3. 輸入篩選角色的名稱。

  4. 輸入搜尋條件的資訊。

    例如,


    (&(uid=user1)(|(inetuserstatus=active)(!(inetuserstatus=*))))

    若篩選器依預設為空白,將建立下列角色:


    (objectclass = inetorgperson)
  5. 按一下 [建立] 以根據篩選條件初始搜尋。由篩選條件定義的識別將自動地指定給角色。

  6. 一旦建立了篩選角色,按一下角色名稱以檢視屬於角色的使用者。您亦可按一下 [服務] 標籤來增加服務至角色。

角色

角色的成員是角色的 LDAP 項目。角色自己的條件已定義為含屬性的 LDAP 項目,由項目的辨別名稱 (Distinguished Name, DN) 屬性所辨識。一旦建立了角色,您可以手動增加服務與使用者。

Procedure建立或修改角色

  1. 按一下 [角色] 標籤。

  2. 於 [角色] 清單中按一下 [新建]。

  3. 輸入角色的名稱。

  4. 按一下 [建立]。

Procedure增加使用者至角色或群組

  1. 按一下您要增加使用者的角色或群組名稱。

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

  3. 從 [可用的] 清單選取您要增加的使用者並按一下 [增加]。

  4. 一旦使用者顯示於 [選取的] 清單中,按一下 [儲存]。

群組

群組代表具有共同功能、特性或興趣的使用者集合。通常,此群組並無與之相關聯的權限。群組可存在於兩個層級;於組織內及於其他受管理群組內。

Procedure建立或修改群組

  1. 按一下 [群組] 標籤。

  2. 按一下 [群組] 清單上的 [新建]。

  3. 輸入群組的名稱。

  4. 按一下 [建立]。

    一旦您建立了群組,您可以按一下群組名稱與 [使用者] 標籤,將使用者增加至群組。