Kerberos authentication mod Active Directory fra Apache

Jeg stod for noget tid siden overfor den udfordring, at få vores Apacheserver til at tilbyde SSO mod vores AD.

Tidligere har vi anvendt denne løsning: https://github.com/Legrandin/PyAuthenNTLM2, men da vi står overfor udvikling af nyt intranet, samt en løsning som kræver Kerberos på længere sigt, måtte vi jo få Kerberos til at virke.

Jeg tror desværre jeg fik lavet en indledende fejl, for efter en uge, ville det stadig ikke virke. Men da jeg så til sidst endelig fik hul igennem, kunne jeg efterfølgende lave en fungerende løsning på 5 minutter. :o)

Løsningen er som følger:

Opret en “standard” bruger i AD.

Husk at sæt flueben i: Password never expires

Når brugeren er oprettet, skal følgende kommando skydes af i en prompt:

ktpass 
  -princ HTTP/servername.domain.int@DOMAIN.INT 
  -mapuser ad_brugernavn@domain.int 
  -pass kodeord 
  -crypto RC4-HMAC-NT 
  -ptype KRB5_NT_PRINCIPAL 
  -out krb5.keytab

servername.domain.int, skal være samme navn, som Linux-serveren er registreret med i DNS. Sørg for der både er A og PTR record oprettet.

Crypto kan være en anden type, alt efter hvilken version af AD der anvendes.

Flyt denne krb5.keytab til Linux serveren og placer den f.eks. i /etc/krb5.keytab

Herefter skal mod_auth_kerb installeres, på ubuntu kan det installeres med denne kommando:

apt-get install libapache2-mod-auth-kerb

Opsæt herefter din vhost med følgende settings:

<Directory /data/www/>
 # Permit by User or IP
 Satisfy any
 # Apache settings
 Options Indexes FollowSymLinks
 AllowOverride All
 # Kerberos Settings
 Require valid-user
 AuthName "Kerberos - Login"
 AuthType Kerberos
 Krb5Keytab /etc/krb5.keytab
 KrbAuthRealm DOMAIN.INT
 KrbServiceName HTTP/servername.domain.int
 # UP
 order deny,allow
 deny from all
 allow from 127.0.0.1
</Directory>

Her kan læses om hvad de forskellige settings betyder: http://modauthkerb.sourceforge.net

Hvis installationen driller, kan man med fordel angive: LogLevel debug i sin vhost. Ligeledes har jeg fundet dette lille værktøj, som viser aktive kerberos tickets på en windows maskine: http://www.microsoft.com/en-us/download/details.aspx?id=17657

Værktøjet hedder: krbtray.exe og er en del af den “store” pakke: Windows Server 2003 Resource Kit Tools.

Dette indlæg blev udgivet i Apache, Diverse, mod_auth_kerb, Ubuntu, Windows Server og tagget , , , , , . Bogmærk permalinket.

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *