JBoss + LDAP


Jak skonfigurować w JBossie uwierzytelnianie i autoryzację opartą o LDAP ?

Na początek przykładowa aplikacja

Na potrzeby testów stwórzmy sobie prościutką aplikację i umieśćmy ją na JBossie.

Najprościej będzie użyć do tego celu mechanizmu archetypów Mavena:

Po zatwierdzeniu powinniśmy mieć gotowy do deployu projekt.

Wystarczy go zbudować

i skopiować do katalogu JBOSS/server/default/deploy

Po uruchomieniu serwera i wejściu na stronę http://localhost:8080/ldap-integration powinniśmy zobaczyć „Hello World”.

Konfiguracja modułu uwierzytelniania w JBossie

Kolejnym krokiem będzie konfiguracja uwierzytelniania w JBossie. W tym celu edytujemy plik JBOSS/Server/default/login-config.xml i dodajemy w nim nową politykę bezpieczeństwa, którą nazwiemy ldap:

Wyjaśnienie najważniejszych parametrów:

  • login-module – wskazanie modułu uwierzytelniania – dla samego uwierzytelniania możemy użyć LdapLoginModule; jeśli chcemy użyć również autoryzacji opartej o LDAP musimy użyć LdapExtLoginModule
  • java.naming.provider.url – namiary na kontroler domeny
  • bindDN – nazwa użytkownika z uprawnieniami do wykonywania zapytań w LDAPie
  • bindCredential – hasło użytkownika
  • baseCtxDN – ścieżka do wyszukiwania użytkownika
  • baseFilter – filtr służący do wyszukania uwierzytelnianego użytkownika
  • rolesCtxDN – ścieżka do wyszukiwania roli
  • roleFilter – filtr służący do wyszukania roli użytkownika
  • roleAttributeID – wskazanie na miejsce w ścieżce gdzie będzie nazwa roli
  • roleRecursion – głębokość wyszukiwania roli
  • searchScope – zasięg wyszukiwania (OBJECT_SCOPE, ONELEVEL_SCOPE, SUBTREE_SCOPE)
  • allowEmptyPasswords – flaga wskazująca, czy puste hasła powinny być przekazywane do serwera LDAPa (niektóre serwery LDAP traktują puste hasło jako zalogowanie anonimowe)

Pełna lista parametrów dla modułu LdapExtLoginModeule dostępna jest pod adresem:

http://docs.redhat.com/docs/en-US/JBoss_Enterprise_Application_Platform/4.2/html/Server_Configuration_Guide/Using_JBoss_Login_Modules-LdapExtLoginModule.html

Podpięcie uwierzytelniania do aplikacji

Ostatnim krokiem jest podpięcie dodanej polityki do naszej aplikacji i zabezpieczenie dostępu do pewnych zasobów w aplikacji. W tym celu dodajemy w katalogu src/main/webapp/WEB-INF/ plik jboss-web.xml o następującej treści:

Następnie zabezpieczamy dostęp do aplikacji w pliku web.xml:

Gdy ponownie wejdziemy na stronę naszej aplikacji (http://localhost:8080/ldap-integration) powinniśmy zostać zapytani o login i hasło użytkownika. Po podaniu domenowego loginu i hasła powinniśmy ponownie zobaczyć nasze ‘Hello World’ – pod warunkiem, że jesteśmy w LDAPie przypisani do grupy administrator.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *