[Admin-ml] apache avec kerberos.

Fabien COMBERNOUS fcombernous at kezia.com
Mer 23 Déc 17:42:42 CET 2009


Fabien COMBERNOUS wrote:
> Olivier DUCROT wrote:
>> Il n'y a pas besoin de jouer de kadmin pour que ça tombe en marche 
>> comme tu
>> le dis. Kadmin ne te donne pas de ticket !
>> Il faut simplement binder ta machine sur le serveur et activer
>> l'authentification kerberos pour apache avec serveradmin
>>   
> La machine qui héberge le serveur web est bien bindé puisque c'est 
> aussi l'ODm.
> Et cette machine a le nom fqdn dns.domain, et kadmin me liste bien le 
> principal HTTP/dns.domain at REALM. Avec l'utilisateur qui va bien, 
> utilisant un home AFP distant, authentifié avec kerberos, l'accès à la 
> page http://dns.domain est transparent.
>
> Mais, si je cherche à utiliser le virtualhost défini dans apache 
> http://myadmin.domain, le principal attendu est 
> HTTP/myadmin.domain at REALM. Et ce principal n'existe pas, dixit kadmin. 
> Et j'ai pourtant bien demandé une identification kerberos pour le 
> virtualhost apache avec ServerAdmin.
Quand je regarde les logs apache en mode débug voilà ce que j'otiens.

Quand j'utilise http://dns.domain qui fonctionne
------------------------------------------------------------
 mod_cache.c(131): Adding CACHE_SAVE filter for /
 mod_cache.c(138): Adding CACHE_REMOVE_URL filter for /
 mod_spnego_apple2.c(114): [client 192.168.1.58] mod_spnego_apple: 
Noting auth required for realm 'My Administrator'
 mod_cache.c(131): Adding CACHE_SAVE filter for 
/error/HTTP_UNAUTHORIZED.html.var
 mod_cache.c(138): Adding CACHE_REMOVE_URL filter for 
/error/HTTP_UNAUTHORIZED.html.var
 mod_headers.c(743): headers: ap_headers_output_filter()
 mod_cache.c(552): cache: /error/HTTP_UNAUTHORIZED.html.var not cached. 
Reason: Response status 401
 mod_headers.c(743): headers: ap_headers_output_filter()
 mod_headers.c(743): headers: ap_headers_output_filter()
 mod_headers.c(743): headers: ap_headers_output_filter()
 mod_headers.c(743): headers: ap_headers_output_filter()
 mod_spnego_apple2.c(341): [client 192.168.1.58] mod_spnego_apple: 
Kerberos legacy token available
 mod_spnego_apple2.c(221): [client 192.168.1.58] mod_spnego_apple: 
dsProxyOneWayGSSAPIAuth: Returning 0
[client 192.168.1.58] mod_spnego_apple: Successful authentication for 
user fcombernous at REALM using service principal HTTP/dns.domain at REALM
 mod_auth_apple2.c(600): [client 192.168.1.58] mod_auth_apple: Declining 
non-basic auth_type
[client 192.168.1.58] mod_spnego_apple: Authorized specific user 
fcombernous at REALM uri /

Quand j'utilise l'alias http://myadmin.domain qui donne erreur 401
---------------------------------------------------------------------------
mod_cache.c(131): Adding CACHE_SAVE filter for /
mod_cache.c(138): Adding CACHE_REMOVE_URL filter for /
mod_spnego_apple2.c(114): [client 192.168.1.58] mod_spnego_apple: Noting 
auth required for realm 'My Administrator'
mod_cache.c(131): Adding CACHE_SAVE filter for 
/error/HTTP_UNAUTHORIZED.html.var
mod_cache.c(138): Adding CACHE_REMOVE_URL filter for 
/error/HTTP_UNAUTHORIZED.html.var
mod_headers.c(743): headers: ap_headers_output_filter()
mod_cache.c(552): cache: /error/HTTP_UNAUTHORIZED.html.var not cached. 
Reason: Response status 401
mod_headers.c(743): headers: ap_headers_output_filter()
mod_headers.c(743): headers: ap_headers_output_filter()
mod_headers.c(743): headers: ap_headers_output_filter()
mod_headers.c(743): headers: ap_headers_output_filter()
mod_spnego_apple2.c(341): [client 192.168.1.58] mod_spnego_apple: 
Kerberos legacy token available
mod_spnego_apple2.c(221): [client 192.168.1.58] mod_spnego_apple: 
dsProxyOneWayGSSAPIAuth: Returning -14090
 [client 192.168.1.58] mod_spnego_apple: Failed to authenticate with 
Kerberos, user (null)

Dans les deux cas j'ai le même log dans kerberos :
Dec 23 17:30:23 dns.domain krb5kdc[48](info): TGS_REQ (7 etypes {18 17 
16 23 1 3 2}) 192.168.1.58: ISSUE: authtime 1261585843, etypes {rep=18 
tkt=16 ses=18}, fcombernous at REALM for HTTP/dns.domain at REALM
Dec 23 17:30:23 dns.domain krb5kdc[48](info): TGS_REQ (7 etypes {18 17 
16 23 1 3 2}) 192.168.1.58: ISSUE: authtime 1261585843, etypes {rep=18 
tkt=16 ses=18}, fcombernous at REALM for HTTP/dns.domain at REALM

Dec 23 17:33:58 dns.domain krb5kdc[48](info): TGS_REQ (7 etypes {18 17 
16 23 1 3 2}) 192.168.1.58: ISSUE: authtime 1261585843, etypes {rep=18 
tkt=16 ses=18}, fcombernous at REALM for HTTP/myadmin.domain at REALM
Dec 23 17:33:58 dns.domain krb5kdc[48](info): TGS_REQ (7 etypes {18 17 
16 23 1 3 2}) 192.168.1.58: ISSUE: authtime 1261585843, etypes {rep=18 
tkt=16 ses=18}, fcombernous at REALM for HTTP/myadmin.domain at REALM

Avec kadmin, j'ai créé 3 principals de service HTTP http et 
host/myadmin.domain at REALM.

Dans les deux cas, il voit bien "Kerberos legacy token available", mais 
dans un cas dsProxyOneWayGSSAPIAuth retourne 0 et pas dans l'autre. Et 
il me traite alors de user null :)

J'ai mis dsProxyOneWayGSSAPIAuth dans un moteur de recherche et j'ai eu 
comme seul écho à ma recherche l'infinité du vide. Et 
discussions.apple.com est tout aussi verbeux.

Il n'est pas possible d'utiliser le kerberos sur un alias  web ?

-- 
*Fabien COMBERNOUS*
/unix system engineer/
www.kezia.com <http://www.kezia.com/>
*Tel: +33 (0) 467 992 986*
Kezia Group


Plus d'informations sur la liste de diffusion Admin-ml