日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

LDAP组的概念以及命令

發布時間:2025/3/8 编程问答 15 豆豆
生活随笔 收集整理的這篇文章主要介紹了 LDAP组的概念以及命令 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Oracle統一目錄支持組,組是作為單個對象管理的條目集合。通常,目錄管理員配置打印機組、軟件應用程序組、員工組等。在為一組用戶分配特殊訪問權限時,組尤其有用。例如,您可以配置一組訪問管理器,并分配權限,使其能夠查看機密員工數據,但限制公司中的任何其他人訪問該數據。

支持以下組類型:

靜態組

通過使用groupOfNames、groupOfUniqueNames或groupOfEntries對象類提供顯式的可分辨名稱集(DNs)來定義其成員身份。靜態組得到了外部客戶機的良好支持,并提供了良好的性能。

靜態組是其條目包含顯式DNs的成員列表的組。許多客戶機支持靜態組,但隨著組中成員數量的增加,靜態組很難管理。例如,如果有需要更改DN的成員條目,則必須為該用戶所屬的每個組更改該用戶的DN。

目錄服務器支持以下三種類型的靜態組,根據它們使用的對象類進行劃分:

groupOfNames

可以通過使用groupOfNames對象類和使用member屬性顯式指定成員DNs來定義靜態組

dn: cn=Example Static Group 1,ou=Groups,dc=example,dc=com objectClass: top objectClass: groupOfNames member: uid=user1,ou=People,dc=example,dc=com member: uid=user2,ou=People,dc=example,dc=com cn: Example Static Group 1

RFC 4519(https://www.ietf.org/rfc/rfc4519.txt)要求成員屬性在groupOfNames對象類中是必需的。當管理員試圖刪除組中的最后一個成員時,此成員資格要求通常會導致數據管理問題。目錄服務器通過允許成員屬性是可選的來解決這個問題。可選的成員資格要求允許您在刪除組的最后一個成員時擁有空的對象類。

?

dn: cn=Directory Administrators,ou=Groups,dc=example,dc=com cn: Directory Administrators objectclass: top objectclass: groupOfNames ou: Groups member: uid=ttully,ou=People,dc=example,dc=com member: uid=charvey,ou=People,dc=example,dc=com member: uid=rfisher,ou=People,dc=example,dc=comldapmodify -h localhost -p 1389 -D "cn=Directory Manager" -j pwd-file \--defaultAdd --filename static-group1.ldif Processing ADD request for cn=Directory Administrators,ou=Groups,dc=example,dc=com ADD operation successful for DN cn=Directory Administrators,ou=Groups,dc=example,dc=comldapsearch -h localhost -p 1389 -D "cn=Directory Manager" -j pwd-file \--baseDN dc=example,dc=com "(uid=ttully)" isMemberOf dn: uid=ttully,ou=People,dc=example,dc=com isMemberOf: cn=Directory Administrators,ou=Groups,dc=example,dc=com

?

groupOfUniqueNames

可以通過使用groupOfUniqueNames對象類和使用uniqueMember屬性顯式指定成員DNs來定義靜態組。groupOfUniqueNames對象類與groupOfNames對象類的不同之處在于,可以通過指定唯一DN和可選標識符來枚舉組的成員。標識符確保在添加、刪除或重命名任何對象時可以標識唯一的對象。

例如,您可以刪除或移動一個員工(cn=Tom Smith),然后將一個同名的新員工(cn=Tom Smith)添加到目錄中。要區分兩者,必須使用位字符串添加單獨的標識符。下面的示例顯示了兩個同名的用戶,但第二個uniqueMember有一個可選的標識符。

uniqueMember: uid=tsmith,ou=People,dc=example,dc=com uniqueMember: uid=tsmith,ou=People,dc=example,dc=com#'0111101'B

很少有LDAP應用程序實際使用可選的UID標識符。

RFC 4519(https://www.ietf.org/rfc/rfc4519.txt)要求在groupOfUniqueNames對象類中uniqueMember屬性是必需的。當管理員試圖刪除組中的最后一個成員時,此成員資格要求曾經導致數據管理問題。Oracle統一目錄允許uniqueMember屬性是可選的,從而解決了這個問題。可選的成員資格要求允許您在刪除組的最后一個成員時擁有空的對象類。

dn: cn=Example Static Group 2,ou=Groups,dc=example,dc=com objectClass: top objectClass: groupOfUniqueNames uniqueMember: uid=user1,ou=People,dc=example,dc=com uniqueMember: uid=user2,ou=People,dc=example,dc=com cn: Example Static Group 2 dn: cn=Directory Administrators2,ou=Groups,dc=example,dc=com cn: Directory Administrators2 objectclass: top objectclass: groupOfUniqueNames ou: Groups uniquemember: uid=alangdon,ou=People,dc=example,dc=com uniquemember: uid=drose,ou=People,dc=example,dc=com uniquemember: uid=polfield,ou=People,dc=example,dc=comldapmodify -h localhost -p 1389 -D "cn=Directory Manager" -j pwd-file \--defaultAdd --filename static-group2.ldifldapsearch -h localhost -p 1389 -D "cn=Directory Manager" -j pwd-file \--baseDN dc=example,dc=com "(uid=rdaugherty)" isMemberOf dn: uid=alangdon,ou=People,dc=example,dc=com isMemberOf: cn=Directory Administrators2,ou=Groups,dc=example,dc=com

?

groupOfEntries

可以使用groupOfEntries對象類定義靜態組。基于原始規范(RFC 4519(http://www.rfc-editor.org/rfc/rfc4519.txt)和draft-findlay-ldap-groupofentries-00.txt(2008年3月到期),groupofentries對象類與groupOfNames和groupOfUniqueNames對象類的不同之處在于屬性是可選的,它使您能夠指定一個沒有任何成員的空對象類。

Oracle統一目錄支持groupOfEntries草稿,但也允許空groupOfNames和groupOfUniqueNames對象類。因此,您可以創建任何類型的空組(groupOfEntries、groupOfNames和groupOfUniqueNames)。

dn: cn=Example Static Group 3,ou=Groups,dc=example,dc=com objectClass: top objectClass: groupOfEntries cn: Example Static Group 3 dn: cn=Directory Administrators3,ou=Groups,dc=example,dc=com cn: Directory Administrators3 objectclass: top objectclass: groupOfEntries ou: Groups member: uid=bfrancis,ou=People,dc=example,dc=com member: uid=tjames,ou=People,dc=example,dc=com member: uid=bparker,ou=People,dc=example,dc=comldapmodify -h localhost -p 1389 -D "cn=Directory Manager" -j pwd-file \--defaultAdd --filename static-group3.ldifldapsearch -h localhost -p 1389 -D "cn=Directory Manager" -j pwd-file \--baseDN dc=example,dc=com "(uid=bparker)" isMemberOf dn: uid=bparker,ou=People,dc=example,dc=com isMemberOf: cn=Directory Administrators3,ou=Groups,dc=example,dc=com

?

?

查看靜態組成員方法 $ 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:查看用戶所屬的所有靜態組 $ 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

?

動態組

動態組使用一組LDAP URL形式的搜索條件(使用groupofurl對象類)定義其成員身份。動態組可以很好地處理大量成員(數百萬個條目)。隨著條目的更新,所有父組都會自動更新。

動態組的一個缺點是不是所有的客戶端都支持它們。如果必須查詢整個條目列表,性能也會受到不利影響。因此,動態組最適合具有大量條目的組或需要確定條目的特定組成員身份的客戶端。

動態組是指其成員資格(而不是在列表中顯式維護)由使用LDAP URL的搜索條件確定的組。例如,假設您希望向dc=example,dc=com命名上下文中的所有經理發送電子郵件。為此,創建一個動態組,在其中指定cn=Managers、ou=Groups、dc=example、dc=com。您進一步指定只希望返回電子郵件地址。當電子郵件應用程序查詢該特定組的目錄時,目錄服務器動態計算成員資格并返回相應的電子郵件地址列表。

動態組使用groupOfURL對象類和memberURL屬性來定義LDAP URL,其中包含用于確定組成員的條件(搜索基、范圍和篩選器)。確定用戶是否是動態組的成員的機制是一個常數時間操作,因此對于擁有數百萬成員的組,它的效率與對于只有少數成員的組一樣高。但是,在指定搜索條件時必須小心,因為如果搜索大量數據,可能會對性能產生不利影響

此示例為位于庫比蒂諾的員工指定了動態組。

dn: cn=cupertinoEmployees,ou=Groups,dc=example,dc=com cn: CupertinoEmployees objectclass: top objectclass: groupOfURLs ou: Groups memberURL: ldap:///ou=People,dc=example,dc=com??sub?(l=Cupertino) $ ldapmodify -h localhost -p 1389 -D "cn=Directory Manager" -j pwd-file \--defaultAdd --filename dynamic_group.ldif Processing ADD request for cn=cupertionEmployees,ou=Groups,dc=example,dc=com ADD operation successful for DN cn=cupertionEmployees,ou=Groups,dc=example,dc=com

?

$ ldapsearch -h localhost -p 1389 -D "cn=Directory Manager" -j pwd-file \-b "dc=example,dc=com" \ "(isMemberOf=cn=cupertinoEmployees,ou=Groups,dc=example,dc=com)" dn: uid=abergin,ou=People,dc=example,dc=com objectClass: person objectClass: inetOrgPerson objectClass: top objectClass: organizationalPerson ou: Product Testing ou: People sn: Bergin facsimiletelephonenumber: +1 408 555 7472 roomnumber: 3472 userpassword: {SSHA}YcDl0pHLxkd/ouW2jslAk1XaT5SiY4ium5qh8w== l: Cupertino cn: Andy Bergin telephonenumber: +1 408 555 8585 givenname: Andy uid: abergin mail: abergin@example.com ...(more entries)... $ ldapsearch -h localhost -p 1389 -D "cn=Directory Manager" -j pwd-file \-b dc=example,dc=com "(uid=abergin)" isMemberOf dn: uid=abergin,ou=People,dc=example,dc=com isMemberOf: cn=QA Managers,ou=groups,dc=example,dc=com isMemberOf: cn=cupertinoEmployees,ou=Groups,dc=example,dc=com

?

$ ldapsearch -h localhost -p 1389 -D "cn=Directory Manager" -j pwd-file \-b dc=example,dc=com \ "(&(uid=abergin)(isMemberOf=cn=cupertinoEmployees,ou=Groups,dc=example,dc=com))" dn: uid=abergin,ou=People,dc=example,dc=com objectClass: person objectClass: inetOrgPerson objectClass: top objectClass: organizationalPerson ou: Product Testing ou: People sn: Bergin facsimiletelephonenumber: +1 408 555 7472 roomnumber: 3472 userpassword: {SSHA}YcDl0pHLxkd/ouW2jslAk1XaT5SiY4ium5qh8w== l: Cupertino cn: Andy Bergin telephonenumber: +1 408 555 8585 givenname: Andy uid: abergin mail: abergin@example.com
??

虛擬靜

態組

對于外部客戶端,虛擬靜態組的顯示和行為與靜態組類似,只是每個成員都由一個虛擬屬性表示,該屬性根據需要從另一個動態組定義其成員身份。

虛擬靜態組允許只能支持靜態組的客戶端訪問動態組。

在虛擬靜態組中,通過使用虛擬屬性,每個條目的行為類似于靜態組條目。虛擬屬性在調用時是動態確定的,確定組成員身份的操作被傳遞給另一個組

虛擬靜態組應包括GroupNoNames或GroupOfInQueNames對象類,但不應包含member或uniqueMember屬性

。虛擬靜態組還應包含ds虛擬靜態組輔助對象類和ds目標組dn屬性。ds目標組dn屬性用于引用要鏡像為虛擬靜態組的實際組,并用于替代成員或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

當應用程序以成員資格屬性為目標進行搜索,但實際上沒有檢索到整個成員集時,虛擬靜態組的效率最高。應用程序通常使用如下篩選器來嘗試確定用戶是否是給定組的成員:

(&(objectClass=groupOfUniqueNames)(uniqueMember=uid=john.doe,\ou=People,dc=example,dc=com))

對于檢索成員集的應用程序,虛擬靜態組可能并不理想,因為構建整個成員列表的過程可能非常昂貴。

  • 創建指定組的 LDIF 文件。

    此示例文件指定了一個名為虛擬靜態組。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
  • $ ldapsearch -h localhost -p 1389 -D "cn=Directory Manager" -j pwd-file \-b dc=example,dc=com "(isMemberOf=cn=virtualStatic,ou=Groups,dc=example,dc=com)"dn: cn=virtualStatic,ou=Groups,dc=example,dc=com objectClass: groupOfUniqueNames objectClass: ds-virtual-static-group objectClass: top cn: Virtual Static uniqueMember: uid=abergin,ou=People,dc=example,dc=com ds-target-group-dn: cn=cupertinoEmployees,ou=Groups,dc=example,dc=com ou: Product Testing ou: People sn: Bergin facsimiletelephonenumber: +1 408 555 7472 roomnumber: 3472 userpassword: {SSHA}YcDl0pHLxkd/ouW2jslAk1XaT5SiY4ium5qh8w== l: Cupertino cn: Andy Bergin telephonenumber: +1 408 555 8585 givenname: Andy uid: abergin mail: abergin@example.com ...(more entries)...
  • ?

    嵌套組

    組可以嵌套,其中一個組定義為子組條目,其DN列在另一個組(其父組)中。組嵌套允許您在性能不是優先級時設置繼承的組成員身份。可以將零個或多個成員屬性的值設置為嵌套子組(包括靜態和動態組)的DNs

    此示例過程使用一個靜態組和一個動態組創建嵌套組。

  • 創建指定靜態組的 LDIF 文件。

    此示例文件指定了一個名為虛擬靜態組。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
  • 創建指定動態組的 LDIF 文件。

    此示例文件指定了一個名為 動態組。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
  • 創建指定嵌套靜態組的 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
  • ?

    總結

    以上是生活随笔為你收集整理的LDAP组的概念以及命令的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。