Om de echtheid van SAML-berichten te waarborgen, gebruikt jouw Identity Provider (IdP) digitale handtekeningen. Daarvoor wordt een token signing certificaat ingezet. Dit certificaat heeft een beperkte geldigheidsduur en moet periodiek vervangen worden.
Het belangrijkste om te begrijpen is dat SURFconext automatisch de metadata van jouw IdP ophaalt, eenmaal per dag. Voor een veilige overgang (rollover) moet jouw IdP tijdelijk twee certificaten publiceren in de metadata: het huidige en het nieuwe. Zo kan SURFconext beide certificaten herkennen en ontstaat er geen onderbreking in de dienstverlening. Hoewel SURFconext alleen de public key uit een certificaat gebruikt, kunnen sommige IdP-implementaties problemen geven als het certificaat zelf verlopen is. Zorg daarom dat je ruim vóór de verloopdatum actie onderneemt.
Certificaatrollover in het kort
De stappen voor een soepele en interruptieloze rollover zijn als volgt:
Voeg ruim van tevoren een nieuw certificaat toe in de configuratie en metadata-URL van jouw IdP, maar activeer het nog niet.
Daags erna heeft SURFconext het nieuwe certificaat automatisch ingelezen via de metadata-URL, naast het bestaande certificaat.
Op een door jouw geplande datum activeer je het nieuwe certificaat in de IdP. Omdat SURFconext het al kent, wordt dit direct geaccepteerd. Dit heet een rollover.
Daags daarma kun je het oude certificaat uit de configuratie verwijderen. SURFconext verwijdert het oude certificaat dan ook automatisch.
Door deze werkwijze te volgen, voorkom je dat de inlog via SURFconext onderbroken raakt en weet je zeker dat de overgang soepel verloopt.
Certificaat vernieuwen van Identity Provider-systemen
Voor sommige Identity Provider-systemen (bij voorbeeld SimpleSAMLphp) levert het verlopen van het token signingcertificaat geen problemen op. Bij andere software kan dit wel een probleem geven. Ook als die software de geldigheidsduur van certificaten zelf niet kan aanpassen, kun je waarschijnlijk wel een bestaand certificaat importeren. Het certificaat dat je wilt importeren, maak je dan met een andere tool, zoals OpenSSL.
Met OpenSSL kun je een self-signed tokencertificaat aanmaken. Je doet dat met de volgende commando’s:
openssl genrsa -out key.pem 3072 openssl req -new -key key.pem -out req.csr -subj '/CN=idp.example.org Signing Certificate' openssl x509 -req -in req.csr -signkey key.pem -days 1825 -out cert.pem
Als een bestaand certificaat moet worden verlengd (in plaats van een nieuw gegenereerd certificaat), gebruik je het commando:
openssl x509 -in oldcert.pem -signkey key.pem -days 3650 -out newcert.pem
Certificaat vernieuwen in ADFS 2.0 (Legacy)
Bij de installatie van de ADFS server is een self-signed tokencertificaat geïnstalleerd met een standaard geldigheidsduur van 1 jaar. Dit certificaat wordt automatisch vernieuwd voordat de geldigheidsduur is verstreken. Volgens de standaardinstellingen wordt 20 dagen voor het verstrijken van het oude certificaat een nieuw certificaat aangemaakt.
Wij raden je aan om de geldigheidsduur van dit certificaat te verlengen tot bijvoorbeeld 5 jaar, omdat Service Providers elke keer dat een cerificate rollover plaatsvindt het nieuwe certificaat moeten importeren. En tot die tijd zal de dienst onbereikbaar zijn voor jouw gebruikers.
Als je het automatisch gegenereerde token signingcertificaat wilt verlengen en vervangen, moet je de volgende stappen doorlopen:
Deze stappen zijn bedoeld voor een nieuwe installatie. Voor een bestaande productie-installatie voer je alleen de stappen 1 t/m 3 uit. De langere geldigheidsduur wordt dan pas van kracht na de eerstvolgende (automatische) rollover.
- Start Windows PowerShell.
- Laad de ADFS plugin met het commando
Add-PSSnapin Microsoft.Adfs.PowerShell - Zet de geldigheidsduur van certificaten op 5 jaar (1825 dagen) met:
Set-ADFSProperties -CertificateDuration 1825 - Activeer het nieuwe certificaat met:
Update-ADFSCertificate -CertificateType Token-Signing -Urgent
Voer deze stap alleen uit als de server nog niet in productie is genomen. Voor productieservers wacht je tot het eerstvolgende moment waarop een certificate rollover plaatsvindt. - Controleer of het certificaat is verlengd met:
Get-ADFSCertificate -CertificateType Token-Signing - De verloopdatum van het certificaat staat vermeld onder 'Not After'.