W poniższym artykule opiszę, jak w kilku krokach umożliwić aplikacji stworzonej przy pomocy grails 1.3.7 autoryzację z wykorzystaniem Kerberosa (W naszym przypadku Windows 2008 R2).
1. Instalujemy pluginy grails: spring-security-core oraz spring-security-kerberos
$grails install-plugin spring-security-core $grails install-plugin spring-security-kerberos
2. Dodajemy użytkownika w Active Directory, który posłuży nam do zarejestrowania SPN (Service Principal Name) naszej aplikacji
Setspn -a http/<computername>.<domainname> <domain-user-account>
uwagi: <computername>.<domainname> musi się dokładnie tak samo nazywać, jak host, gdzie później będzie uruchomiona aplikacja.
3. Generujemy na serwerze domenowym plik keyTab.
ktpass /out kerberos.keytab /mapuser <domain-user-account>@<DOMAIN.HOST.FULL.NAME> /princ HTTP/<computername>.<domainname>@<DOMAIN.HOST.FULL.NAME> /pass *
4. Wygenerowany plik umieszczamy w miejscu dostępnym dla naszej aplikacji.
5. Dodajmy wpisy do pliku konfiguracyjnego Config.groovy.
grails.plugins.springsecurity.kerberos.ticketValidator.servicePrincipal = 'HTTP/<computername>.<domainname>@<DOMAIN.HOST.FULL.NAME>' grails.plugins.springsecurity.kerberos.ticketValidator.keyTabLocation = 'file:///home/grails/kerberos.keytab'
6. W przeglądarce konfigurujemy zaufaną witrynę (tutaj firefox 4) :
url: about:config network.negotiate-auth.trusted-uris: <computername>.<domainname>