Mit Windows ist jetzt eine Anmeldung mit Smartcards mögich.
Hier nun ein paar Screenshots von Windows 10, evtl. muss bei "Anmeldeoptionen" noch "Smartcard" ausgewählt werden.
Hier wurde der Username aus den Attributen des X.509 Clientzertifikats übernommen. Der User muss jetzt nicht einmal mehr seinen Usernamen eingeben. Er muss sich nur noch die Pin seiner Smartcard merken.
Nach Eingabe der richtigen PIN erscheint nun die gewohnte Windows Oberfläche.
Das Zertifikat auf der Smartcard lässt sich auch für sonstige Single-Signon Anwendungen nutzen. Alles, was am Windows AD teilnimmt hat damit eine 2-Faktor Authentifizierung. Mit Hilfe des Browsers, der die PKCS#11 Libs von OpenSC nutzt, können auch alle Webanwendungen des Unternehmens das Zertifikat nutzen. Es muss im Webserver lediglich ein Client Zerntifikat erzwungen werden und das vom Windows AD genutzte CA Zertifikat im Webserver installiert werden. Hier ein Beispiel für eine Demo Webanwendung mit PHP (auf einer CentOS 8 Installation):
Die Webanwendung muss allerdings aus den Environment Variablen des Webservers den CN oder MS UPN entnehmen, um den Usernamen zu bestimmen. Bemerkenswert ist dann dabei, dass die Webanwendung nicht in AD eingebunden sein muss, daher ist die Lösung auch ideal für Cloudanwendungen. In dem o.g. Beispiel würde eine Webanwendung einfach den Usernamen aus $_SERVER['GSS_NAME'] entnehmen. Für Webanwendungen ist es allerdings zu empfehlen, einen Auth-Provider, wie z.B. Keycloak als OpenID-Connect Provider zu verwenden. Keycloak kann man auch an AD anbinden.