在 Java CAPS 中使用 LDAP
http://docs.oracle.com/cd/E19509-01/820-5624/ggfpv/index.html
http://docs.oracle.com/cd/E19509-01/820-5624/landingpage/index.html
第 1 章 在 Java CAPS 中使用 LDAP
此處列出的主題提供了有關(guān)如何在 Sun JavaTM Composite Application Platform Suite (Java CAPS) 中使用輕量目錄訪問協(xié)議 (Lightweight Directory Access Protocol, LDAP) 的信息。
如果您有任何問題,請(qǐng)參見 http://goldstar.stc.com/support 中的 Java CAPS Web 站點(diǎn)。
-
LDAP 概述
-
將 LDAP 服務(wù)器用于系統(tǒng)信息庫用戶管理
-
將 LDAP 服務(wù)器用于 Sun JMS IQ Manager 用戶管理
-
將 LDAP 服務(wù)器用于 Enterprise Manager 用戶管理
-
動(dòng)態(tài)指定應(yīng)用程序配置屬性
LDAP 概述
輕量目錄訪問協(xié)議 (Lightweight Directory Access Protocol, LDAP) 是一種標(biāo)準(zhǔn),用于使客戶機(jī)可以查詢和更新目錄服務(wù)中的數(shù)據(jù)。
LDAP 目錄中包含一系列的條目。條目由屬性的集合和唯一標(biāo)識(shí)條目的標(biāo)識(shí)名組成。
在以下示例中,第一行指定 DN。后續(xù)行指定屬性。
dn: cn=all, ou=Roles, dc=company, dc=com objectClass: top objectClass: groupOfUniqueNames cn: all ou: Roles |
DN 的各組成部分是按層次結(jié)構(gòu)排列的(按具體程度由高到低)。因此,DN 中的最后一個(gè)組成部分標(biāo)識(shí)目錄的根條目。
每個(gè)屬性都包含一個(gè)類型,以及一個(gè)或多個(gè)值。例如,屬性 ou: Roles 的類型為 ou(組織單位),值為 Roles。對(duì)象類是一種屬性,用于指定條目的必需屬性和可選屬性。您可以在 RFC 2256 中查找許多對(duì)象類的定義。
以上示例是以 LDAP 數(shù)據(jù)交換格式 (LDAP Data Interchange Format, LDIF) 表示的。還可以使用圖形方式表示條目。
搜索 LDAP 目錄時(shí),使用搜索過濾器指定搜索條件。可以使用星號(hào)作為通配符。例如:
(cn=John S*) |
將 LDAP 服務(wù)器用于系統(tǒng)信息庫用戶管理
可以將 Java CAPS 系統(tǒng)信息庫配置為使用 LDAP 服務(wù)器進(jìn)行用戶管理。
當(dāng)用戶嘗試登錄系統(tǒng)信息庫時(shí),將檢查用戶名和密碼是否與 LDAP 服務(wù)器中存儲(chǔ)的用戶名和密碼匹配。此外,可以從服務(wù)器檢索用戶的角色列表,以授權(quán)用戶訪問系統(tǒng)信息庫中的各種對(duì)象。
支持以下 LDAP 服務(wù)器:
-
Sun JavaTM System Directory Server 版本 5.1、5.2 和 6.x
-
Microsoft 的 Active Directory(Windows Server 2003 隨附的版本)
-
OpenLDAP Directory Server 2.x
首先,必須配置 LDAP 服務(wù)器。請(qǐng)參見相應(yīng)的章節(jié):
-
配置 Sun JavaTM System Directory Server
-
配置 Active Directory 服務(wù)
-
配置 OpenLDAP Directory Server
然后,配置系統(tǒng)信息庫,使其可以找到 LDAP 服務(wù)器,并查找相應(yīng)的信息(例如目錄中包含用戶的部分)。請(qǐng)參見配置系統(tǒng)信息庫。
如果要對(duì)系統(tǒng)信息庫和 LDAP 服務(wù)器之間的通信進(jìn)行加密,請(qǐng)參見SSL 支持。
《管理 Java CAPS 用戶》提供了有關(guān)系統(tǒng)信息庫用戶管理的基本信息。
配置 Sun JavaTM System Directory Server
Sun Java System Directory Server 版本 5.1 和 5.2 包含以下主要組件:
-
Directory Server
-
Administration Server
-
Directory Server 控制臺(tái)
可以使用 Directory Server 控制臺(tái)執(zhí)行大多數(shù)管理任務(wù)。該控制臺(tái)包含四個(gè)頂級(jí)選項(xiàng)卡:“任務(wù)”、“配置”、“目錄”和“狀態(tài)”。“目錄”選項(xiàng)卡將目錄條目顯示為樹。可以通過此選項(xiàng)卡瀏覽、顯示和編輯所有條目和屬性。
還可以通過編輯配置文件或使用命令行實(shí)用程序手動(dòng)執(zhí)行管理任務(wù)。
Sun Java System Directory Server 版本 6.x 提供以下方式來管理目錄中的條目:
-
Directory Service Control Center (DSCC)
-
目錄編輯器
-
ldapmodify 和 ldapdelete 命令行實(shí)用程序
DSCC 已集成到 Sun JavaTM Web Console 中。DSCC 包含五個(gè)頂級(jí)選項(xiàng)卡:“一般任務(wù)”、“目錄服務(wù)器”、“代理服務(wù)器”、“服務(wù)器組”和“設(shè)置”。
依次單擊“目錄服務(wù)器”選項(xiàng)卡、服務(wù)器的名稱和“條目管理”選項(xiàng)卡后,將顯示可以瀏覽、添加和修改條目的頁面。目錄信息樹 (Directory Information Tree, DIT) 將顯示在左側(cè)。
還可以使用“一般任務(wù)”選項(xiàng)卡創(chuàng)建新條目或?yàn)g覽數(shù)據(jù)。
注 –
有關(guān)如何執(zhí)行以下步驟的詳細(xì)信息,請(qǐng)參見隨 Sun Java System Directory Server 提供的文檔。
配置 Sun Java System Directory Server
在 People 目錄下創(chuàng)建 admin 用戶和 Administrator 用戶。
在頂層節(jié)點(diǎn)下創(chuàng)建角色 all、administration 和 management。
將創(chuàng)建的角色分配給 admin 用戶和 Administrator 用戶。
轉(zhuǎn)至配置系統(tǒng)信息庫。
配置 Active Directory 服務(wù)
Active Directory 是 Windows 2003 的一個(gè)關(guān)鍵部件。它提供了各種可管理性、安全性以及互操作性功能。主要的管理工具是名為“Active Directory 用戶和計(jì)算機(jī)”的管理單元。
Active Directory 不支持角色的概念。因此,在 Active Directory 中,必須使用組的概念模擬 Java CAPS 角色。
您應(yīng)在名為 CAPSRoles 的新組織單位中創(chuàng)建組,而不是在 Users 目錄中創(chuàng)建組。
注 –
有關(guān)如何執(zhí)行以下步驟的詳細(xì)信息,請(qǐng)參見隨 Active Directory 提供的文檔。
配置 Active Directory 服務(wù)
啟動(dòng)“Active Directory 用戶和計(jì)算機(jī)”管理工具。
右鍵單擊根節(jié)點(diǎn),然后選擇“新建”>“組織單位”。
將顯示“新建對(duì)象 - 組織單位”對(duì)話框。
在“名稱”字段中,輸入一個(gè)值(例如 CAPSRoles)。
單擊“確定”。
在該組織單位下,創(chuàng)建以下組:all、administration 和 management。要?jiǎng)?chuàng)建組,請(qǐng)右鍵單擊組織單位,然后選擇“新建”>“組”。對(duì)組范圍和組類型使用默認(rèn)值。
添加組后,這些組將顯示在該組織單位下。
將 admin 用戶和 Administrator 用戶作為您所創(chuàng)建的所有組的成員添加,方法是:雙擊每個(gè)組,然后從對(duì)話框中選擇 admin 和 Administrator。
轉(zhuǎn)至配置系統(tǒng)信息庫。
配置 OpenLDAP Directory Server
OpenLDAP 項(xiàng)目提供了 LDAP 協(xié)議的開源實(shí)現(xiàn)。LDAP 服務(wù)器將作為名為 slapd 的獨(dú)立守護(hù)進(jìn)程運(yùn)行。主要的配置文件名為 slapd.conf。此文件包含全局信息、特定于后端的信息以及特定于數(shù)據(jù)庫的信息。可以使用多種方式將條目添加到數(shù)據(jù)庫,例如,可以使用 slapadd 程序。要搜索數(shù)據(jù)庫,請(qǐng)使用 ldapsearch 程序。
有關(guān)詳細(xì)信息,請(qǐng)參見 http://www.openldap.org。
注 –
有關(guān)如何執(zhí)行以下步驟的詳細(xì)信息,請(qǐng)參見隨 OpenLDAP Directory Server 提供的文檔。
配置 OpenLDAP Directory Server
在用戶所在的節(jié)點(diǎn)下創(chuàng)建 admin 用戶和 Administrator 用戶。
如果您的模式中沒有用于角色的節(jié)點(diǎn),請(qǐng)為將在以下步驟中創(chuàng)建的特定于 Java CAPS 的角色創(chuàng)建一個(gè)節(jié)點(diǎn)。例如:
dn: ou=CAPSRoles, dc=sun, dc=com objectClass: top objectClass: organizationalUnit ou: CAPSRoles |
在角色所在的節(jié)點(diǎn)下創(chuàng)建角色 all、administration 和 management。將 admin 用戶和 Administrator 用戶作為每個(gè)角色的唯一成員添加。例如:
dn: cn=all, ou=CAPSRoles, dc=sun, dc=com objectClass: top objectClass: groupOfUniqueNames cn: all ou: CAPSRoles uniqueMember: uid=admin, ou=People, dc=sun, dc=com uniqueMember: uid=Administrator, ou=People, dc=sun, dc=comdn: cn=administration, ou=CAPSRoles, dc=sun, dc=com objectClass: top objectClass: groupOfUniqueNames cn: administration ou: CAPSRoles uniqueMember: uid=admin, ou=People, dc=sun, dc=com uniqueMember: uid=Administrator, ou=People, dc=sun, dc=comdn: cn=management, ou=CAPSRoles, dc=sun, dc=com objectClass: top objectClass: groupOfUniqueNames cn: management ou: CAPSRoles uniqueMember: uid=admin, ou=People, dc=sun, dc=com uniqueMember: uid=Administrator, ou=People, dc=sun, dc=com |
根據(jù)需要,將其他用戶添加到一個(gè)或多個(gè)角色。例如:
dn: cn=all, ou=CAPSRoles, dc=sun, dc=com objectClass: top objectClass: groupOfUniqueNames cn: all ou: CAPSRoles uniqueMember: uid=admin, ou=People, dc=sun, dc=com uniqueMember: uid=Administrator, ou=People, dc=sun, dc=com uniqueMember: uid=userA, ou=People, dc=sun, dc=com uniqueMember: uid=userB, ou=People, dc=sun, dc=comdn: cn=administration, ou=CAPSRoles, dc=sun, dc=com objectClass: top objectClass: groupOfUniqueNames cn: administration ou: CAPSRoles uniqueMember: uid=admin, ou=People, dc=sun, dc=com uniqueMember: uid=Administrator, ou=People, dc=sun, dc=com uniqueMember: uid=userB, ou=People, dc=sun, dc=comdn: cn=management, ou=CAPSRoles, dc=sun, dc=com objectClass: top objectClass: groupOfUniqueNames cn: management ou: CAPSRoles uniqueMember: uid=admin, ou=People, dc=sun, dc=com uniqueMember: uid=Administrator, ou=People, dc=sun, dc=com |
轉(zhuǎn)至配置系統(tǒng)信息庫。
配置系統(tǒng)信息庫
要將 LDAP 服務(wù)器用于系統(tǒng)信息庫用戶管理,必須將 <Realm> 元素添加到系統(tǒng)信息庫的 server.xml 文件中,該文件位于 JavaCAPS-install-dir/repository/repository/server/conf 目錄中。
server.xml 文件包含用于指定用戶數(shù)據(jù)庫的平面文件實(shí)現(xiàn)的默認(rèn) <Realm> 元素。平面文件實(shí)現(xiàn)將使用 tomcat-users.xml 文件,該文件位于 JavaCAPS-install-dir/repository/repository/data/files 目錄中。
下表介紹了 LDAP 版本的 <Realm> 元素所使用的屬性。有關(guān)所有可能屬性的詳細(xì)介紹,請(qǐng)參見 org.apache.catalina.realm.JNDIRealm 類的 Tomcat 文檔。
| className? | 始終使用以下值:org.apache.catalina.realm.JNDIRealm |
| connectionURL? | 標(biāo)識(shí) LDAP 服務(wù)器的位置。包括 LDAP 服務(wù)器名稱和 LDAP 服務(wù)器偵聽請(qǐng)求的端口。? |
| roleBase? | 角色搜索的基條目。如果未指定此屬性,則搜索基為頂級(jí)目錄上下文。? |
| roleName? | 包含角色名稱的角色條目中的屬性。? |
| roleSearch? | 用于選擇角色條目的 LDAP 搜索過濾器。可以包含模式替換 {0}(對(duì)于標(biāo)識(shí)名)和/或 {1}(對(duì)于已驗(yàn)證用戶的用戶名)。對(duì)于已驗(yàn)證用戶(如 Administrator),在某些情況下應(yīng)選擇 {0} 選項(xiàng)。 |
| roleSubtree? | 默認(rèn)情況下,將僅在根條目的下一級(jí)搜索 LDAP 目錄的角色部分。要啟用對(duì)整個(gè)子樹的搜索,請(qǐng)將該值設(shè)置為 true。 |
| userBase? | 包含用戶的子樹的基條目。如果未指定此屬性,則搜索基為頂級(jí)上下文。? |
| userPattern? | 用戶目錄條目的標(biāo)識(shí)名 (Distinguished Name, DN) 的模式,遵循 java.text.MessageFormat 類所支持的語法,使用 {0} 表示應(yīng)插入實(shí)際用戶名的位置。 |
| userRoleName? | 用戶目錄條目中的屬性名稱,包含為此用戶分配的角色名稱的零個(gè)或多個(gè)值。此外,可以使用 roleName 屬性指定要從通過搜索目錄找到的各個(gè)角色條目中檢索的屬性的名稱。如果未指定 userRoleName,將從角色搜索中派生用戶的所有角色。 |
| userRoleNamePattern? | 角色目錄條目的標(biāo)識(shí)名 (Distinguished Name, DN) 的模式,遵循 java.text.MessageFormat 類所支持的語法,使用 {0} 表示實(shí)際的角色名稱。在應(yīng)插入實(shí)際用戶名的 Java CAPS 中進(jìn)行授權(quán)時(shí),將使用此模式解析 DN 以獲取實(shí)際的角色名稱。 |
| userSearch? | 用于在使用 {0} 替換用戶名之后選擇用戶條目的 LDAP 搜索過濾器。 |
| userSubtree? | 默認(rèn)情況下,將僅在根條目的下一級(jí)搜索 LDAP 目錄的用戶部分。要啟用對(duì)整個(gè)子樹的搜索,請(qǐng)將該值設(shè)置為 true。 |
配置系統(tǒng)信息庫
打開 server.xml 文件,該文件位于 JavaCAPS-install-dir/repository/repository/server/conf 目錄中。
刪除或注釋掉默認(rèn)的 <Realm> 元素。
如果使用的是 Sun Java System Directory Server,將以下 <Realm> 元素添加到 <Engine> 標(biāo)記中。根據(jù)需要更改默認(rèn)值。前面的表對(duì)屬性進(jìn)行了介紹。
<Realm className="org.apache.catalina.realm.JNDIRealm"connectionURL="ldap://localhost:489"userBase="cn=People,dc=sun,dc=com"userSearch="(uid={0})"userSubtree="true"userRoleName="nsroledn"userRoleNamePattern="cn={0},dc=sun,dc=com"roleSubtree="true" /> |
如果使用的是 Active Directory,將以下 <Realm> 元素添加到 <Engine> 標(biāo)記中。根據(jù)需要更改默認(rèn)值。前面的表對(duì)屬性進(jìn)行了介紹。
<Realm className="org.apache.catalina.realm.JNDIRealm"connectionURL="ldap://localhost:389"userBase="cn=Users,dc=sun,dc=com"userSearch="(cn={0})"userSubtree="true"roleBase="ou=CAPSRoles,dc=sun,dc=com"roleName="cn"roleSearch="(member={0})"roleSubtree="true" /> |
如果使用的是 OpenLDAP Directory Server,將以下 <Realm> 元素添加到 <Engine> 標(biāo)記中。根據(jù)需要更改默認(rèn)值。前面的表對(duì)屬性進(jìn)行了介紹。
<Realm className="org.apache.catalina.realm.JNDIRealm"connectionURL="ldap://localhost:389"userBase="ou=People,dc=sun,dc=com"userSearch="(uid={0})"userSubtree="true"roleBase="ou=CAPSRoles,dc=sun,dc=com"roleName="cn"roleSearch="(uniquemember={0})"roleSubtree="true" /> |
如果您的 LDAP 服務(wù)器未配置為允許匿名讀取訪問,請(qǐng)將 connectionName 屬性和 connectionPassword 屬性添加到 <Realm> 元素中。將第一個(gè)屬性設(shè)置為 Administrator 用戶的 DN。將第二個(gè)屬性設(shè)置為用戶的加密密碼。請(qǐng)參閱以下示例。
Sun Java System Directory Server:
connectionName="cn=Directory Manager" connectionPassword="E451KDVb0OPcH+GN46OZcg==" |
Active Directory:
connectionName="Administrator@sun.com" connectionPassword="geEiVIbtO+DcH+GN46OZcg==" |
OpenLDAP Directory Server:
connectionName="cn=Manager,dc=sun,dc=com" connectionPassword="l/ZRt1cfNKc=" |
要對(duì)密碼進(jìn)行加密,請(qǐng)使用 encrypt 實(shí)用程序,該程序位于 JavaCAPS-install-dir/repository/repository/util 目錄中。該實(shí)用程序的文件擴(kuò)展名取決于您的平臺(tái)。該實(shí)用程序使用未加密的密碼作為參數(shù)。例如:
C:\JavaCAPS6\repository\repository\util>encrypt mypwd LCUApSkYpuE |
保存并關(guān)閉 server.xml 文件。
啟動(dòng) LDAP 服務(wù)器。
關(guān)閉并重新啟動(dòng)系統(tǒng)信息庫。
SSL 支持
默認(rèn)情況下,系統(tǒng)信息庫和 LDAP 服務(wù)器之間的通信沒有加密。
要對(duì)系統(tǒng)信息庫和 LDAP 服務(wù)器之間的通信進(jìn)行加密,請(qǐng)對(duì)本主題中先前所介紹的過程進(jìn)行以下添加和修改。
配置 LDAP 服務(wù)器上的 SSL
確保已將 LDAP 服務(wù)器配置為使用安全套接字層 (Secure Sockets Layer, SSL)。有關(guān)詳細(xì)信息,請(qǐng)參見隨 LDAP 服務(wù)器提供的文檔。
在準(zhǔn)備下一步時(shí),請(qǐng)將 LDAP 服務(wù)器的證書導(dǎo)出為文件。
導(dǎo)入 LDAP 服務(wù)器的證書
必須將 LDAP 服務(wù)器的證書添加到系統(tǒng)信息庫的可信證書列表中。該列表位于名為 cacerts 的文件中。
在以下過程中,您將使用 keytool 程序。此程序隨 Java SDK 一起提供。
導(dǎo)入 LDAP 服務(wù)器的證書
導(dǎo)航至 JDK-install-dir/jre/bin 目錄。
使用在安裝系統(tǒng)信息庫過程中指定的 JDK。
運(yùn)行以下命令:
keytool -import -trustcacerts -alias alias -file certificate_filename -keystore cacerts_filename |
對(duì)于 -alias 選項(xiàng),您可以指定任何值。
對(duì)于 -file 選項(xiàng),請(qǐng)指定 LDAP 服務(wù)器的證書的全限定名稱。例如:
C:\mycertificate.cer |
對(duì)于 -keystore 選項(xiàng),請(qǐng)指定 cacerts 文件的全限定名稱。cacerts 文件位于 JDK-install-dir/jre/lib/security 目錄中。例如:
C:\Java\jdk1.6.0_06\jre\lib\security\cacerts |
出現(xiàn)提示時(shí),請(qǐng)輸入密鑰庫密碼。默認(rèn)密碼為 changeit。
出現(xiàn)是否信任此證書的提示時(shí),請(qǐng)輸入 yes。
將顯示以下消息:
Certificate was added to keystore |
修改 LDAP 服務(wù)器 URL
在 server.xml 文件的 <Realm> 元素中,按以下方式修改 LDAP 服務(wù)器的 URL:
-
將協(xié)議設(shè)置為 ldaps。
-
將端口號(hào)設(shè)置為 LDAP 服務(wù)器偵聽 SSL 請(qǐng)求時(shí)使用的端口號(hào)。此端口號(hào)通常為 636。
例如:
<Realm className="org.apache.catalina.realm.JNDIRealm"connectionURL="ldaps://myldapserver:636"... |
將 LDAP 服務(wù)器用于 Sun JMS IQ Manager 用戶管理
可以將 Sun JMS IQ Manager 配置為使用 LDAP 服務(wù)器進(jìn)行用戶管理。
領(lǐng)域是用于執(zhí)行安全策略的用戶、組和角色的集合。JMS IQ Manager 支持多個(gè) LDAP 領(lǐng)域同時(shí)運(yùn)行。
在執(zhí)行以下步驟時(shí),僅在連接具有有效的用戶名和密碼時(shí)才允許訪問 JMS IQ Manager。
支持以下 LDAP 服務(wù)器:
-
Sun Java System Directory Server 版本 5.1、5.2 和 6.x
-
Microsoft 的 Active Directory(Windows Server 2003 隨附的版本)
-
OpenLDAP Directory Server 2.x
《管理 Java CAPS 用戶》提供了與 Sun JMS IQ Manager 用戶管理有關(guān)的基本信息。
配置 LDAP 服務(wù)器
在以下過程中,您將在 LDAP 服務(wù)器中創(chuàng)建用戶和角色。
配置 LDAP 服務(wù)器
創(chuàng)建一個(gè)或多個(gè) JMS IQ Manager 用戶。
創(chuàng)建一個(gè)或多個(gè)以下角色:
| application? | 允許客戶機(jī)訪問 JMS IQ Manager。? |
| asadmin? | 允許使用 JMS 控制實(shí)用程序 (stcmsctrlutil) 或 Enterprise Manager,并允許客戶機(jī)訪問 JMS IQ Manager。 |
根據(jù)需要為用戶分配角色。
配置 Sun JMS IQ Manager
必須配置 JMS IQ Manager,使其能夠找到 LDAP 服務(wù)器,并查找相應(yīng)的信息。
可以啟用多個(gè) LDAP 服務(wù)器。此外,您還可以指定默認(rèn)領(lǐng)域。
配置 Sun JMS IQ Manager
如果應(yīng)用服務(wù)器沒有運(yùn)行,請(qǐng)啟動(dòng)應(yīng)用服務(wù)器。
登錄到 Configuration Agent。URL 的格式為 http://hostname:port-number/configagent。將主機(jī)名設(shè)置為安裝了應(yīng)用服務(wù)器的計(jì)算機(jī)的 TCP/IP 主機(jī)名。將端口號(hào)設(shè)置為應(yīng)用服務(wù)器的管理端口號(hào)。例如:
http://localhost:4848/configagent
在左側(cè)窗格中,單擊 JMS IQ Manager 節(jié)點(diǎn)(例如 IQ[lowbar]Manager[lowbar]18007)。
單擊“訪問控制”選項(xiàng)卡。
確保選中了“需要驗(yàn)證”標(biāo)簽右側(cè)的復(fù)選框。
如果要啟用 Sun Java System Directory Server,則請(qǐng)選中“啟用 Sun Java System Directory Server”標(biāo)簽右側(cè)的復(fù)選框,然后單擊“顯示屬性”。
下表介紹了顯示的屬性。默認(rèn)值將匹配 Sun Java System Directory Server 的標(biāo)準(zhǔn)模式。查看每個(gè)屬性的默認(rèn)值。如有需要,修改默認(rèn)值。
| 命名提供者 URL? | Java Naming and Directory Interface (JNDI) 服務(wù)提供者的 URL。? 默認(rèn)值為 ldap://IP[lowbar]address:589。 |
| 命名初始工廠? | 創(chuàng)建初始上下文的工廠類的全限定名稱。初始上下文是 JNDI 命名操作的起點(diǎn)。? 默認(rèn)值為 com.sun.jndi.ldap.LdapCtxFactory。 |
| 命名安全驗(yàn)證? | JNDI 命名操作中所使用的安全級(jí)別。? 默認(rèn)值為 simple。 |
| 命名安全主體? | 用于連接 LDAP 服務(wù)器的安全主體。? |
| 命名安全憑證? | 命名安全主體的密碼。? 默認(rèn)值為 STC。在您保存該值然后再次查看該值時(shí),該值將被加密。 |
| 組中組 DN 屬性的名稱? | 組條目中標(biāo)識(shí)名屬性的名稱。? 默認(rèn)值為 entrydn。 |
| 組 DN 中的組名稱字段? | 組標(biāo)識(shí)名中組名稱字段的名稱。? 默認(rèn)值為 cn。 |
| 組父 DN 下的用戶組過濾器? | 用于檢索用戶的所有組的 LDAP 搜索過濾器。此屬性遵循 java.text.MessageFormat 類所支持的語法,使用 {1} 表示用戶的標(biāo)識(shí)名應(yīng)該插入的位置。 默認(rèn)值為 uniquemember={1}。 |
| 組父 DN? | 組條目的父標(biāo)識(shí)名。也就是說,此屬性指定 LDAP 目錄的組部分的根條目。? |
| 用戶中角色名稱屬性的名稱? | 用戶條目中角色名稱屬性的名稱。? 默認(rèn)值為 nsroledn。 |
| 角色 DN 中的角色名稱字段? | 角色標(biāo)識(shí)名中角色名稱字段的名稱。? 默認(rèn)值為 cn。 |
| 角色父 DN? | 角色條目的父標(biāo)識(shí)名。也就是說,此屬性指定 LDAP 目錄的角色部分的根條目。? |
| 搜索組子樹? | 默認(rèn)情況下,將僅在根條目的下一級(jí)搜索 LDAP 目錄的組部分。要啟用對(duì)整個(gè)子樹的搜索,請(qǐng)將該值設(shè)置為 true。 默認(rèn)值為 false。 |
| 搜索角色子樹? | 默認(rèn)情況下,將僅在根條目的下一級(jí)搜索 LDAP 目錄的角色部分。要啟用對(duì)整個(gè)子樹的搜索,請(qǐng)將該值設(shè)置為 true。 默認(rèn)值為 false。 |
| 搜索用戶子樹? | 默認(rèn)情況下,將僅在根條目的下一級(jí)搜索 LDAP 目錄的用戶部分。要啟用對(duì)整個(gè)子樹的搜索,請(qǐng)將該值設(shè)置為 true。 默認(rèn)值為 false。 |
| 用戶中用戶 DN 屬性的名稱? | 用戶條目中標(biāo)識(shí)名屬性的名稱。? 默認(rèn)值為 entrydn。 |
| 用戶中用戶 ID 屬性的名稱? | 用戶條目中用戶 ID 屬性的名稱。? 默認(rèn)值為 uid。 |
| 用戶父 DN? | 用戶條目的父標(biāo)識(shí)名。也就是說,此屬性指定 LDAP 目錄的用戶部分的根條目。? |
如果要啟用 Active Directory,則請(qǐng)選中“啟用 Microsoft Active Directory Server”標(biāo)簽右側(cè)的復(fù)選框,然后單擊“顯示屬性”。
下表介紹了顯示的屬性。默認(rèn)值將匹配 Active Directory 的標(biāo)準(zhǔn)模式。查看每個(gè)屬性的默認(rèn)值。如有需要,修改默認(rèn)值。
| 命名提供者 URL? | Java Naming and Directory Interface (JNDI) 服務(wù)提供者的 URL。? 默認(rèn)值為 ldap://IP[lowbar]address:389。 |
| 命名初始工廠? | 創(chuàng)建初始上下文的工廠類的全限定名稱。初始上下文是 JNDI 命名操作的起點(diǎn)。? 默認(rèn)值為 com.sun.jndi.ldap.LdapCtxFactory。 |
| 命名安全驗(yàn)證? | JNDI 命名操作中所使用的安全級(jí)別。? 默認(rèn)值為 simple。 |
| 命名安全主體? | 用于連接 LDAP 服務(wù)器的安全主體。? |
| 命名安全憑證? | 命名安全主體的密碼。? 默認(rèn)值為 STC。在您保存該值然后再次查看該值時(shí),該值將被加密。 |
| 用戶父 DN? | 用戶條目的父標(biāo)識(shí)名。也就是說,此屬性指定 LDAP 目錄的用戶部分的根條目。? |
| 用戶中用戶 DN 屬性的名稱? | 用戶條目中標(biāo)識(shí)名屬性的名稱。? 默認(rèn)值為 distinguishedName。 |
| 用戶中用戶 ID 屬性的名稱? | 用戶條目中用戶 ID(即登錄 ID)的名稱。? 默認(rèn)值為 sAMAccountName。 |
| 角色父 DN? | 角色條目的父標(biāo)識(shí)名。也就是說,此屬性指定 LDAP 目錄的角色部分的根條目。? |
| 角色中角色 DN 屬性的名稱? | 角色條目中標(biāo)識(shí)名屬性的名稱。? 默認(rèn)值為 cn。 |
| 角色父 DN 下的用戶角色過濾器? | 用于檢索用戶的所有角色的 LDAP 搜索過濾器。此屬性遵循 java.text.MessageFormat 類所支持的語法,使用 {1} 表示用戶的標(biāo)識(shí)名應(yīng)該插入的位置。 默認(rèn)值為 (&(member={1})(objectclass=group))。 |
| 組父 DN? | 組條目的父標(biāo)識(shí)名。也就是說,此屬性指定 LDAP 目錄的組部分的根條目。? |
| 組中組 DN 屬性的名稱? | 組條目中標(biāo)識(shí)名屬性的名稱。? 默認(rèn)值為 distinguishedName。 |
| 組 DN 中的組名稱字段? | 組標(biāo)識(shí)名中組名稱字段的名稱。? 默認(rèn)值為 cn。 |
| 組父 DN 下的用戶組過濾器? | 用于檢索用戶的所有組的 LDAP 搜索過濾器。此屬性遵循 java.text.MessageFormat 類所支持的語法,使用 {1} 表示用戶的標(biāo)識(shí)名應(yīng)該插入的位置。 默認(rèn)值為 (&(member={1})(objectclass=group))。 |
| 搜索組子樹 | 默認(rèn)情況下,將僅在根條目的下一級(jí)搜索 LDAP 目錄的組部分。要啟用對(duì)整個(gè)子樹的搜索,請(qǐng)將該值設(shè)置為 true。 默認(rèn)值為 false。 |
| 搜索用戶子樹? | 默認(rèn)情況下,將僅在根條目的下一級(jí)搜索 LDAP 目錄的用戶部分。要啟用對(duì)整個(gè)子樹的搜索,請(qǐng)將該值設(shè)置為 true。 默認(rèn)值為 false。 |
| 搜索角色子樹? | 默認(rèn)情況下,將僅在根條目的下一級(jí)搜索 LDAP 目錄的角色部分。要啟用對(duì)整個(gè)子樹的搜索,請(qǐng)將該值設(shè)置為 true。 默認(rèn)值為 false。 |
如果要啟用 OpenLDAP Directory Server,則請(qǐng)選中“啟用通用 LDAP 服務(wù)器”標(biāo)簽右側(cè)的復(fù)選框,然后單擊“顯示屬性”。
下表介紹了顯示的屬性。查看每個(gè)屬性的默認(rèn)值。如有需要,修改默認(rèn)值。
| 命名提供者 URL? | Java Naming and Directory Interface (JNDI) 服務(wù)提供者的 URL。? 默認(rèn)值為 ldap://IP[lowbar]address:489。 |
| 命名初始工廠? | 創(chuàng)建初始上下文的工廠類的全限定名稱。初始上下文是 JNDI 命名操作的起點(diǎn)。? 默認(rèn)值為 com.sun.jndi.ldap.LdapCtxFactory。 |
| 命名安全驗(yàn)證? | JNDI 命名操作中所使用的安全級(jí)別。? 默認(rèn)值為 simple。 |
| 用戶父 DN? | 用戶條目的父標(biāo)識(shí)名。也就是說,此屬性指定 LDAP 目錄的用戶部分的根條目。? |
| 用戶中用戶 ID 屬性的名稱? | 用戶條目中用戶 ID 屬性的名稱。? 默認(rèn)值為 uid。 |
| 角色父 DN? | 角色條目的父標(biāo)識(shí)名。也就是說,此屬性指定 LDAP 目錄的角色部分的根條目。? |
| 角色中角色名稱屬性的名稱? | 用戶條目中角色名稱屬性的名稱。? 默認(rèn)值為 cn。 |
| 角色父 DN 下的用戶角色過濾器? | 用于檢索用戶的所有角色的 LDAP 搜索過濾器。此屬性遵循 java.text.MessageFormat 類所支持的語法,使用 {1} 表示用戶的標(biāo)識(shí)名應(yīng)該插入的位置。 默認(rèn)值為 uniquemember={1}。 |
| 組 DN 中的組名稱字段? | 組標(biāo)識(shí)名中組名稱字段的名稱。? 默認(rèn)值為 cn。 |
| 組父 DN? | 組條目的父標(biāo)識(shí)名。也就是說,此屬性指定 LDAP 目錄的組部分的根條目。? |
| 組父 DN 下的用戶組過濾器? | 用于檢索用戶的所有組的 LDAP 搜索過濾器。此屬性遵循 java.text.MessageFormat 類所支持的語法,使用 {1} 表示用戶的標(biāo)識(shí)名應(yīng)該插入的位置。 默認(rèn)值為 uniquemember={1}。 |
| 搜索組子樹 | 默認(rèn)情況下,將僅在根條目的下一級(jí)搜索 LDAP 目錄的組部分。要啟用對(duì)整個(gè)子樹的搜索,請(qǐng)將該值設(shè)置為 true。 默認(rèn)值為 false。 |
| 搜索用戶子樹? | 默認(rèn)情況下,將僅在根條目的下一級(jí)搜索 LDAP 目錄的用戶部分。要啟用對(duì)整個(gè)子樹的搜索,請(qǐng)將該值設(shè)置為 true。 默認(rèn)值為 false。 |
| 搜索角色子樹? | 默認(rèn)情況下,將僅在根條目的下一級(jí)搜索 LDAP 目錄的角色部分。要啟用對(duì)整個(gè)子樹的搜索,請(qǐng)將該值設(shè)置為 true。 默認(rèn)值為 false。 |
如果要更改默認(rèn)領(lǐng)域,請(qǐng)從“默認(rèn)領(lǐng)域”下拉列表中選擇該領(lǐng)域。
單擊“保存”。
將 LDAP 服務(wù)器用于 Enterprise Manager 用戶管理
可以將 Enterprise Manager 配置為使用 LDAP 服務(wù)器進(jìn)行用戶管理。
支持以下 LDAP 服務(wù)器:
-
Sun Java System Directory Server 版本 5.1、5.2 和 6.x
-
Microsoft 的 Active Directory(Windows Server 2003 隨附的版本)
-
OpenLDAP Directory Server 2.x
首先,應(yīng)配置 LDAP 服務(wù)器。然后,配置 Enterprise Manager 服務(wù)器,使其可以找到 LDAP 服務(wù)器,并查找相應(yīng)的信息(例如目錄中包含用戶的部分)。
《管理 Java CAPS 用戶》提供了有關(guān) Enterprise Manager 用戶管理的基本信息。
配置 Sun Java System Directory Server
Sun Java System Directory Server 版本 5.1 和 5.2 包含以下主要組件:
-
Directory Server
-
Administration Server
-
Directory Server 控制臺(tái)
可以使用 Directory Server 控制臺(tái)執(zhí)行大多數(shù)管理任務(wù)。該控制臺(tái)包含四個(gè)頂級(jí)選項(xiàng)卡:“任務(wù)”、“配置”、“目錄”和“狀態(tài)”。“目錄”選項(xiàng)卡將目錄條目顯示為樹。可以通過此選項(xiàng)卡瀏覽、顯示和編輯所有條目和屬性。
還可以通過編輯配置文件或使用命令行實(shí)用程序手動(dòng)執(zhí)行管理任務(wù)。
Sun Java System Directory Server 版本 6.x 提供以下方式來管理目錄中的條目:
-
Directory Service Control Center (DSCC)
-
目錄編輯器
-
ldapmodify 和 ldapdelete 命令行實(shí)用程序
DSCC 已集成到 Sun JavaTM Web Console 中。DSCC 包含五個(gè)頂級(jí)選項(xiàng)卡:“一般任務(wù)”、“目錄服務(wù)器”、“代理服務(wù)器”、“服務(wù)器組”和“設(shè)置”。
依次單擊“目錄服務(wù)器”選項(xiàng)卡、服務(wù)器的名稱和“條目管理”選項(xiàng)卡后,將顯示可以瀏覽、添加和修改條目的頁面。目錄信息樹 (Directory Information Tree, DIT) 將顯示在左側(cè)。
還可以使用“一般任務(wù)”選項(xiàng)卡創(chuàng)建新條目或?yàn)g覽數(shù)據(jù)。
注 –
有關(guān)如何執(zhí)行以下步驟的詳細(xì)信息,請(qǐng)參見隨 Sun Java System Directory Server 提供的文檔。
配置 Sun Java System Directory Server
在 People 目錄下創(chuàng)建 admin 用戶和 Administrator 用戶。
在頂部節(jié)點(diǎn)下創(chuàng)建以下角色:
-
Deployment
-
User Management
-
Read-Only Monitor
-
Controlling Monitor
-
JMS Read-Only Monitor
-
JMS Read-Write Monitor
-
Manager
將創(chuàng)建的角色分配給 admin 用戶和 Administrator 用戶。
轉(zhuǎn)至配置 Enterprise Manager Server。
配置 Active Directory 服務(wù)
Active Directory 是 Windows 2003 的一個(gè)關(guān)鍵部件。它提供了各種可管理性、安全性以及互操作性功能。主要的管理工具是名為“Active Directory 用戶和計(jì)算機(jī)”的管理單元。
Active Directory 不支持角色的概念。因此,在 Active Directory 中,必須使用組的概念模擬 Enterprise Manager 角色。
注 –
有關(guān)如何執(zhí)行以下步驟的詳細(xì)信息,請(qǐng)參見隨 Active Directory 提供的文檔。
配置 Active Directory 服務(wù)
啟動(dòng)“Active Directory 用戶和計(jì)算機(jī)”管理工具。
右鍵單擊根節(jié)點(diǎn),然后選擇“新建”>“組織單位”。
將顯示“新建對(duì)象 - 組織單位”對(duì)話框。
在“名稱”字段中,輸入一個(gè)值(例如 EntMgrRoles)。
單擊“確定”。
在該組織單位下,創(chuàng)建以下組:
-
Deployment
-
User Management
-
Read-Only Monitor
-
Controlling Monitor
-
JMS Read-Only Monitor
-
JMS Read-Write Monitor
-
Manager
添加組后,這些組將顯示在該組織單位下。
將 admin 用戶和 Administrator 用戶作為您所創(chuàng)建的所有組的成員添加,方法是:雙擊每個(gè)組,然后從對(duì)話框中選擇 admin 和 Administrator。
轉(zhuǎn)至配置 Enterprise Manager Server。
配置 OpenLDAP Directory Server
OpenLDAP 項(xiàng)目提供了 LDAP 協(xié)議的開源實(shí)現(xiàn)。LDAP 服務(wù)器將作為名為 slapd 的獨(dú)立守護(hù)進(jìn)程運(yùn)行。主要的配置文件名為 slapd.conf。此文件包含全局信息、特定于后端的信息以及特定于數(shù)據(jù)庫的信息。可以使用多種方式將條目添加到數(shù)據(jù)庫,例如,可以使用 slapadd 程序。要搜索數(shù)據(jù)庫,請(qǐng)使用 ldapsearch 程序。
有關(guān)詳細(xì)信息,請(qǐng)參見 http://www.openldap.org。
注 –
有關(guān)如何執(zhí)行以下步驟的詳細(xì)信息,請(qǐng)參見隨 OpenLDAP Directory Server 提供的文檔。
配置 OpenLDAP Directory Server
在用戶所在的節(jié)點(diǎn)下創(chuàng)建 admin 用戶和 Administrator 用戶。
如果您的模式中沒有用于角色的節(jié)點(diǎn),請(qǐng)為將在以下步驟中創(chuàng)建的 Enterprise Manager 角色創(chuàng)建一個(gè)節(jié)點(diǎn)。
在角色所在的節(jié)點(diǎn)下創(chuàng)建以下角色:
-
Deployment
-
User Management
-
Read-Only Monitor
-
Controlling Monitor
-
JMS Read-Only Monitor
-
JMS Read-Write Monitor
-
Manager
將 admin 用戶和 Administrator 用戶作為每個(gè)角色的唯一成員添加。
根據(jù)需要,將其他用戶添加到一個(gè)或多個(gè)角色。
轉(zhuǎn)至配置 Enterprise Manager Server。
配置 Enterprise Manager Server
配置 LDAP 服務(wù)器后,可配置 Enterprise Manager Server,使其可以找到 LDAP 服務(wù)器,并查找相應(yīng)的信息。
必須編輯以下 Enterprise Manager 文件:web.xml 和 ldap.properties。
配置 Enterprise Manager Server
關(guān)閉 Enterprise Manager 的服務(wù)器組件。
打開 web.xml 文件,該文件位于 JavaCAPS-install-dir/emanager/server/webapps/sentinel/WEB-INF 目錄中。
找到以下行:
<param-name>com.stc.emanager.sentinel.authHandler</param-name> <param-value>com.stc.cas.auth.provider.tomcat.TomcatPasswordHandler</param-value> |
將參數(shù)值更改為:
<param-value>com.stc.cas.auth.provider.ldap.LDAPHandler</param-value> |
保存 web.xml 文件。
打開 ldap.properties 文件,該文件位于 JavaCAPS-install-dir/emanager/server/webapps/sentinel/WEB-INF/classes 目錄中。
下表介紹了 ldap.properties 文件中出現(xiàn)的所有屬性。針對(duì)您的 LDAP 服務(wù)器編輯該部分中的屬性,并確保未注釋掉這些屬性。
| com.stc.sentinel.auth.ldap.serverType? | LDAP 服務(wù)器的類型。? |
| com.stc.sentinel.auth.ldap.serverUrl? | LDAP 服務(wù)器的 URL。? |
| com.stc.sentinel.auth.ldap.searchFilter? | 用戶條目中用戶 ID 屬性的名稱。? |
| com.stc.sentinel.auth.ldap.searchBase? | Enterprise Manager 將在其中搜索用戶的 LDAP 目錄部分的根條目。? |
| com.stc.sentinel.auth.ldap.searchScope? | 當(dāng)前未使用此屬性。? |
| com.stc.sentinel.auth.ldap.bindDN? | 用于連接 LDAP 服務(wù)器的安全主體。? |
| com.stc.sentinel.auth.ldap.bindPassword? | 安全主體的密碼。? |
| com.stc.sentinel.auth.ldap.referral? | LDAP 引用策略。默認(rèn)值為 follow,表示將自動(dòng)執(zhí)行 LDAP 引用。請(qǐng)注意,必須在 LDAP 服務(wù)器中啟用引用。其他有效值為 throw(對(duì)于引用異常)和 ignore。 此屬性為可選屬性。? 此屬性僅出現(xiàn)在 Active Directory 和 OpenLDAP 屬性集中。? |
| com.stc.sentinel.auth.ldap.roleAttribute? | 用戶條目中角色名稱屬性的名稱。? |
| com.stc.sentinel.auth.ldap.roleBaseDN? | Enterprise Manager 將在其中搜索角色的 LDAP 目錄部分的根條目。? 此屬性僅出現(xiàn)在 OpenLDAP 屬性集中。? |
| com.stc.sentinel.auth.ldap.rolePattern? | 使用此屬性可以為角色名稱配置模式匹配。在 LDAP 目錄中,您可以將 Enterprise Manager 用戶放置在與其他用戶不同的單獨(dú)業(yè)務(wù)范圍中。? 此屬性僅出現(xiàn)在 Active Directory 屬性集中。? |
保存 ldap.properties 文件。
啟動(dòng) Enterprise Manager 的服務(wù)器組件。
動(dòng)態(tài)指定應(yīng)用程序配置屬性
要指定應(yīng)用程序配置屬性,可以使用靜態(tài)方法,也可以使用動(dòng)態(tài)方法。
若使用靜態(tài)方法,請(qǐng)?jiān)谠O(shè)計(jì)時(shí)在 NetBeans IDE 中指定屬性值。此屬性值包含在應(yīng)用程序文件中。如果需要在部署后更改該值,則必須在 NetBeans IDE 中更改該值,重新生成應(yīng)用程序文件,并重新部署應(yīng)用程序文件。
若使用動(dòng)態(tài)方法,請(qǐng)?jiān)谠O(shè)計(jì)時(shí)指定 LDAP URL。此 URL 必須指向 LDAP 服務(wù)器中的屬性。部署應(yīng)用程序文件時(shí),實(shí)際值是從 LDAP 服務(wù)器檢索的。部署后可以在 LDAP 服務(wù)器中更改該值,而不執(zhí)行靜態(tài)方法的步驟。但是,為了使更改生效,必須先禁用此應(yīng)用程序文件,然后再將其重新啟用。
可以對(duì)接受字符串值(包括密碼)、數(shù)字值或布爾值的屬性使用此功能。
注 –
另一種用于更新屬性值的方法不需要使用 LDAP。在 asadmin 工具中,運(yùn)行 extract-caps-application-configuration 命令。指定應(yīng)用程序文件的配置屬性將被提取為屬性文件。更新一個(gè)或多個(gè)屬性值,然后運(yùn)行 import-caps-configuration 命令。重新啟動(dòng)應(yīng)用程序。
啟用應(yīng)用服務(wù)器以訪問 LDAP 服務(wù)器
在此任務(wù)中,將編輯用于指定應(yīng)用服務(wù)器如何訪問 LDAP 服務(wù)器的屬性。
啟用應(yīng)用服務(wù)器以訪問 LDAP 服務(wù)器
啟動(dòng) Sun Java System Application Server 中隨附的 asadmin 工具。
運(yùn)行 export-caps-ldap-configuration 命令。您必須指定要用于存儲(chǔ) LDAP.properties 文件的目錄。
asadmin> export-caps-ldap-configuration --capsconfigdir c:\temp |
將生成 LDAP.properties 文件。
使用文本編輯器打開 LDAP.properties 文件。
設(shè)置以下屬性的值,這些屬性用于指定如何訪問 LDAP 服務(wù)器。
-
host
-
port
-
sslport
-
password
-
loginDN
ldapVersion 是可選屬性。可以將此屬性設(shè)置為任何數(shù)字值。
保存 LDAP.properties 文件。
運(yùn)行 import-caps-configuration 命令。必須指定包含 LDAP.properties 文件的目錄。
asadmin> import-caps-configuration c:\temp |
啟動(dòng) Sun Java System Application Server 中隨附的管理控制臺(tái)。
在左窗格中,依次展開 CAPS 節(jié)點(diǎn)、Environment and CM Overrides 節(jié)點(diǎn)和 Environment Overrides 節(jié)點(diǎn)。選擇 capsenv/LDAP 節(jié)點(diǎn)。
屬性字段將顯示在右窗格中。現(xiàn)在即可從管理控制臺(tái)更新這些屬性。也可以更新 LDAP.properties 文件,然后再次運(yùn)行 import-caps-configuration 命令。
為屬性指定 LDAP URL
以下是可以在 Java CAPS 中使用的 LDAP URL 的兩個(gè)示例:
ldap://uid=BatchFTP_TargetFileName,ou=Batch_Adapter,dc=Adapters,dc=sun,dc=com?cn ldap://uid=BatchFTP_Password,ou=Batch_Adapter,dc=Adapters,dc=sun,dc=com?cn |
指向 LDAP 服務(wù)器中屬性值的正確路徑取決于目錄結(jié)構(gòu)。
請(qǐng)勿在 LDAP URL 中包含反斜線字符 ()。
RFC 2255 定義了 LDAP URL 的格式。您可以在 http://www.ietf.org/rfc.html 中查看 RFC。
為屬性指定 LDAP URL
在 NetBeans IDE 中,訪問包含此屬性的“屬性”對(duì)話框。
輸入指向 LDAP 服務(wù)器中對(duì)應(yīng)屬性的 LDAP URL。
在以下屏幕捕獲中,"Input File Name"(輸入文件名)屬性設(shè)置為 LDAP URL。
轉(zhuǎn)至 LDAP 服務(wù)器,然后輸入實(shí)際值。
部署應(yīng)用程序文件時(shí),請(qǐng)確保 LDAP 服務(wù)器正在運(yùn)行。如果未運(yùn)行 LDAP 服務(wù)器,則部署將不會(huì)成功。
總結(jié)
以上是生活随笔為你收集整理的在 Java CAPS 中使用 LDAP的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: JCAPS
- 下一篇: LDAP 中 CN, OU, DC 的含