|
Spec-Zone .ru
спецификации, руководства, описания, API
|
Аутентификация обзора-MD5 является необходимым механизмом аутентификации для LDAP v3 серверы (RFC 2829). Поскольку использование SASL является частью LDAP v3 , серверы, которые поддерживают только LDAP v2, не поддерживают Обзор-MD5.
Механизм Обзора-MD5 описывается в . Это основано на Дайджест-аутентификации HTTP . В Обзоре-MD5 сервер LDAP отправляет данные, которые включают различные опции аутентификации, которые это готово поддерживать плюс специальный маркер клиенту LDAP. Клиент отвечает, отправляя зашифрованный ответ, который указывает на опции аутентификации, которые он выбрал. Ответ шифруется таким способом, который доказывает, что клиент знает его пароль. Сервер LDAP тогда дешифрует и проверяет ответ клиента.
Чтобы использовать механизм аутентификации Обзора-MD5, следует установить свойства среды аутентификации следующим образом.
// Set up the environment for creating the initial context
Hashtable<String, Object> env = new Hashtable<String, Object>();
env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");
env.put(Context.PROVIDER_URL, "ldap://localhost:389/o=JNDITutorial");
// Authenticate as C. User and password "mysecret"
env.put(Context.SECURITY_AUTHENTICATION, "DIGEST-MD5");
env.put(Context.SECURITY_PRINCIPAL,
"dn:cn=C. User, ou=NewHires, o=JNDITutorial");
env.put(Context.SECURITY_CREDENTIALS, "mysecret");
// Create the initial context
DirContext ctx = new InitialDirContext(env);
// ... do something useful with ctx
Область определяет пространство имен, из которого выбирается объект аутентификации (значение свойства Context.SECURITY_PRINCIPAL). У сервера могли бы быть многократные области. Например, сервер для университета мог бы быть сконфигурирован, чтобы иметь две области, один для его студенческих пользователей и другого для пользователей способности. Конфигурация области делается администратором каталога. У некоторых каталогов есть значение по умолчанию единственная область. Например, Сервер каталогов Java Sun, v5.2, использует полностью определенное имя узла машины как область значения по умолчанию.
В аутентификации Обзора-MD5 следует аутентифицировать к определенной области. Можно использовать следующее свойство среды аутентификации, чтобы определить область. Если Вы не определите область, то любая из областей, предлагаемых сервером, будет использоваться.
// Authenticate as C. User and password "mysecret" in realm "JNDITutorial"
env.put(Context.SECURITY_AUTHENTICATION, "DIGEST-MD5");
env.put(Context.SECURITY_PRINCIPAL,
"dn:cn=C. User, ou=NewHires, o=JNDITutorial");
env.put(Context.SECURITY_CREDENTIALS, "mysecret");
env.put("java.naming.security.sasl.realm", "JNDITutorial");
Если Вы должны использовать защиту конфиденциальности и другие свойства SASL, они обсуждаются в Учебном руководстве JNDI.