RFC 2253-轻型目录访问协议(v3)

问题描述 投票:0回答:1

我正在使用以下内容:我的应用程序中的https://www.novell.com/documentation/developer/jldap/jldapenu/api/com/novell/ldap/util/DN.html

为了创建DN对象,我需要放入dnString,它必须遵守RFC 2253中描述的语法。

我的DN包含:“ \”和“,”字符(也包括“ \,”都紧挨着)。

我找不到任何站点可以确切说明如何获取RFC 2253的有效DN。我发现:

https://ldapwiki.com/wiki/RFC%202253

https://www.rfc-editor.org/rfc/pdfrfc/rfc2253.txt.pdf

都提到“,”和“ \”是特殊字符,但是没有一个说明如何正确地对其进行转义。

如何获得具有这些值的有效DN?

active-directory ldap rfc distinguishedname
1个回答
0
投票

RFC 2253的第4页:

如果要转义的字符是上面显示的列表之一,则在其前面加上反斜杠('\'ASCII 92)。

因此,转义的逗号应为\,,而转义的反斜杠应为\\

逗号是DN中的分隔符。例如:

cn=admin,ou=marketing,o=corporation

因此仅当将它[用作分隔符时才需要对其进行转义,如下所示:

cn=Smith\, John,ou=marketing,o=corporation
如果您使用带有逗号的CN创建对象,Active Directory将为您转义。

反斜杠是特殊字符,因为它用于转义其他字符。因此,如果您

not

为此目的使用它,则需要使用自身对其进行转义:cn=North\\South America,ou=marketing,o=corporation
尽管在该示例中,我使用正斜杠(“北美/南美”),这引出了另一点(与您当前的问题无关,但值得一提):正斜杠在DN中不是特殊字符,但它们在LDAP路径中。因此,如果您有这样的DN:

cn=North/South America,ou=marketing,o=corporation

然后,如果您需要在LDAP路径中使用它,则不能仅将其放入:

LDAP://cn=North/South America,ou=marketing,o=corporation

因为/是分隔符,所以它会认为DN只是cn=North。在这种情况下,您还需要使用反斜杠来进行转义:

LDAP://cn=North\/South America,ou=marketing,o=corporation

但是在LDAP路径中使用它时,[
© www.soinside.com 2019 - 2024. All rights reserved.