CAS et Kerberos
Pages enfant
  • Migration de l'authentification de LDAP à Kerberos (archive)

Comparaison des versions

Légende

  • Ces lignes ont été ajoutées. Ce mot a été ajouté.
  • Ces lignes ont été supprimées. Ce mot a été supprimé.
  • La mise en forme a été modifiée.

...

Remarque
titleApplication Legacy qui nécessitent une authentification LDAP

Au terme de la phase de migration, c'est-à-dire quand tous les utilisateurs existants avant la mise en place de Kerberos seront présents dans le royaume, il sera possible (sous réserve de tests) de modifier l'authentification pour qu'un bind user/password soit validé en s'appuyant sur le serveur Kerberos et non les mots de passe contenus dans l'annuaire LDAP.

Il est peut-être même possible de faire en sorte de configurer l'annuaire LDAP de telle manière que les binds user/password soient validés en s'appuyant sur les mots de passe de l'annuaire LDAp présents, et sur le serveur Kerberos sinon, grâce à un démon sals_authd utilisant la GSSAPI (à confirmer).

Quand et comment migrer les utilisateurs ?

...

  • vérifier si l'utilisateur existe dans le royaume Kerberos
  • s'il n'existe pas, le créer avec le mot de passe avec lequel il s'est authentifié auprès d'une autre source (en l'occurrence l'annuaire LDAP).

Il ne reste plus qu'à écrire le code nécessaire...Voir plus loin pour le code ajouté au serveur CAS.

Pour créer les nouveaux utilisateurs à la fois dans le royaume Kerberos et l'annuaire LDAP

...

Pour cela, le changement de mot de passe ne doit pas être possible depuis les postes clients (car il ne serait répercuté dans l'annuaire LDAP) et doit se faire via une interface web centraliséequi répercute les changements à la fois dans le royaume Kerberos et l'annuaire LDAP.

Modifications du serveur CAS

Comme vu précédemment il faut, à chaque fois qu'un utilisateur se connecte avec une authentification différente de Kerberos :

  • vérifier si l'utilisateur existe dans le royaume Kerberos
  • s'il n'existe pas, le créer avec le mot de passe avec lequel il s'est authentifié auprès d'une autre source (en l'occurrence l'annuaire LDAP).

L'alimentation du royaume Kerberos est faite par un wrapper de AuthenticationHandler ; de cette manière, elle peut être activée pour pour certains handlers seulement.

La configuration de l'accès au serveur Kerberos est mutualisée dans un bean :

Bloc de code
<bean id="kerberosConfig"  class="org.esupportail.cas.adaptors.kerberosfeed.KerberosFeedConfig">
  <property name="realm" value="UNIV-RENNES1.FR" />
  <property name="principal" value="root/admin" />
  <property name="useKeyTab" value="true" />
  <property name="keytab" value="/etc/cas.keytab" />
</bean>

Si l'on veut alimenter le royaume Kerberos à partir des utilisateurs authentifiés dans l'annuaire LDAP, on utilisera l'AuthenticationHandler suivant :

Bloc de code
<bean class="org.esupportail.cas.adaptors.kerberosfeed.KerberosFeedAuthenticationHandlerWrapper" >
  <property name="authenticationHandler">
    <bean class="org.jasig.cas.adaptors.ldap.FastBindLdapAuthenticationHandler" >
      <property name="filter" value="uid=%u,ou=people,dc=univ-rennes1,dc=fr" />
      <property name="contextSource" ref="contextSource" />
    </bean>
  </property>
  <property name="kerberosConfig" ref="kerberosConfig" />
</bean>

Voir plus loin pour le code