从AD(LDAP)获取objectSID

2020-09-26 12:21发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


资深专家,我正在尝试创建From LDAP传递,或者甚至使用uGetUserSid内部函数,以从目标存储库中的给定条目获取objectSID属性。 uGetUserSid没有取得任何成功,但是我能够通过From LDAP pass方法恢复一些东西。 问题是,当我调出SQL临时表中显示的结果时,全都是mumbo-jumbo。 该属性以二进制属性的形式存储在LDAP中,因此,在LDAP浏览器或ADUC中查看该属性时,IDM并不是看起来很漂亮的S-1-5-21-xxxxxx-xxxxx格式。

我仔细检查了我的环境,看是否有SAP提供的全局脚本,该脚本会将二进制格式转换为文本,但可惜没有。 有什么建议吗?

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


资深专家,我正在尝试创建From LDAP传递,或者甚至使用uGetUserSid内部函数,以从目标存储库中的给定条目获取objectSID属性。 uGetUserSid没有取得任何成功,但是我能够通过From LDAP pass方法恢复一些东西。 问题是,当我调出SQL临时表中显示的结果时,全都是mumbo-jumbo。 该属性以二进制属性的形式存储在LDAP中,因此,在LDAP浏览器或ADUC中查看该属性时,IDM并不是看起来很漂亮的S-1-5-21-xxxxxx-xxxxx格式。

我仔细检查了我的环境,看是否有SAP提供的全局脚本,该脚本会将二进制格式转换为文本,但可惜没有。 有什么建议吗?

付费偷看设置
发送
5条回答
骆驼绵羊
1楼 · 2020-09-26 12:57.采纳回答

要在IDM端以纯文本格式获取SID,首先需要"从LDAP"传递。 从AD引入objectSid时,您需要在源列前面加上感叹号,如下所示:

接下来,您将看到此通行证中包含的脚本。 这是该脚本的文本:

//主要功能:z_custom_ad_convertObjectSID


 函数z_custom_ad_convertObjectSID(Par){
//输入:{HEX} 010500000000000515000000561400C443528306533A02202F970000
//输出:S-1-5-21-3288339542-109269571-537016915-38703
//基于链接的算法https://blogs.msdn.microsoft.com/oldnewthing/20040315-00/?p=40253
//为了轻松进行对象SiD转换测试,可以下载此工具https://sidtranslator.codeplex.com/

 var OutString = uHexToByte(Par);
 var bSid = OutString;
     var binarySid = bSid;
   
 如果(bSid.length <8)返回"";
    
 var版本= binarySid [0];
     var nrSubAuth = binarySid [1];
     var identifierAuth = binarySid [2] + binarySid [3] + binarySid [4] + binarySid [5] + binarySid [6] + binarySid [7];
     var returnString =" S-";
     returnString = returnString +版本+"-";
     returnString = returnString + identifierAuth;
 
     for(var subAuthCount = 0; subAuthCount 
 

现在,在临时表中,您将拥有一个SID,看起来像在LDAP浏览器(如Softerra或ADUC)中拉出该属性时的外观。 任何问题? :)

路亽曱_Ryan
2楼-- · 2020-09-26 13:02

我想我用过:

如何转换广告对象ID

如何转换广告javascript对象

我发生过同样的事情。 那就是我们在这里的目的! :)

bbpeas
3楼-- · 2020-09-26 13:04

布兰登,

我做了一些谷歌搜索,发现该值已编码。 您可能想看一下转换base64字符串的函数,看看它是否更直接。 否则,我发现以下链接可能有用也可能没有帮助。

先生。 Google可以成为您的朋友!

祝你好运!

Java/JavaScript:

https://github.com/mcavage/node-ldapjs/issues/193

https://stackoverflow.com/questions/7118290/how-to-convert-the-sid-to-string-and-vice-versa-in-java

Powershell:

http://activelydirect.blogspot.com/2011/ 01/convert-active-directory-object.html

http://woshub.com/hot- 将sid转换为用户名,反之亦然/

SQL:

https://www.sqlservercentral.com/Forums/Topic458324-1203- 1.aspx

Alawn_Xu
4楼-- · 2020-09-26 12:55

用例只是他们要使用SID作为IDM中的帐户属性。 它是AD中唯一可搜索的属性,无论帐户在OU结构中的位置如何,您都可以通过SID找到该帐户。 我与大多数公司合作使用了distinguishedName属性,并且90%可以使用,但是如果AD管理员决定将帐户移至另一个OU,则DN会更改。 SID永远不会更改,因此IDM永远不会与该帐户分离。 无论如何,这就是这种想法。