Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / LDAP и unboundid: как заставить работать password policy / 2 сообщений из 2, страница 1 из 1
10.06.2015, 16:18
    #38981337
Африканец
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
LDAP и unboundid: как заставить работать password policy
Hi All,

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

Используется OpenLDAP 2.4.38 под Windows. В качестве клиентского API использую unboundid.

Вопрос: как заставить работать password policy при работе через API?

Password policy определена так:

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
dn: ou=pwpolicies,dc=minecofin,dc=com
objectclass: organizationalUnit

dn: cn=default,ou=pwpolicies,dc=minecofin,dc=com
objectClass: pwdPolicy
objectclass: organizationalRole
cn: default
pwdAttribute: userPassword
pwdMaxAge: 2592000
pwdExpireWarning: 86400
pwdInHistory: 3
#pwdCheckQuality: 0
pwdMaxFailure: 5
pwdLockout: TRUE
#pwdLockoutDuration: 0
#pwdGraceAuthNLimit: 0
#pwdFailureCountInterval: 0
pwdMustChange: TRUE
pwdMinLength: 6
#pwdAllowUserChange: TRUE
pwdSafeModify: TRUE



В конфиге openLDAP (slapd.comf) политика подключена так:

Код: sql
1.
2.
3.
overlay 	ppolicy
ppolicy_default	"cn=default,ou=pwpolicies,dc=minecofin,dc=com"
ppolicy_use_lockout



Утилиты типа ldapwhoami работают с политикой (при наличии ключа -e ppolicy); например, для аккаунта с атрибутом pwdReset=TRUE:

Код: sql
1.
2.
3.
C:\OpenLDAP\bin>ldapwhoami -x -D uid=croffler,dc=minecofin,dc=com -w hello -e ppolicy
ldap_bind: Success (0); Password must be changed
dn:uid=croffler,dc=minecofin,dc=com



Но, когда использую API, в bindResult не появляется никаких дополнительных response control'ов, которые позволяли бы сделать вывод, что пароль надо менять.

Код: java
1.
2.
3.
LDAPConnection connection = new LDAPConnection(ldapHost, ldapPort);
BindRequest bindRequest = new SimpleBindRequest(dn, password);
BindResult bindResult = connection.bind(bindRequest);
...
Рейтинг: 0 / 0
11.06.2015, 12:21
    #38982088
Африканец
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
LDAP и unboundid: как заставить работать password policy
Проблема решилась.

С моей точки зрения, LDAP устроен несколько нелогично. Казалось бы, если есть password policy по умолчанию, все подключения должны ей следовать. Однако для того, чтобы password policy применялась при подключении, необходимо этого явно потребовать (см. пример по ссылке ).
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / LDAP и unboundid: как заставить работать password policy / 2 сообщений из 2, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]