Name of the requested feature: Kerberos support in SSO_FORWARD
- Does it concerns Vulture's Core: yes
- Does it concerns Vulture's GUI : yes
Description of the request:
Bonjour,
j'ai customiser vulture pour faire du SSO_forward sur des backend kerberos.
Le principe c'est que vulture devienne le « client » kerberos, c'est à dire
que pour chaque session utilisateur il va créer un kerberos credential cache.
Lors de la première requête sur une application configuré en
SSO_Forward_Kerberos, il va demander un ticket « Domain » pour le Realm
correspondant en utilisant le user/pwd de la session utilisateur stocké dans
mem_cache.
Ensuite pour chaque requête sur une application configuré en
SSO_Forward_Kerberos, il va demander un ticket pour le SPN de l'application
backend à travers le credential cache (qui gère le caching des tickets et la
résolution inverse des nom dns de l'application pour demander le bon SPN), ce
ticket kerberos sera enfin fowarder à l'application backend dans le header «
Authorization Negotiate » (à la manière du SSO_Forward en mode Htaccess avec
le header « Authorization Basic »).
Voici un extrait de la modification de TransHandlerv2.pm
+++++++++++++++++++++++
#Add Authorization header for htaccess
if ( $app->{'sso'}->{'type'}
and $app->{'sso'}->{'type'} eq "sso_forward_htaccess" )
{
$r->headers_in->set(
'Authorization' => "Basic "
. encode_base64(
$session_app->{username} . ':' . $session_app->{password}
)
);
}
####
# Start aziz update section
#
#Add Authorization header for kerberos
if ( $app->{'sso'}->{'type'}
and $app->{'sso'}->{'type'} eq "sso_forward_kerberos" )
{
$log->debug("::authen_app: sso_type = sso_forward_kerberos => sending kerberos token authorization header");
my ($svc, $host );
if ( $app->{url} =~ /^(.*):\/\/(.*)$/ ) {
$svc = $1;
$host = $2;
}
my $token = Auth::Auth_KERBEROS::getKerberosServiceToken($session_app->{username},
$session_app->{password}, $svc, $host, $log);
if ( $token ) {
$r->headers_in->set('Authorization' => "Negotiate ".encode_base64($token,"") );
}
}
#
# End aziz update section
####
++++++++++++++++++++++++++++++++++++++++++++++++++
Je voulais juste avoir un avis sur cette approche pour répondre au besoin de
faire du SSO_Forward sur des backend qui ne supporte que le mode
d'authentification kerberos.
Si cette approche correspond à la vision/roadmap de vulture pour une future
version ou que d'autres utilisateurs sont intéressés, je serais heureux de
publié le code sur ce forum ou ailleurs.
Original issue reported on code.google.com by jeremie....@gmail.com on 18 Oct 2013 at 9:30
Original issue reported on code.google.com by
jeremie....@gmail.com
on 18 Oct 2013 at 9:30