LDAP组的概念以及命令
Oracle統(tǒng)一目錄支持組,組是作為單個對象管理的條目集合。通常,目錄管理員配置打印機組、軟件應(yīng)用程序組、員工組等。在為一組用戶分配特殊訪問權(quán)限時,組尤其有用。例如,您可以配置一組訪問管理器,并分配權(quán)限,使其能夠查看機密員工數(shù)據(jù),但限制公司中的任何其他人訪問該數(shù)據(jù)。
支持以下組類型:
| 靜態(tài)組 | 通過使用groupOfNames、groupOfUniqueNames或groupOfEntries對象類提供顯式的可分辨名稱集(DNs)來定義其成員身份。靜態(tài)組得到了外部客戶機的良好支持,并提供了良好的性能。 靜態(tài)組是其條目包含顯式DNs的成員列表的組。許多客戶機支持靜態(tài)組,但隨著組中成員數(shù)量的增加,靜態(tài)組很難管理。例如,如果有需要更改DN的成員條目,則必須為該用戶所屬的每個組更改該用戶的DN。 目錄服務(wù)器支持以下三種類型的靜態(tài)組,根據(jù)它們使用的對象類進行劃分:
? | ||||||
| 查看靜態(tài)組成員方法 |
$ ldapsearch -h localhost -p 1389 -D "cn=Directory Manager" -j pwd-file \-b dc=example,dc=com \"(isMemberOf=cn=Accounting Managers,ou=Groups,dc=example,dc=com)"
dn: uid=scarter,ou=People,dc=example,dc=com
objectClass: person
objectClass: inetOrgPerson
objectClass: top
objectClass: organizationalPerson
ou: Accounting
ou: People
sn: Carter
facsimiletelephonenumber: +1 408 555 9751
roomnumber: 4612
userpassword: {SSHA}3KiJ51sx2Ug7DxZoq0vA9ZY6uaomevbJUBm7OA==
l: Sunnyvale
cn: Sam Carter
telephonenumber: +1 408 555 4798
givenname: Sam
uid: scarter
mail: scarter@example.comdn: uid=tmorris,ou=People,dc=example,dc=com
objectClass: person
objectClass: inetOrgPerson
objectClass: top
objectClass: organizationalPerson
ou: Accounting
ou: People
sn: Morris
facsimiletelephonenumber: +1 408 555 8473
roomnumber: 4117
userpassword: {SSHA}bjFFHv6k1kbI6fZoCEfqmTj9XOZxWR06gxpKpQ==
l: Santa Clara
cn: Ted Morris
telephonenumber: +1 408 555 9187
givenname: Ted
uid: tmorris
mail: tmorris@example.com
19.3.1.5 Viewing All Static Groups of Which a User Is a Member
Search using ldapsearch and the virtual attribute cn=IsMemberOf, as shown in the following example:查看用戶所屬的所有靜態(tài)組
$ ldapsearch -h localhost -p 1389 -D "cn=Directory Manager" -j pwd-file \-b dc=example,dc=com "(uid=scarter)" isMemberOf
dn: uid=scarter,ou=People,dc=example,dc=com
isMemberOf: cn=Accounting Managers,ou=groups,dc=example,dc=com確定用戶是否是組的成員
$ ldapsearch -h localhost -p 1389 -D "cn=Directory Manager" -j pwd-file \-b "cn=Account Managers,ou=Groups,dc=example,dc=com" \"(&(objectclass=groupOfUniqueNames) \(uniquemember=uid=scarter,ou=People,dc=example,dc=com))"
dn: cn=Accounting Managers,ou=groups,dc=example,dc=com
objectClass: groupOfUniqueNames
objectClass: top
ou: groups
description: People who can manage accounting entries
cn: Accounting Managers
uniquemember: uid=scarter, ou=People, dc=example,dc=com
uniquemember: uid=tmorris, ou=People, dc=example,dc=com ? | ||||||
| 動態(tài)組 | 動態(tài)組使用一組LDAP URL形式的搜索條件(使用groupofurl對象類)定義其成員身份。動態(tài)組可以很好地處理大量成員(數(shù)百萬個條目)。隨著條目的更新,所有父組都會自動更新。 動態(tài)組的一個缺點是不是所有的客戶端都支持它們。如果必須查詢整個條目列表,性能也會受到不利影響。因此,動態(tài)組最適合具有大量條目的組或需要確定條目的特定組成員身份的客戶端。 動態(tài)組是指其成員資格(而不是在列表中顯式維護)由使用LDAP URL的搜索條件確定的組。例如,假設(shè)您希望向dc=example,dc=com命名上下文中的所有經(jīng)理發(fā)送電子郵件。為此,創(chuàng)建一個動態(tài)組,在其中指定cn=Managers、ou=Groups、dc=example、dc=com。您進一步指定只希望返回電子郵件地址。當(dāng)電子郵件應(yīng)用程序查詢該特定組的目錄時,目錄服務(wù)器動態(tài)計算成員資格并返回相應(yīng)的電子郵件地址列表。 動態(tài)組使用groupOfURL對象類和memberURL屬性來定義LDAP URL,其中包含用于確定組成員的條件(搜索基、范圍和篩選器)。確定用戶是否是動態(tài)組的成員的機制是一個常數(shù)時間操作,因此對于擁有數(shù)百萬成員的組,它的效率與對于只有少數(shù)成員的組一樣高。但是,在指定搜索條件時必須小心,因為如果搜索大量數(shù)據(jù),可能會對性能產(chǎn)生不利影響
| ||||||
| ? | ? | ||||||
| 虛擬靜 態(tài)組 | 對于外部客戶端,虛擬靜態(tài)組的顯示和行為與靜態(tài)組類似,只是每個成員都由一個虛擬屬性表示,該屬性根據(jù)需要從另一個動態(tài)組定義其成員身份。 虛擬靜態(tài)組允許只能支持靜態(tài)組的客戶端訪問動態(tài)組。 在虛擬靜態(tài)組中,通過使用虛擬屬性,每個條目的行為類似于靜態(tài)組條目。虛擬屬性在調(diào)用時是動態(tài)確定的,確定組成員身份的操作被傳遞給另一個組 虛擬靜態(tài)組應(yīng)包括GroupNoNames或GroupOfInQueNames對象類,但不應(yīng)包含member或uniqueMember屬性 。虛擬靜態(tài)組還應(yīng)包含ds虛擬靜態(tài)組輔助對象類和ds目標(biāo)組dn屬性。ds目標(biāo)組dn屬性用于引用要鏡像為虛擬靜態(tài)組的實際組,并用于替代成員或uniquemember屬性 dn: cn=Example Virtual Static Group,ou=Groups,dc=example,dc=com objectClass: top objectClass: groupOfUniqueNames objectClass: ds-virtual-static-group cn: Example Virtual Static Group ds-target-group-dn: cn=Example Real Group,ou=Groups,dc=example,dc=com當(dāng)應(yīng)用程序以成員資格屬性為目標(biāo)進行搜索,但實際上沒有檢索到整個成員集時,虛擬靜態(tài)組的效率最高。應(yīng)用程序通常使用如下篩選器來嘗試確定用戶是否是給定組的成員: (&(objectClass=groupOfUniqueNames)(uniqueMember=uid=john.doe,\ou=People,dc=example,dc=com))對于檢索成員集的應(yīng)用程序,虛擬靜態(tài)組可能并不理想,因為構(gòu)建整個成員列表的過程可能非常昂貴。 | ||||||
| 創(chuàng)建指定組的 LDIF 文件。 此示例文件指定了一個名為虛擬靜態(tài)組。virtual-static.ldifcupertinoEmployees dn: cn=virtualStatic,ou=Groups,dc=example,dc=com cn: Virtual Static objectclass: top objectclass: groupOfUniqueNames objectclass: ds-virtual-static-group ou: Groups ds-target-group-dn: cn=cupertinoEmployees,ou=Groups,dc=example,dc=com通過處理 LDIF 文件來添加組。ldapmodify $ ldapmodify -h localhost -p 1389 -D "cn=Directory Manager" -j pwd-file \--defaultAdd --filename virtual-static.ldif Processing ADD request for cn=virtualStatic,ou=Groups,dc=example,dc=com ADD operation successful for DN cn=virtualStatic,ou=Groups,dc=example,dc=com | |||||||
| ? | |||||||
嵌套組 | 組可以嵌套,其中一個組定義為子組條目,其DN列在另一個組(其父組)中。組嵌套允許您在性能不是優(yōu)先級時設(shè)置繼承的組成員身份。可以將零個或多個成員屬性的值設(shè)置為嵌套子組(包括靜態(tài)和動態(tài)組)的DNs 此示例過程使用一個靜態(tài)組和一個動態(tài)組創(chuàng)建嵌套組。 創(chuàng)建指定靜態(tài)組的 LDIF 文件。 此示例文件指定了一個名為虛擬靜態(tài)組。static-group.ldifDev Contractors dn: cn=Contractors,ou=Groups,dc=example,dc=com cn: Dev Contractors objectclass: top objectclass: groupOfUniqueNames ou: Dev Contractors Static Group uniquemember: uid=wsmith,ou=Contractors,dc=example,dc=com uniquemember: uid=jstearn,ou=Contractors,dc=example,dc=com uniquemember: uid=pbrook,ou=Contractors,dc=example,dc=com uniquemember: uid=njohnson,ou=Contractors,dc=example,dc=com uniquemember: uid=sjones,ou=Contractors,dc=example,dc=com通過處理 LDIF 文件來添加組。ldapmodify $ ldapmodify -h localhost -p 1389 -D "cn=Directory Manager" -j pwd-file \--defaultAdd --filename static-group.ldif創(chuàng)建指定動態(tài)組的 LDIF 文件。 此示例文件指定了一個名為 動態(tài)組。dynamic-group.ldifDevelopers dn: cn=Developers,ou=Groups,dc=example,dc=com cn: Developers objectclass: top objectclass: groupOfURLs ou: Groups memberURL: ldap:///ou=People,dc=example,dc=com??sub?(ou=Product Development)通過處理 LDIF 文件來添加組。ldapmodify $ ldapmodify -h localhost -p 1389 -D "cn=Directory Manager" -j pwd-file \--defaultAdd --filename dynamic-group.ldif創(chuàng)建指定嵌套靜態(tài)組的 LDIF 文件。 此示例文件指定了一個名為"嵌套"的組。nested-group.ldifDevelopers Group dn: cn=DevelopersGroup,ou=Groups,dc=example,dc=com cn: Developers Group objectclass: top objectclass: groupOfUniqueNames ou: Nested Static Group uniquemember: cn=Contractors,ou=Groups,dc=example,dc=com uniquemember: cn=Developers,ou=Groups,dc=example,dc=com通過處理 LDIF 文件添加組,ldapmodify $ ldapmodify -h localhost -p 1389 -D "cn=Directory Manager" -j pwd-file \--defaultAdd --filename nested-group.ldif | ||||||
?
總結(jié)
以上是生活随笔為你收集整理的LDAP组的概念以及命令的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Java并发篇_synchronized
- 下一篇: 网页搜索帮助-禁止搜索引擎收录的方法