Ldapsearch objectsid ไบนารี ตัวเลือก


แอตทริบิวต์ที่มีไบนารีตัวเลือกบางระบบไดเรกทอรีบังคับใช้การรักษาพิเศษสำหรับแอตทริบิวต์บางอย่างเพื่อให้ต้องใช้ไบนารีตัวเลือกแอตทริบิวต์ LDAP เหตุผลสำหรับสิ่งนี้: ค่าแอ็ตทริบิวต์เกี่ยวกับหรือค่าการยืนยันต้องเป็น BER (Basic Encoding Rules) ที่เข้ารหัสไว้ - มิฉะนั้นค่าจะถูกเข้ารหัสตามการเข้ารหัสเฉพาะ RFC RFC 4517 สำหรับไวยากรณ์แอตทริบิวต์ เพื่อส่งสัญญาณการจัดการพิเศษนี้เซิร์ฟเวอร์ LDAP จะส่งคืนแอตทริบิวต์ดังกล่าวให้กับตัวเลือกไบนารีเท่านั้น ตัวเลือก LDAP เช่นตัวเลือกไบนารีโดยทั่วไปจะอธิบายไว้ในข้อกำหนด LDAP v3 ใน RFC 4511 พวกเขาจะเพิ่มชื่อแอตทริบิวต์เป็นส่วนต่อท้ายเมื่อเซิร์ฟเวอร์และไคลเอ็นต์ LDAP สื่อสารกันตัวอย่างเช่นนี้ตัวเลือกไบนารีโดยเฉพาะคือ อธิบายไว้ใน RFC 4522 บางครั้งก็ไม่ได้ทำเครื่องหมายไว้อย่างชัดเจนในสคีมาของไดเร็กทอรีเมื่อแอตทริบิวต์ต้องการการจัดการกับตัวเลือกไบนารี ในกรณีนี้คุณมีความเป็นไปได้ที่จะใส่แอตทริบิวต์ดังกล่าวลงในรายการแอตทริบิวต์ตัวเลือกไบนารีในตัวเลือกแอปพลิเคชันภายใต้เครื่องมือ - ตัวเลือก - การตั้งค่า LDAP: ดังนั้นแอตทริบิวต์ดังกล่าวจึงสามารถอ่านและเขียนได้โดยไม่มีปัญหา ปกติคุณจะไม่ต้องทำงานหนักในรายการนี้เพราะส่วนใหญ่ของคุณลักษณะที่ต้องการตัวเลือกไบนารีจะกำหนดไว้ล่วงหน้าเป็นค่าเริ่มต้นที่นี่ คุณจะตระหนักว่าแอตทริบิวต์ต้องถูกเพิ่มลงในรายการนี้เมื่อคุณเห็นในแผงรายการแอตทริบิวต์โดยใช้สายอักขระไบนารีที่ท้ายชื่อแอตทริบิวต์: อาการอีกอันหนึ่งซึ่งแจ้งเตือนให้คุณเพิ่มชื่อแอตทริบิวต์ดังกล่าวลงในไบนารีแอตทริบิวต์ตัวเลือก รายการ: ข้อผิดพลาดโปรโตคอลเกิดขึ้นถ้าคุณต้องการเขียนแอตทริบิวต์ดังกล่าวโดยไม่มีตัวเลือกไบนารี: แอตทริบิวต์สำหรับผู้ใช้ AD objectSID เมื่อคุณให้สิทธิ์บางอย่างกับออบเจกต์บางรายการจะไม่มีชื่อของ trustee ซึ่งอยู่ในรายการควบคุมการเข้าถึง (ACL) เป็นมากกว่า SID ที่ถูกป้อนลงในรายการ: ใช้กับอ็อบเจ็กต์สำหรับอ็อบเจ็กต์ไดเร็กทอรีรวมถึงสิทธิ์ของระบบไฟล์บนเซิร์ฟเวอร์สมาชิกในโดเมน วิธีการจึงอนุญาตจะรักษาแม้ว่าบัญชีจะถูกเปลี่ยนชื่อ รหัสความปลอดภัยของ Microsoft จะถูกเก็บไว้เป็นคุณลักษณะไบนารี (ไวยากรณ์ LDAP เป็นสตริงที่เป็น octet) และต้องมีการถอดรหัสก่อนเพื่อให้สามารถแปลงเป็นรูปแบบที่คุ้นเคยและสามารถอ่านได้เช่นเดียวกับที่: Dies ist die Schreibweise einer Beispiel-SID ใน der Notation der Security Descriptor Definition Language (SDDL) Active Directory Benutzers เซ็ตอัพเดี๋ยวนี้ที่ใช้งานได้ดีที่สุด: Dem Domumuennenanteil (der bei allen SIDs innerhalb einer) โดยไม่ได้รับอนุญาต Realitven SID-Anteil (der so genannten RID) Die RID ist immer der letzte Ziffernblock hinter dem letzten Minuszeichen ใน unserem also 1137. รายละเอียดเพิ่มเติมรายละเอียด zum technischen Aufbau und dem Umgang mit SIDs sind im SelfADSI Artikel quot ไมโครซอฟท์ SID แอตทริบิวต์ SID. Dort koumlnnen Sie seen, wie man nach คำอธิบายภาพที่ดีที่สุด SID sucht, อื่น ๆ welche anderen wichtigen แอตทริบิวต์ ebenfalls SID-Werte enthalten. คุณต้องใช้ชื่อที่แตกต่างของออบเจ็กต์จากสภาพแวดล้อมของคุณเองที่นี่ Set obj GetObject (quotLDAP: cnFoeckeler, cnUsers, dccerrotorre, dcdequot) HexStrToSID (strSid) แปลงสตริง hex SID ดิบไปตามสาย SID (SDDL) ข้อมูล ReDim (Len (()). strSid) 2 - 1) สำหรับ i 0 ถึงข้อมูล UBound (ข้อมูล) (i) CInt (quotampHquot amp Mid (strSid, 2i 1, 2)) ถัดไป HexStrToSID quotS - ข้อมูลแอมป์ (0) amp quot-quot amp Byte6ToLong (ข้อมูล (2) ข้อมูล (3) ข้อมูล (4) ข้อมูล (5) ข้อมูล (6) ข้อมูล (7)) ข้อมูล blockCount (1) สำหรับ i 0 เมื่อต้องการ blockCount - 1 offset 8 4i HexStrToSID HexStrToSID amp quot แอ็ตทริบิวต์ Byte4ToLong (data (offset3), data (offset2), data (offset1), data (offset) หน้าที่ End Function Function หน้าที่ OctetToHexStr (varoctet) แปลงไบนารีบริสุทธิ์ y data (array byte) เป็นสตริงที่มีค่าเลขฐานสิบหก OctetToHexStr quotqu สำหรับ n 1 เมื่อต้องการ lenb (varoctet) OctetToHexStr OctetToHexStr amp (ascb (midb (varoctet, n, 1))), 2) Next End Function Function Byte4ToLong (ByVal B1, ByVal B2, ByVal b3, ByVal b4) แปลง 4 ไบต์ถึงมูลค่ายาวตาม Byte4ToLong b1 Byte4ToLong Byte4ToLong 256 b2 Byte4ToLong Byte4ToLong 256 b3 Byte4ToLong Byte4ToLong 256 b4 End Function ฟังก์ชั่น Byte6ToLong (ByVal B1, ByVal B2, ByVal b3, ByVal b4, ByVal b5, ByVal b6) แปลง 6 ไบต์ตามมูลค่ายาว Byte6ToLong b1 Byte6ToLong Byte6ToLong 256 b2 Byte6ToLong Byte6ToLong 256 b3 Byte6ToLong Byte6ToLong 256 b4 Byte6ToLong Byte6ToLong 256 b5 Byte6ToLong Byte6ToLong 256 b6 End Functionldapgetvalueslen เพียงแค่ปรับปรุงเล็กน้อยที่จะต้องทราบที่อยู่ด้านล่างจาก jhgustafsson เกี่ยวกับฟิลด์ objectGUID จะมีขั้นตอนต่อไปบางครั้งก็มีประโยชน์ในการแสดง GUID นี้เป็น String และ Microsoft มีบทความสนับสนุนและสคริปต์ที่มีรายละเอียดวิธีการแปลง objectGUID จาก Hex to String บทความนี้อยู่ที่นี่: support. microsoftdefault. aspxscidkb3Ben-us3B325649 ด้านล่างนี้เป็นฟังก์ชัน PHP ที่ใช้งานสคริปต์เดียวกับ Microsofts VB script จะใช้ input ของ objectGUID ในรูปแบบไบนารีและส่งกลับมาจัดรูปแบบเป็นสตริง (หลังจากแปลงเป็น Hex เป็น a ขั้นกลาง) ค่านี้จะแสดงค่า objectGUID ที่ถูกต้องสำหรับ Active Directory object ใน ADUC ตัวอย่างการแสดงผล: 3f79048f-42cd-4c77-8426-835cd9f8a3ad ฟังก์ชัน GUIDtoStr (binaryguid) hexguid การแกะ (Hhex, binaryguid) hex hexadium hex hexi substr (hex, -26, 2) substr (hex, -28, 2) substr (hex, -30, 2). substr (hex, -32, 2) hex2 substr (hex, -22, 2) substr (hex, -24, 2) hex3 substr (hex, -18, 2). substr (hex, -20, 2) hex4 substr (hex, -16, 4) hex5 substr (hex, -12, 12) รูปที่ 1 hex_ - hex2 - hex3 - hex4 - ถ้าต้องการแปลงค่า objectSID ให้เป็นสตริงที่ใช้งานได้ (จาก Active Directory) ฟังก์ชันต่อไปนี้จะทำเคล็ดลับ (ซึ่งถูกยืมมาจากส่วนอื่นของคู่มือเพียงแค่คิดว่า Id เพิ่มที่นี่): ส่งกลับค่าข้อความ SID ฟังก์ชัน bintostrsid (binsid) hexsid bin2hex (binsid) rev hexdec (substr (hexsid, 0, 2)) hexdec subcount (substr (hexsid, 2, 2)) auth hexdec (substr (hexsid, 4, 12)) rev-auth สำหรับ (x0x lt subcount x) subauthx hexdec (this-gtlittleendian (substr (hexsid, 16 (x 8), 8))) ผล - subauthx โกงโดยการตอกบน S - กลับ S - ผลลัพธ์จะแปลงเลขฐานสิบหกเป็นเลขฐานสิบหกให้เล็กลง hexdec สามารถแปลงฟังก์ชัน littleendian (hex) สำหรับ (x strlen (hex) - 2 x gt 0 x x - 2) substr (hex, x, 2) return result ฟังก์ชันนี้ไม่เกี่ยวกับฟังก์ชัน ldapgetvalueslen แต่ยังคงเป็นประโยชน์ถ้าคุณต้องการแปลงค่าไบนารี objectGUID เป็นรูปแบบสตริง (แปลงจาก vbscript บางส่วนที่จัดเตรียมโดย Richard Mueller): ฟังก์ชันนี้จะ แปลงค่าไบนารีลงในสตริงที่ถูกต้อง ฟังก์ชัน bintostrguid (objectguid) hexguid bin2hex (objectguid) hexguidtoguidstr สำหรับ (k 1 k lt 4 k) hexguidtoguidstr. substr (hexguid, 8 - 2 k, 2) hexguidtoguidstr. - สำหรับ (k 1 k lt 2 k) hexguidtoguidstr. substr (hexguid, 12 - 2 k, 2) hexguidtoguidstr. - สำหรับ (k 1 k lt 2 k) hexguidtoguidstr. substr (hexguid, 16 - 2 k, 2) hexguidtoguidstr. - substr (hexguid, 16, 4) hexguidtoguidstr. - substr (hexguid, 20) นี่คือตัวอย่างเกี่ยวกับวิธีใช้ทั้งสองแบบ: สร้างการเชื่อมต่อและระบุคำนำหน้าก่อน (this-gtconn, this-gtbasedn, filter, fields) รายการ ldapgetentries (this-gtconn, sr) if (inarray (objectguid, fields)) entries0objectguid0 this-gtbintostrguid (entries0objectguid0) ถ้านี่เป็นคำตอบสำหรับ objectid ของ WINDOWS: LIB (นี่คือ gt; gtconn, sr) objectidbinary ldapgetvalueslen (this-gtconn, entry, objectsid) entries0objectsid0 this-gtbintostrsid (objectidbinary0) คลาส LDAPOBJECTSID ฟังก์ชันสาธารณะ toString (SIDBINARY) แบ่ง strsplit (SIDBINARY, 8) อาร์เรย์ hexArray () foreach (แยกเป็นคีย์ไบต์ gt) hexToArtration (substr (0.dechex (bindec (byte)), -2)) BLOCKCOUNT hexdec (hexArray1 ) DECGROUPSUB-ID-BLOCKS array () สำหรับ (i0 iltBLOCKCOUNT i) offset 8 (4 i) อาร์เรย์ DECGROUPSUB-ID-BLOCKSi () DECGROUPSUB-ID-BLOCKSi1 hexdec (hexArrayoffset3) DECGROUPSUB-ID-BLOCKSi2 hexdec (hexArrayoffset2) DECGROUPSUB-ID (hexArc0), hexdec (hexArray3), hexdec (hexArray4), hexdec (hexArray5), hexdec (hexArray4), hexdec (hexArray4), hexdec (hexArray3), hexdec hexdec (hexArray6), hexdec (hexArray7)) foreach (DECGROUPSUB-ID-BLOCKS เป็น BLOCK) SID -.this-gtbyte4ToLong (BLOCK1, BLOCK2, block3, BLOCK4) กลับ SID ส่วนตัว byte6ToLong ฟังก์ชั่น (B1, B2, B3, B4, B5, B6) byte6ToLong b1 byte6ToLong byte6ToLong256 b2 b3 byte6ToLong byte6ToLong256 byte6ToLong byte6ToLong256 b4 byte6ToLong byte6ToLong256 b5 byte6ToLong byte6ToLong256 ผลตอบแทน b6 byte6ToLong byte4ToLong ฟังก์ชั่นส่วนตัว (B1, B2, B3, B4) byte4ToLong b1 byte4ToLong byte4ToLong256 b2 byte4ToLong byte4ToLong256 b3 byte4ToLong byte4ToLong256 B4 กลับ byte4ToLong srldapsearch (เรือ BaseDN กรองสาขา) รายการ ldapfirstentry (conn, sr) ldapgetvalueslen objectsidbinary (conn, รายการ objectid) Obj new LDAPOBJECTSID () echo Obj-gttoString (objectidbinary0)

Comments

Popular posts from this blog

Traderxp ไบนารี ตัวเลือก

Netdania แลกเปลี่ยน & หุ้น