Date: Thu, 28 Mar 2024 23:31:16 +0100 (CET) Message-ID: <2080270492.199.1711665076640@confluence-esup.uphf.fr> Subject: Exported From Confluence MIME-Version: 1.0 Content-Type: multipart/related; boundary="----=_Part_198_1038223838.1711665076640" ------=_Part_198_1038223838.1711665076640 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Content-Location: file:///C:/exported.html
La doc de CAS est assez succincte et on ne sait pas toujours quo= i mettre. Ici =C3=A0 Aix-Marseille Universit=C3=A9, nous avons pas mal gal= =C3=A9r=C3=A9 pour ajouter un load balancer haproxy avec adresse IP virtuel= le.
Dans notre cas, notre domaine est salsa.univ-amu.fr, et notre cas de tes= t cas-test.univ-amu.fr. Bref, que faut il mettre et g=C3=A9n=C3=A9rer. On d= oit g=C3=A9n=C3=A9rer un keytab correspondant =C3=A0 un service en utilisan= t un compte windows sp=C3=A9cialement cr=C3=A9=C3=A9 pour le besoin. Ce com= pte windows est li=C3=A9 au keytab g=C3=A9n=C3=A9r=C3=A9 et on ne doit pas = l'utiliser pour autre chose.
On g=C3=A9n=C3=A8re donc un keytab pour un service. Et attention, le ser= vice ne DOIT PAS =C3=8ATRE UN CNAME ! Si besoin on transforme le CNAME en A. Donc on a mis un deuxi=C3=A8m= e A sur la VIP du load-balancer. Ce keytab doit =C3=AAtre point=C3=A9 dans = le krb5.conf. On ne parle que de Firefox, car les autres navigateurs posent= probl=C3=A8me. S'ils ne sont pas dans le domaine AD et ne peuvent pas fair= e de kerberos, il basculent en NTML avec une interface pourrie style AUTH/B= ASIC.
Pour que Firefox active le mode Kerberos, il faut utiliser about:config = et mettre ceci qui peut =C3=AAtre aussi pos=C3=A9 par des policies windows = :
network.negotiate-auth.trusted-uris =3D univ-amu.fr
[libdefault= s] default_realm =3D SALSA.UNIV-AMU.FR default_keytab_name =3D /etc/cas/config/kerberos/cas-test.keytab dns_lookup_realm =3D true dns_lookup_kdc =3D true default_tkt_enctypes =3D rc4-hmac default_tgs_enctypes =3D rc4-hmac [realms] SALSA.UNIV-AMU.FR =3D { kdc =3D xxx.salsa.univ-amu.fr:88 kdc =3D yyy.salsa.univ-amu.fr:88 } [domain_realm] .salsa.univ-amu.fr =3D SALSA.UNIV-AMU.FR salsa.univ-amu.fr =3D SALSA.UNIV-AMU.FR
Keytab name= : FILE:/etc/cas/config/kerberos/cas-test.keytab KVNO Principal ---- ----------------------------------------------------------------------= ---- 3 HTTP/cas-test.univ-amu.fr@SALSA.UNIV-AMU.FR
Le serveur r=C3=A9el est dans un autre sous domaine derri=C3=A8re le hap=
roxy et =C3=A7a ne pose pas de probl=C3=A8me.
Probl=C3=A8mes rencontr=C3=A9s qui ont pris pas mal de temps:
Tout =C3=A7a combin=C3=A9 peut faire perdre pas mal de jours.
Le client windows Firefox re=C3=A7oit une demande d'authentification HTT= P/kerberos li=C3=A9e au service CAS. Il demande au KDC un ticket pour ce se= rvice et va le renvoyer au serveur qui voit une r=C3=A9ponse valide. Pour l= e serveur, nul besoin de contacter les KDC. Il voit que le ticket retourn= =C3=A9 est valide.
Sur mon poste windows, klist va me montrer mes tickets Kerberos dont cel= ui li=C3=A9 =C3=A0 CAS
#3> = Client : monuid @ SALSA.UNIV-AMU.FR Serveur : HTTP/cas-test.univ-amu.fr @ SALSA.UNIV-AMU.FR Type de chiffrement KerbTicket : RSADSI RC4-HMAC(NT) Indicateurs de tickets 0x40a10000 -> forwardable renewable pre_a= uthent name_canonicalize Heure de d=C3=A9marrage : 6/22/2022 13:59:00 (Local) Heure de fin : 6/22/2022 23:43:14 (Local) Heure de renouvellement : 6/29/2022 13:43:14 (Local) Type de cl=C3=A9 de session : RSADSI RC4-HMAC(NT) Indicateurs de cache : 0 KDC appel=C3=A9 : kdc1.salsa.univ-amu.fr
Pas besoin de mettre un login.conf dans votre configuration
cas.authn.s= pnego.mixedModeAuthentication=3Dtrue #cas.authn.spnego.supportedBrowsers=3DMSIE,Trident,Firefox,AppleWebKit cas.authn.spnego.supportedBrowsers=3DFirefox cas.authn.spnego.send401OnAuthenticationFailure=3Dfalse cas.authn.spnego.ntlmAllowed=3Dfalse cas.authn.spnego.principalWithDomainName=3Dfalse cas.authn.spnego.name=3Dspnego cas.authn.spnego.ntlm=3Dfalse cas.authn.spnego.order=3D1 cas.authn.spnego.system.kerberos-conf=3Dfile:/etc/krb5.conf cas.authn.spnego.system.kerberosRealm=3DSALSA.UNIV-AMU.FR cas.authn.spnego.properties[0].jcifsServicePrincipal=3DHTTP/cas-test.univ-a= mu.fr@SALSA.UNIV-AMU.FR cas.authn.spnego.properties[0].jcifsDomain=3Dsalsa.univ-amu.fr #cas.authn.spnego.system.kerberosDebug=3Dtrue cas.authn.spnego.hostNameClientActionStrategy=3DhostnameSpnegoClientAction cas.authn.spnego.ipsToCheckPattern=3D^(10.*|172.*)$
Une r=C3=A9f=C3=A9rence int=C3=A9ressante sur Kerberos et HTTP : http://remive= rnier.com/index.php/2018/09/16/exploration-des-entetes-http-www-authenticat= e/
RC4-HMAC est consid=C3=A9r=C3=A9 comme faible, et une r=C3=A9cente (8 no= vembre 2022) mise =C3=A0 jour des AD (https://support.= microsoft.com/help/5021131) peut provoquer des dysfonctionnement avec l= 'authentification KERBEROS.
C'est un probl=C3=A8me que nous avons rencontr=C3=A9 =C3=A0 l'AMU en con= statant que SPNEGO ne fonctionnait plus et des erreurs dans les logs :
Caused by: = GSSException: Failure unspecified at GSS-API level (Mechanism level: Encryp= tion type RC4 with HMAC is not supported/enabled) at java.security.jgss/sun.security.jgss.krb5.Krb5Context.acceptSecConte= xt(Krb5Context.java:859) at java.security.jgss/sun.security.jgss.GSSContextImpl.acceptSecContext= (GSSContextImpl.java:361) at java.security.jgss/sun.security.jgss.GSSContextImpl.acceptSecContext= (GSSContextImpl.java:303) ... 267 more Caused by: KrbException: Encryption type RC4 with HMAC is not supported/ena= bled at java.security.jgss/sun.security.krb5.EncryptionKey.findKey(Encryptio= nKey.java:544) at java.security.jgss/sun.security.krb5.KrbApReq.authenticate(KrbApReq.= java:273) at java.security.jgss/sun.security.krb5.KrbApReq.<init>(KrbApReq.= java:149) at java.security.jgss/sun.security.jgss.krb5.InitSecContextToken.<in= it>(InitSecContextToken.java:139) at java.security.jgss/sun.security.jgss.krb5.Krb5Context.acceptSecConte= xt(Krb5Context.java:832) ... 269 more
Sur les ADs, la valeur de chiffrement par d=C3=A9faut est RC4-HMAC. Or L= a mise =C3=A0 jour passe cette valeur par d=C3=A9faut sur AES (128, 256 ,et= c.).
CAS faisant du rc4-hmac, il nous faut passer en AES256-CTS.
L'=C3=A9quipe Windows nous a g=C3=A9n=C3=A9r=C3=A9 un nouveau keytab chi= ffr=C3=A9 avec le bon algorithme et nous avons modifi=C3=A9 le fichier krb5= .conf :
default_tkt_enctypes =3D aes256-cts
default_tgs_enctypes =3D aes256-cts
Pensez =C3=A0 bien passer la commande klist purge sur l= es postes clients Windows (kdestroy pour linux)... sinon, = il faut attendre la date de renouvellement des tickets KERBEROS (7 jours pa= r d=C3=A9faut).
Pas besoin de red=C3=A9marrer CAS :smile: