【问题标题】:Convert objectGuid to UUID string using Javascript使用 Javascript 将 objectGuid 转换为 UUID 字符串
【发布时间】: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


【解决方案1】:

使用此代码进行实验(读取 GUID):

String.prototype.padLeft = function( len, str ) {
        //return Array( len - String(this).length + 1 ).join(str) + this;
        var s = this;
        str = str || '0';
        if ( str.length > 0 ) {
            while ( s.length < len ) {
                s = ( str + s );
            };
        }
        return s;
    }

var destAD = GetObject("LDAP://dc.yourdomain.pl/cn=Administrator,cn=Users,dc=yourdomain,dc=pl");
var guidValueArr = destAD.Get("objectguid").toArray();
var guid = "", i;
for ( i = 0; i < guidValueArr.length; i ++ ) {
    guid += guidValueArr[i].toString(16).padLeft(2,"0");
}
var guidFormated = guid.replace(/(.{2})(.{2})(.{2})(.{2})(.{2})(.{2})(.{2})(.{2})(.{4})(.{12})/, "$4$3$2$1-$6$5-$8$7-$9-$10");
alert( guidFormated );

Universally unique identifier

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-04
    • 1970-01-01
    • 2018-12-17
    • 2019-01-01
    • 2015-02-18
    相关资源
    最近更新 更多