Spec-Zone .ru
спецификации, руководства, описания, API
След: Именование Java и Интерфейс Каталога
Урок: Усовершенствованные Темы для Пользователей LDAP
Раздел: Безопасность
SASL
Домашняя страница > Именование Java и Интерфейс Каталога > Усовершенствованные Темы для Пользователей LDAP

SASL

LDAP v3 протокол использует SASL, чтобы поддерживать сменную аутентификацию. Это означает, что клиент и сервер LDAP может быть сконфигурирован, чтобы согласовать и использовать возможно нестандартные и/или специализированные механизмы для аутентификации, в зависимости от уровня защиты, требуемого клиентом и сервером. LDAP v2 протокол не поддерживает SASL.

Несколько механизмов SASL в настоящий момент определяются:

Механизмы SASL, Поддерживаемые Серверами LDAP

Из механизмов в предыдущем списке, популярные серверы LDAP (такие как те от Oracle, OpenLDAP, и Microsoft) Внешняя поддержка, Обзор-MD5, и Kerberos V5. RFC 2829 предлагает использование Обзора-MD5 как обязательный механизм значения по умолчанию для LDAP v3 серверы.

Вот a simple program для того, чтобы узнать список механизмов SASL, которые поддерживает сервер LDAP.

// Create initial context
DirContext ctx = new InitialDirContext();

// Read supportedSASLMechanisms from root DSE
Attributes attrs = ctx.getAttributes(
    "ldap://localhost:389", new String[]{"supportedSASLMechanisms"});

Вот вывод, произведенный, выполняя эту программу против сервера, который поддерживает Внешний механизм SASL.

{supportedsaslmechanisms=supportedSASLMechanisms: 
                         EXTERNAL, GSSAPI, DIGEST-MD5}

Определение Механизма аутентификации

Чтобы использовать определенный механизм SASL, Вы определяете его Комитет по цифровым адресам в интернете (IANA) - зарегистрированное имя механизма в свойстве среды Context.SECURITY_AUTHENTICATION. Можно также определить список механизмов для провайдера LDAP, чтобы попробовать. Это делается, определяя упорядоченный список разделенных пробелом имен механизма. Провайдер LDAP будет использовать первый механизм, для которого он находит реализацию.

Вот пример, который просит, чтобы провайдер LDAP попытался получить реализацию для механизма ОБЗОРА-MD5 и если это не доступно, используйте тот для GSSAPI.

env.put(Context.SECURITY_AUTHENTICATION, "DIGEST-MD5 GSSAPI");

Вы могли бы получить этот список механизмов аутентификации от пользователя Вашего приложения. Или Вы могли бы получить это, спрашивая сервер LDAP через вызов, подобный показанному ранее. Провайдер сам LDAP не консультируется с сервером для этой информации. Это просто пытается определить местоположение и использовать реализацию указанных механизмов.

У провайдера LDAP в платформе есть встроенная поддержка Внешнего, Обзора-MD5, и GSSAPI (Kerberos v5) механизмы SASL. Можно добавить поддержку дополнительных механизмов.

Определение Ввода для Механизма аутентификации

Некоторые механизмы, такой как Внешний, не требуют никакого дополнительного ввода - одно только имя механизма достаточно для аутентификации, чтобы продолжиться. Внешний пример показывает, как использовать Внешний механизм SASL.

Большинство других механизмов требует некоторого дополнительного ввода. В зависимости от механизма мог бы измениться тип ввода. Следующее является некоторыми общими вводами, требуемыми механизмами.

Идентификаторы аутентификации и авторизации могли бы отличаться, если программа (такая как прокси-сервер) аутентифицирует от имени другого объекта. Идентификатор аутентификации определяется при использовании свойства среды Context.SECURITY_PRINCIPAL. Это имеет тип java.lang.String.

Пароль/ключ идентификатора аутентификации определяется при использовании свойства среды Context.SECURITY_CREDENTIALS. Это имеет тип java.lang.String, массив char (char[]), или массив byte (byte[]). Если пароль является массивом byte, то он преобразовывается в массив char при использовании кодирования UTF-8.

Если свойство "java.naming.security.sasl.authorizationId" было установлено, то его значение используется в качестве ID авторизации. Его значение должно иметь тип java.lang.String. По умолчанию пустая строка используется в качестве ID авторизации, который направляет сервер, чтобы получить ID авторизации из учетных данных аутентификации клиента.

Пример Обзора-MD5 показывает, как использовать свойства Context.SECURITY_PRINCIPAL И Context.SECURITY_CREDENTIALS для аутентификации Обзора-MD5.

Если механизм требует ввода кроме уже описанных, то Вы должны определить объект обратного вызова для механизма, чтобы использовать, можно проверить пример обратного вызова в Учебном руководстве JNDI. Следующая часть этого урока обсуждает, как использовать механизм аутентификации Обзора-MD5 SASL. Политики SASL, API GSS (Kerberos v5) и механизмы CRAM-MD5 охватываются в Учебном руководстве JNDI.


Проблемы с примерами? Попытайтесь Компилировать и Выполнить Примеры: FAQ.
Жалобы? Поздравление? Предложения? Дайте нам свою обратную связь.

Предыдущая страница: Простой
Следующая страница: обзор-MD5