...
Pour que Firefox active le mode Kerberos, il faut utiliser about:config et mettre ceci qui peut être aussi posé par des policies windows :
network.negotiate-auth.trusted-uris = univ-amu.fr
krb5.conf:
Bloc de code | ||||
---|---|---|---|---|
| ||||
[libdefaults] default_realm = SALSA.UNIV-AMU.FR default_keytab_name = /etc/cas/config/kerberos/cas-test.keytab dns_lookup_realm = true dns_lookup_kdc = true default_tkt_enctypes = rc4-hmac default_tgs_enctypes = rc4-hmac [realms] SALSA.UNIV-AMU.FR = { kdc = xxx.salsa.univ-amu.fr:88 kdc = yyy.salsa.univ-amu.fr:88 } [domain_realm] .salsa.univ-amu.fr = SALSA.UNIV-AMU.FR salsa.univ-amu.fr = SALSA.UNIV-AMU.FR |
...
Une référence intéressante sur Kerberos et HTTP : http://remivernier.com/index.php/2018/09/16/exploration-des-entetes-http-www-authenticate/
Mise à jour des algorithmes de chiffrements sur les KDC
RC4-HMAC est considéré comme faible, et une récente (8 novembre 2022) mise à jour des AD (https://support.microsoft.com/help/5021131) peut provoquer des dysfonctionnement avec l'authentification KERBEROS.
C'est un problème que nous avons rencontré à l'AMU en constatant que SPNEGO ne fonctionnait plus et des erreurs dans les logs :
Bloc de code | ||
---|---|---|
| ||
Caused by: GSSException: Failure unspecified at GSS-API level (Mechanism level: Encryption type RC4 with HMAC is not supported/enabled) at java.security.jgss/sun.security.jgss.krb5.Krb5Context.acceptSecContext(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/enabled at java.security.jgss/sun.security.krb5.EncryptionKey.findKey(EncryptionKey.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.<init>(InitSecContextToken.java:139) at java.security.jgss/sun.security.jgss.krb5.Krb5Context.acceptSecContext(Krb5Context.java:832) ... 269 more |
Sur les ADs, la valeur de chiffrement par défaut est RC4-HMAC. Or La mise à jour passe cette valeur par défaut sur AES (128, 256 ,etc.).
CAS faisant du rc4-hmac, il nous faut passer en AES256-CTS.
L'équipe Windows nous a généré un nouveau keytab chiffré avec le bon algorithme et nous avons modifié le fichier krb5.conf :
default_tkt_enctypes = aes256-cts
default_tgs_enctypes = aes256-cts
Pensez à bien passer la commande klist purge sur les postes clients Windows (kdestroy pour linux)... sinon, il faut attendre la date de renouvellement des tickets KERBEROS (7 jours par défaut).
Pas besoin de redémarrer CAS