【发布时间】:2019-11-24 23:58:23
【问题描述】:
我一直在寻找一种将 ObjectGuid 从 Active Directory 中转换出来的方法,它是一种特殊类型,可以使用 ldapjs 等库转换为字符串,或者使用 ping federate 将其添加为声明。一个例子如下:
const ldapjs = require("ldapjs");
let _client = ldapjs.createClient({
"url": this._ldap_uri
});
_client.search(this._search_dn, opts, (error, res) => {
res.on("searchEntry", (entry) => {
console.log(entry.object.objectGUID)
}
这是一个来自 ldapjs 的输出示例。当您将其添加为声明时,ping 联邦也同样如此。
H�Y��fB�_-_���
但是,这相当于一个有效的 UUID。
b9****48-6***-42**-a**f-2d5f*****40b
我正在尝试将这个奇怪的值转换为正确的 UUID。我已经搜索并测试了一些不同的帖子和网站,但我没有找到有效的解决方案。
以下是我研究的一些:
如果有人对此有解决方案,将不胜感激。
【问题讨论】:
-
你能展示你用来获得你所看到的价值的代码吗?您是否尝试过Read objectGUID from active directory 问题答案中的代码?
-
@GabrielLuci - 这直接来自 PING federate 作为 JWT 声明和这种格式的客户端库 ldapjs 库,因此没有太多可展示的。但是,如果有帮助,我会添加更多信息
-
我最终与 PING 联邦管理员合作,他们能够将其转换为十六进制编码格式,这使我能够将其转换为 UUID。这解决了眼前的问题,但如果有一个转换问题的解决方案会很好
-
那个“奇怪的值”看起来就像一个字节数组。您是否尝试过that other answer 中的代码?特别是
.toString('hex').replace( ... )。如果这不起作用,我认为您真正需要回答的问题是如何将 GUID 字节数组转换为字符串。
标签: active-directory ping uuid ldapjs