应用程序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 编码objectGUID
的msad://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 过滤器来查找所需的条目。