Letzte Woche hatte ich eine Anfrage eines Kunden, dass die MFA-Authentifizierung plötzlich nicht mehr geht. Der Kunde hat daraufhin die neuste NPS MFA-Extension installiert, und zudem das Troubleshooting Skript für MFA laufen lassen, aber nichts gefunden. Letztlich hat er mich um einen kurzfristigen Support gebeten. Ein Blick in das MFA-Event Log zeigte einen kritischen Fehler mit: "CLIENT_CERT_IDENTIFIER" und damit ein Fingerzeig auf das lokale Zertifikat auf dem NPS-Server. Im persönlichen Zertifikatsspeicher ist das Zertifikat mit der Azure Mandanten-ID zu finden und dies war bis einen Tag zuvor noch gültig! Ein neues Zertifikat für den Azure Multi-Faktor Auth Client muss generiert werden, aber wie?
Hier das Zertifikat und um sicherzugehen, muss in den Details für Issuer: "OU= Microsoft NPS Extension" stehen.
Die Lösung ist dann noch einmal das AzureMfaNpsExtnConfigSetup.ps1 Skript laufen zu lassen, wodurch ein neues Zertifikat erstellt wird. Dies muss alle zwei Jahre gemacht werden, denn länger ist das private Zertifikat nicht gültig.
Fall gelöst? Nein, denn anstelle eines "Genehmigen/Verweigern" wurde jetzt ein einmal Kennwort (OTP) abgefragt, was aber funktionierte. Die Benutzer sind aber das "Genehmigen/Verweigern" gewohnt und wollte der Kunde wieder so haben! Die Aktualisierung der NPS MFA-Extension durch den Kunden hatte zur Folge, dass Microsoft mit der neueren Version das OTP erzwingt! Glücklicherweise kann dies über einen Registrierungswert wieder rückgängig gemacht werden. Hierzu den Wert OVERRIDE_NUMBER_MATCHING_WITH_OTP
auf FALSE
setzen und deaktiviert damit den OTP-Zwang.
Fall gelöst? Nicht ganz, denn in Entra war der Status des Zertifikatsablaufs für den "Azure Multi-Faktor Auth Client" noch immer auf ungültig!? Das Problem ist, dass die Unternehmensanwendung "Azure Multi-Faktor Auth Client" mehrere Zertifikate gespeichert haben kann und wenn nur eines der Zertifikate abgelaufen ist, dann ist der Status ungültig. Es müssen also alle ungültigen Zertifikate gelöscht werden, aber wie? Über den Powershell Befehl: Get-MsolServicePrincipalCredential -AppPrincipalId "981f26a1-7f43-403b-a875-f8b09b8cd720" -ReturnKeyValues 1
können alle Zertifikate angezeigt werden. Dann müssen alle abgelaufenen Zertifikate über die Key ID gelöscht werden. Der Befehl Remove-MsolServicePrincipalCredential -AppPrincipalId "981f26a1-7f43-403b-a875-f8b09b8cd720" -KeyID "d8d60ffe-9991-4c05-960d-29c51a7d4540"
löscht dann das Zertifikat mit der angegebenen KeyID. Sind alle Zertifikate gelöscht, dann zeigt der Status "Aktuell" an.
Damit war für mich dann der Support-Fall endgültig gelöst, aber denken Sie daran, dass das Zertifikat alle zwei Jahre erneuert werden muss.