Unter normalen umständen hätte ich wohl keinen Beitrag zu diesem Thema geschrieben. Doch beim ändern des ADFS Service Communication bin ich auf eine Tücke gestoßen.
Ich befinde mich derzeit in einem Projekt in dem eine „alte“ Zertifizierungsstelle abgelöst wird. Im Zuge dessen sollte schließlich auch das Service Communication Zertifikat eines ADFS Servers ersetzt werden. Das Service Communication Zertifikat wird für die HTTPS Kommunikation verwendet. Ein ungültiges Zertifikat wird dementsprechend im Client Browser angezeigt.
Das Service Communication Zertifikat kann über die UI der ADFS Dienste geändert werden.
Hinweis:
Das Service Konto der ADFS Dienste benötigt Zugriff auf die Privaten Schlüssel aller ADFDS Zertifikate (Service Communication, Token signing, Token encryption). |
Leider meldete mir der Browser nach dem ändern und einem Neustart des ADFS Dienstes immer noch ein fehlerhaftes Zertifikat. Ich überprüfte also Zertifikatsdetails und stellte fest, dass dem Browser immer noch das „alte“ Zertifikat präsentiert wird. Ich verifizierte in der ADFS UI erneut das Service Communication Zertifikat und musste feststellen das dass Zertifikat im Browser nicht dem Zertifikat in der UI entspricht. Ich bemühte also die ADFS PowerShell CMDLET’s um die Konfiguration zu überprüfen:
Get-AdfsCertificate | ft
Der Angezeigt Thumbprint entspricht dem Zertifikat das ich verwenden möchte. Beim durchsehen der weiteren ADFS CMDLET’s stieß ich auf ein weiteres interessantes CMDLET:
Get-AdfsSslCertificate | ft
Es ist unschwer zu erkennen, das der Thumbprint nicht mit dem ersten Ergebnis übereinstimmt. Statt ein „Get-AdfsSslCertificate“ führte ich nun ein „Set-AdfsSslCertificate“ aus:
Set-AdfsSslCertificate –Thumbprint „5B4119C1058D35F7240068226D0C2D348CA9CD05“
Damit wird das korrekte Zertifikat für die SSL Kommunikation festgelegt. Wird der Client nun im Rahmen der ADFS Authentifizierung umgeleitet wird im auch das korrekte Zertifikat präsentiert.