这个 ObjectGUID 值是如何编码的?

这个 ObjectGUID 值是如何编码的?

应用程序objectGUID在内部将用户的 MSAD 条目存储为:

msad://OBJECTGUID=\5c\78\33\6d\77\d8\df\44\80\07\d2\77\da\d5\c5\69?USER 

ldapsearch以下是我使用命令提取用户详细信息时看到的 Uid :

...
objectGUID:: XHgzbXfY30SAB9J32tXFaQ==
ibm-entryUuid: {base64binary}XHgzbXfY30SAB9J32tXFaQ==
objectSid:: AQUAAAAAAAUVAAAAJnYeL8CFOF0H5TsrNU0lAA==
employeeNumber: 502075089
...

有谁知道应用程序是如何将 MSAD 编码objectGUIDmsad://OBJECTGUID=\5c\78\33\6d\77\d8\df\44\80\07\d2\77\da\d5\c5\69?USER

我基本上必须解码objectGUID..的应用程序编码才能识别相应的 MSAD 条目。

答案1

它是以十六进制而不是 Base64 显示的完全相同的数据。

在输出的 LDIF 格式中,ldapsearch两个冒号表示以下值是 base64 编码的(通常是因为它具有二进制数据)。例如,这些是等效的:

greeting: Hello

greeting:: SGVsbG8=

因此如果你通过 base64 解码器运行XHgzbXfY30SAB9J32tXFaQ==(的值),你将得到:objectGUID

$ echo XHgzbXfY30SAB9J32tXFaQ== | base64 -d | xxd
0000000: 5c78 336d 77d8 df44 8007 d277 dad5 c569  \x3mw..D...w...i

在您的msad://URI 中,相同的 GUID 以十六进制形式存储,每个字节都带有前缀\。这实际上是 LDAP 过滤器中转义字符的标准格式(事实上,整个msad://内容看起来非常像 URL 的精简版本ldap://,其中显然采用“msad://filter?attribute”格式)。

因此,您可以从应用程序中获取字符串,并将其括起来,( )如下所示:

(OBJECTGUID=\5c\78\33\6d\77\d8\df\44\80\07\d2\77\da\d5\c5\69)

并将其用作 LDAP 过滤器来查找所需的条目。

相关内容