Sandro Reiter

vCard und IT-Blog

ADFS: Certificate-Binding wird nicht korrekt ersetzt

Neben der klassischen Kombination aus Benutzername und Passwort zur Authentifizierung beherrschen die Active Directory Federation Services (ADFS) auch die Anmeldung per Nutzerzertifikat.

Hierzu wird von Microsoft empfohlen, dem ADFS Service-Communications-Certificate den alternativen DNS-Namen (SAN) certauth.adfs.meinedomäne.tld hinzuzufügen.

Während der ADFS-Konfiguration wird dieser Endpunkt entsprechend erstellt und das Zertifikat auf Port 443 gebunden.

Enthält das Zertifikat diesen SAN nicht, wird die zertifikatsbasierte Authentifizierung auf Port 49443 und den Service-Namen (adfs.meinedomäne.tld) gebunden.

 

So weit, so gut:

In einem Kundenszenario hatte ich nun den Fall, dass das Service-Communications-Zertifikat ersetzt werden musste. Gesagt, getan:
Zertifikat angefordert, PFX importiert und per PowerShell ersetzt

#replace adfs sts certificate, prequisite: certificate pfx has to be installed
Set-AdfsSslCertificate -Thumbprint "FC85DDB0FC58E63D8CB52654F22E4BE7900FE349"

Auf den Web Application Proxy (WAP) – Maschinen habe ich die Schritte zur Ersetzung des Zertifikats ebenfalls durchgeführt.

Die Umgebung lief bis zu dem Tage, als das alte Zertifikat abgelaufen ist, fehlerfrei. An dem Tag, nach dem das alte Zertifikat ungültig wurde, war der ADFS von extern nicht mehr erreichbar.

 

Der WAP meldete, das der ADFS-Services “unavailable” wäre mit dem Fehler-Code “503”. Eine Re-Konfiguration des WAP endete mit dem Fehler:

“An error occurred while attempting to establish a trust relationship with the Federation Server.

Nach diversen Netzwerk-/Firewall-Tests blieb die Vermutung das es am ADFS selbst liegt…

Eine Überprüfung der Bindings mit

#show adfs ssl bindings
Get-AdfsSslCertificate

bestätigte den Verdacht

HostName                           PortNumber  CertificateHash
--------                           ----------  ---------------
localhost                             443      FC85DDB0FC58E63D8CB52654F22E4BE7900FE349
adfs.meinedomäne.tld                  443      FC85DDB0FC58E63D8CB52654F22E4BE7900FE349
adfs.meinedomäne.tld                  49443    FC85DDB0FC58E63D8CB52654F22E4BE7900FE349
certauth.adfs.meinedomäne.tld         443      3F65896B1E2102515FC7942BD1FC6D9F3603C04A

 

Das Zertifikat für die zertifikatsbasierte Authentifizierung wurde nicht aktualisiert.
Der WAP lief nun in den Fehler, auf ein abgelaufenes Zertifikat zu treffen.

 

Auf dem primären ADFS-Node muss also zusätzlich noch das certauth-Zertifikat ersetzt werden. Das gelingt per PowerShell wie folgt:

#replace adfs sts alternate certificate, prequisite: certificate pfx has to be installed
Set-AdfsAlternateTlsClientBinding -Thumbprint "FC85DDB0FC58E63D8CB52654F22E4BE7900FE349"

Die anschließende erneute Überprüfung der Bindings mit

#show adfs ssl bindings
Get-AdfsSslCertificate

bestätigt die Änderung.

Alle ADFS-Domains nutzen nun das neue, gültige Zertifikat.
Jetzt noch die Web Application Proxies re-konfigurieren, was nun fehlerfrei durchlaufen sollte. Check.

Die ADFS-Testseite (https://adfs.meinedomäne.tld/adfs/ls/IdpInitiatedSignon.aspx) war von extern wieder aufrufbar. Die Anmeldung der Nutzer war ebenso wieder möglich.

 

Warum dieses Verhalten beim Ersetzen des Zertifikats auftritt, erschließt sich mir nicht. Schließlich wird das Zertifikat bei der initialen ADFS-Einrichtung auch explizit auf diese Sub-Domain gebunden, also warum dann das neue Cert (mit den gleichen SANs) nicht auch für die zertifikatsbasierte Authentifizierung aktualisieren? Feature oder Bug?

Citrix Cloud: Connector-Kommunikation absichern

Mit Citrix Cloud ist auch Citrix in das “as a Service”-Business eingestiegen und bietet damit einen wirklich mächtigen Cloud-Dienst mit vielen Produkten im Portfolio an.

App- und Desktopvirtualisierung mit dem Virtual Apps & Desktops, MDM mittels Endpoint Management oder File-Sharing via Content Collaboration sind nur einige der zur Verfügung stehenden Services.

In diesem Beitrag möchte ich auf eine Komponente des Virtual Apps & Desktops Service eingehen – den Citrix Cloud Connector.

Citrix Cloud Connector(en) verbinden das Active Directory sowie den lokalen oder in der Cloud befindlichen Hypervisor mit den Management-Komponenten in der Citrix Cloud.


Durch den Einsatz des VA/VD-Service wird Administratoren viel Arbeit und Zeit im Betrieb, Wartung und Erneuerung einer Vielzahl an Komponenten (Lizenz-Server, Delivery-Controller, Datenbank-Cluster,…) erspart.

Trotz all des neu gewonnenen Komforts sollte die Sicherheit dennoch nicht in den Hintergrund rücken. Deswegen ist es auch bei der Connector-Komponente zu empfehlen die Kommunikation mit den VDAs abzusichern.

 

Was wird dazu benötigt?

  • ein Server-Zertifikat
  • administrative Berechtigungen auf dem Server

 

Der Befehl zum Binden eines Zertifikats an einen Port sieht wie folgt aus:

::add SSL-Binding to Citrix Broker Service
netsh http add sslcert ipport=<IP address>:<Port Number> certhash=<Certificate Hash Number> appid={<Citrix Broker Service GUID>}

 

Die Platzhalter müssen noch durch die korrekten Werten ersetzt werden:

<IP address> = IP-Adresse des Servers

<Port Number> = Port an den das Zertifikat gebunden werden soll

<Certificate Hash Number> = Hash des installierten Serverzertifikats

<Citrix Broker Service GUID> = GUID des Citrix Broker Dienstes

Die GUID ist in der Windows Registry unter HKEY_CLASSES_ROOT\Installer\Products zu finden. Der Key stellt dabei die GUID dar und muss wie folgt aufgeschlüsselt werden: 8-4-4-4-12

Beispiel: 6B6FE0CF-3124-E654-C8C6-D40734B302EF

 

Sobald das Binding aktiviert wurde können die VDAs so konfiguriert werden, das über Port 443 mit den Cloud Connectoren kommuniziert wird.

Cloud Security: Microsoft Secure Score

In meinem letzten Post habe ich das Schlagwort “Cloud” genauer erklärt. Dabei habe ich die These aufgestellt, das es schwierig bis unmöglich wird eine genauso sichere Infrastruktur anzubieten wie es die großen Cloud-Anbieter tun. Zum Einstieg dazu ein paar bewegte Bilder:

 

Was möchte uns dieses Video nun sagen? Am Ende gibt es ja einen dezenten Hinweis auf des Rätsels Lösung – ich sehe das aber etwas anders: Wozu sollte sich jeder die “beste” Security-Lösung anschaffen und gut bezahltes Fachpersonal zur Wartung & Optimierung dieser Umgebung einstellen oder einen Dienstleister engagieren der dies erledigt?

Ja, wozu eigentlich? Ich habe auch keine wirklich gute Antwort, außer das Verlangen nach (scheinbarer) Sicherheit und Kontrolle unserer Gesellschaft – darf aber nix kosten!

 

Nur damit mich niemand falsch versteht, Security ist wichtig und sollte niemals als optional angesehen werden. Ich möchte nur sagen: Braut nicht Euer eigenes Süppchen und versucht nicht das Rad neu zu erfinden. Nutzt die Möglichkeiten die Euch von wirklichen Experten, die 24 Stunden 7 Tage die Woche nichts anderes machen und genau dafür ausgebildet und bezahlt werden, angeboten werden.

 

Soviel zum Teaser: Worauf will ich eigentlich hinaus? Wer kennt den Secure Score von Microsoft?
https://securescore.office.com/

Der Azure Secure Score befindet sich getrennt vom O365- und Windows Secure Score im Azure Security Center:
https://portal.azure.com/#blade/Microsoft_Azure_Security/SecurityMenuBlade/5

 

Der Microsoft Secure Score ist ein wunderbares Werkzeug um seine eigene Office 365-, Windows- und Azure-Umgebung einem Security-Check mit Empfehlungen direkt aus Microsofts Cloud-Security Abteilung zu unterziehen. Und das Beste: Jeder Microsoft Cloud Business-Kunde hat Zugriff auf den Secure Score und kann diesen Check durchführen.

 

Es werden Verbesserungen wie das Aktivieren von Multi-Faktor-Authentifizierung über die Modifikation der Exchange Transportregeln bis hin zu Windows Defender Optimierungen vorgeschlagen. Je nach gewünschtem Secure “Highscore” lassen sich die Maßnahmen auch einschränken. Die Task-Details schaffen Klarheit über Implementierungsaufwand und Auswirkungen auf die User, außerdem ist eine Beschreibung sowie weiterführende Links in jedem Vorschlag enthalten.

 

Ich empfehle Euch mal einen Blick in den Secure Score Eurer Umgebung zu werfen. Seid Ihr zufrieden mit dem Ergebnis?