SMS Passcode: Login mit sAMAccountName unterbinden
SMS Passcode ist eine Software für die 2-Faktor-Authentifizierung. Sie generiert OTPs die dem User auf verschiedenen Wegen zugestellt werden können, z.B. via Software Token App auf dem Handy, E-Mail, Telefonanruf, API, oder eben SMS. SMS Passcode setzt dabei auf den Network Policy Server (den RADIUS Dienst von Microsoft) auf. SMS Passcode lässt sich durch die RADIUS Architektur sehr einfach an jeden RADIUS kompatiblen Dienst anbinden, u.a. an den Citrix NetScaler.
SMS Passcode kann Passwörter bzw. User Accounts mit „Windows NT“ über das Active Directory (via Computer Account in der Domäne) oder LDAP (via LDAP Bind) auflösen. Auch im LDAP Mode ist aber trotz richtiger Konfiguration auch immer der Login via sAMAccountName möglich, selbst wenn der sAMAccountName explizit nicht als Benutzername angegeben oder importiert wird.
Problematisch ist dies in Multi-Domain-Setups, in denen ausschließlich mit einem Login mit dem userPrincipalName gerechnet wird, etwa wenn Citrix StoreFront ohne Default Domains betrieben wird. Hier funktioniert nur der Login mit dem Domänenprefix (DOMAIN\username) bzw. dem userPrincipalName (user@domain.local).
Falls User aus der Gewohnheit heraus den Login mittels sAMAccountName versuchen klappt dieser zwar, das NetScaler Gateway kennt jedoch die für das SSO nötige Domain des Users nicht. Die Folge ist eine „Permission Denied“ Fehlermeldung von Storefront nach erfolgreicher Authentifizierung.
Es gibt jedoch eine einfache Möglichkeit Loginversuche via SAM auf der Windows NPS Ebene zu unterbinden, um Benutzer nicht in dieses Problem laufen zu lassen.
In der Connection Request Policy im NPS kann eine Condition für den Usernamen konfiguriert werden. Hier sind auch Regular Expressions supported.
# Regular Expression für den userPrincipalName ^.*\@.*$
Mit dieser Condition wird geprüft ob der Username mindestens ein @-Zeichen enthält. Falls nicht, greift die Policy nicht. Gibt es keine andere machende Policy, schlägt der Login komplett fehl.