Come appare il messaggio
OneLogin\Saml2\ValidationError: Signature validation failed. SAML Response rejectedCause frequenti
- L'identity provider (Entra ID, ADFS, Keycloak) ha rinnovato il certificato di firma e Nextcloud ha ancora quello vecchio.
- È salvato il certificato sbagliato, ad esempio quello di cifratura invece di quello di firma.
- Le opzioni di firma non coincidono: Nextcloud si aspetta asserzioni firmate e l'IdP firma solo la response (o viceversa).
- Il certificato si è rovinato durante il copia-incolla (a capo, caratteri mancanti).
Verifica
- Mostra la configurazione SAML in Nextcloud
sudo -u www-data php /var/www/nextcloud/occ saml:config:get - Leggi i certificati IdP attuali dai metadata
curl -s https://sso.example.com/realms/main/protocol/saml/descriptor | grep -o '<ds:X509Certificate>[^<]*' - Fingerprint e scadenza del certificato salvato
openssl x509 -in idp.crt -noout -fingerprint -sha256 -enddate - Trova gli errori SAML nel log di Nextcloud
grep -i 'saml' /var/www/nextcloud/data/nextcloud.log | tail -n 5
Soluzione
- Inserisci nelle impostazioni SSO di Nextcloud il certificato di firma attuale preso dai metadata dell'IdP (solo il blocco Base64, senza righe vuote).
- Allinea le opzioni di firma con l'IdP, ad esempio asserzioni firmate oppure response firmata.
- Per le rotazioni pianificate aggiungi per tempo il nuovo certificato, se l'IdP li usa entrambi in parallelo.
- Per il debug porta per poco
loglevela 0 e poi rimettilo com'era.
Domande frequenti
È un problema del certificato TLS del sito?
No. SAML usa un certificato di firma separato dell'IdP; il certificato HTTPS di Nextcloud qui non conta.
Perché ieri funzionava?
Quasi sempre il certificato dell'IdP è stato rinnovato. Entra ID e ADFS ruotano in automatico: confronta il fingerprint nei metadata con quello in Nextcloud.