RFC 2253 - облегченный протокол доступа к каталогам (v3) - PullRequest
0 голосов
/ 31 октября 2019

Я использую следующее: https://www.novell.com/documentation/developer/jldap/jldapenu/api/com/novell/ldap/util/DN.html в моем приложении.

Для создания объекта DN мне нужно указать dnString, который должен соответствовать синтаксису, описанному в RFC 2253.

Мой DN содержит: "\" и "," символы (также "\," оба сразу после друг друга).

Я не смог найти сайт, который объясняет, как именно получитьдействительный DN для RFC 2253. Я нашел:

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

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

Оба упоминают, что "," и "\" являются специальными символами, но ни в одном из них не указано, как правильно его избежать.

Как я могу получить действительное DN с этими значениями?

1 Ответ

0 голосов
/ 31 октября 2019

Страница 4 из RFC 2253 :

Если экранируемый символ входит в список, показанный выше, то перед ним ставится обратный слеш ('\' ASCII92).

Таким образом, экранированная запятая должна быть \,, а экранированная обратная косая черта должна быть \\.

Запятая - это разделитель в DN. Например:

cn=admin,ou=marketing,o=corporation

, поэтому его необходимо экранировать только в том случае, если не используется в качестве разделителя, например:

cn=Smith\, John,ou=marketing,o=corporation

Active Directory завершитсяэто для вас, если вы создаете объект с CN, который имеет запятую.

Обратная косая черта - это специальный символ, потому что он используется для экранирования других символов. Поэтому, если вы не используете его для этой цели, его нужно экранировать, используя саму себя:

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.

...