Дополнительные модули входа в систему JAAS

Я хотел бы знать, как объединить эти два шага аутентификации:

  1. проверить пользователя / пароль в LDAP
  2. добавить участников (роли), найденных в БД в тему.

Репозиторий пользователей LDAP не имеет представления о ролях для конкретных приложений, и я не хочу управлять паролями в базе данных приложения. Так что мне нужно и то, и другое.

Файл конфигурации JAAS позволяет иметь дополнительные модули LoginModules:

 { 
      ;
    ;
};

, но я не могу найти пример, объясняющий, как я работаю.

Это хороший метод?

Спасибо

================================== =======

Вот мой ответ:

Действительно, у нас могут быть дополнительные модули LoginModules. Файл конфигурации JAAS:

Sample {
  com.sun.security.auth.module.LdapLoginModule Requisite
  userProvider="ldap://acme.org:389/OU=Users,OU=_ACME,DC=acmegis,DC=acme,DC=org"
  authIdentity="{USERNAME}"
  userFilter="(userPrincipalName={USERNAME})"
  storePass=true

  sample.module.SampleLoginModule required debug=true;
};

Здесь у нас есть два LoginModules:

LdapLoginModule Sun, который проверяет имя пользователя / пароль, и мой sample.module.SampleLoginModule, который запрашивает мою базу данных и заполняет участников. Важным параметром является storePass = true, который просит LdapLoginModule сохранить имя пользователя и пароль в общем состоянии модуля. (см. http://docs.oracle.com/javase/6/docs/jre/api/security/jaas/spec/com/sun/security/auth/module/LdapLoginModule.html ).

Таким образом, следующие модули LoginModules могут получить имя пользователя, переданное методу инициализации в аргументе sharedState Map. Им не должно быть никакого дела в login (), а запрос в БД для заполнения Principales выполняется в commit () (как сказал Шими Бандьель).

Я еще не использую его, но есть DatabaseServerLoginModule, разработанный JBoss (см. http://community.jboss.org/wiki/DatabaseServerLoginModule ), который поддерживает аутентификацию и отображение ролей. При использовании с password-stacking = useFirstPass мы должны получить ответ на мою потребность без написания какого-либо строчного кода (но красивый файл конфигурации JAAS).

Б.

7
задан kiki 7 December 2011 в 16:56
поделиться