IPhone Authentifizierung am NPS nur mit Zertifikat
Moin zusammen,
Aufbau:
Unifi Controller mit Accesspoints
Windows Server 2022 mit NPS Rolle
Domain Controller
Ich möchte, dass sich die Clients per Zertifikat am Radius anmelden.
Mit einem Windows Client funktioniert das auch prima, man wählt das Zertifikat aus und man muss keinen Benutzernamen/Passwort mehr eingeben.
Das iPhone hat zwar auch ein Zertifikat erhalten, verlangt jedoch immer einen Benutzernamen / Passwort, sonst kann man die Anmeldemaske nicht absenden, obwohl unter dem Usernamen/Passwort Feld das Zertifikat bereits ausgewählt wurde. Es kommt die Meldung "Username darf nicht leer sein".
Geht das mit dem iPhone nicht? Hat das jemand mit einem iPhone bereits am Laufen?
Wenn ich dann Username und Passwort ausfülle, bekommt der NPS die Anfrage und kann dementsprechend erlauben oder ablehnen. Aber ohne Username geht gar nichts...
Danke euch and keep rockin'
Der Mike
Aufbau:
Unifi Controller mit Accesspoints
Windows Server 2022 mit NPS Rolle
Domain Controller
Ich möchte, dass sich die Clients per Zertifikat am Radius anmelden.
Mit einem Windows Client funktioniert das auch prima, man wählt das Zertifikat aus und man muss keinen Benutzernamen/Passwort mehr eingeben.
Das iPhone hat zwar auch ein Zertifikat erhalten, verlangt jedoch immer einen Benutzernamen / Passwort, sonst kann man die Anmeldemaske nicht absenden, obwohl unter dem Usernamen/Passwort Feld das Zertifikat bereits ausgewählt wurde. Es kommt die Meldung "Username darf nicht leer sein".
Geht das mit dem iPhone nicht? Hat das jemand mit einem iPhone bereits am Laufen?
Wenn ich dann Username und Passwort ausfülle, bekommt der NPS die Anfrage und kann dementsprechend erlauben oder ablehnen. Aber ohne Username geht gar nichts...
Danke euch and keep rockin'
Der Mike
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 12689353433
Url: https://administrator.de/contentid/12689353433
Ausgedruckt am: 23.11.2024 um 08:11 Uhr
8 Kommentare
Neuester Kommentar
man wählt das Zertifikat aus und man muss keinen Benutzernamen/Passwort mehr eingeben.
Normal weil Windows dabei per Default den Windows Benutzernamen benutzt, geh einfach mal in die erweiterten Eigenschaften der Verbindung dann siehst du das Häkchen das der aktuelle User dafür verwendet wird.Das iPhone hat zwar auch ein Zertifikat erhalten, verlangt jedoch immer einen Benutzernamen / Passwort, sonst kann man die Anmeldemaske nicht absenden, obwohl unter dem Usernamen/Passwort Feld das Zertifikat bereits ausgewählt wurde. Es kommt die Meldung "Username darf nicht leer sein".
Auch normal, eine identity ist für die Zuordnung am Radius im Normalfall mandatory, wenn du beim Verbinden auf EAP-TLS stellst wird die Identity automatisch eingetragen.Works as designed 😉
Gruß
Funktioniert fehlerlos....
Der Trick ist beim Verbinden...
⚠️ Noch eine Warnung für all diejenigen die ihre PKCS12 User Zertifikate (.p12 oder .pfx) mit OpenSSL erzeugen ala:
openssl pkcs12 -export -out user.pfx -inkey user.key -in user.crt
Apple hat sich von der OpenSSL Entwicklung abgekoppelt und benutzt eigene Passwort Algorythmen mit dem Ergebnis das bei Import ins iPhone das Passwort nicht erkannt wird und das iPhone immer ein falsches Passwort anmeckert obwohl dies korrekt ist.
Nutzt man dann mit:
openssl pkcs12 -export -legacy -out user.pfx -inkey user.key -in user.crt
das alte Verfahren klappt es auch mit dem iPhone sofort! 😉
Der Trick ist beim Verbinden...
- auf "Sicherheit" zu tippen und dann dort EAP-TLS auswählen das danach ein blauer Haken erscheint.
- dann auf "Identität" tippen und das User Zertifikat ebenso blau anhaken. Dann wird auch oben der "Verbinden" Button ebenfalls blau und so muss man keinen Benutzernamen oder PW angeben! Das Feld bleibt leer.
⚠️ Noch eine Warnung für all diejenigen die ihre PKCS12 User Zertifikate (.p12 oder .pfx) mit OpenSSL erzeugen ala:
openssl pkcs12 -export -out user.pfx -inkey user.key -in user.crt
Apple hat sich von der OpenSSL Entwicklung abgekoppelt und benutzt eigene Passwort Algorythmen mit dem Ergebnis das bei Import ins iPhone das Passwort nicht erkannt wird und das iPhone immer ein falsches Passwort anmeckert obwohl dies korrekt ist.
Nutzt man dann mit:
openssl pkcs12 -export -legacy -out user.pfx -inkey user.key -in user.crt
das alte Verfahren klappt es auch mit dem iPhone sofort! 😉
Normalerweise sollte das so klappen wie aqui oben geschreiben hat.
Wir verteilen das WLAN Zertifikat derzeit über das MDM und darüber dann auch gleich die passende Konfig für´s WLAN. Klappt alles wie es sollte.
Nächster Schritt wird bei und sein das sich die iPhone selber die zertifikate abholen und somit jedes iPhone sein eigenes Zertifikat bekommt
Wir verteilen das WLAN Zertifikat derzeit über das MDM und darüber dann auch gleich die passende Konfig für´s WLAN. Klappt alles wie es sollte.
Nächster Schritt wird bei und sein das sich die iPhone selber die zertifikate abholen und somit jedes iPhone sein eigenes Zertifikat bekommt
Wenn es das denn war bitte deinen Thread dann als erledigt schliessen!
Wie kann ich einen Beitrag als gelöst markieren?
Wie kann ich einen Beitrag als gelöst markieren?
Wenn man das User Zertifikat mit OpenSSL erzeugt macht gibt man das menügeführt an:
Bei Windows Clients muss man zusätzlich beachten das die das Attribut "clientAuth" im Extended Key Usage erzwingen. Deshalb macht es Sinn die User Zertifikate gleich immer damit zu erstellen.
Hier die Prozedur für die OpenSSL Fraktion:
Dazu erstellt man zuerst eine kleine Textdatei (nano etc.) z.B. user-eku.txt mit dem Inhalt:
Dann den Key erstellen:
Danach den CSR der die Daten wie Common Name, SAN usw. abfragt. Common Name (CN) und Email Adresse sollten hier User spezifisch sein. CN darf keine Leerzeichen enthalten!
Danach wird das User Zertifikat erzeugt wozu man das CA Zertifikat und den CA Key benötigt:
Zum Schluss packt man User Zertifikat und User Key in die PKCS12 Datei zum Import für den Client:
Beim iPhone dann natürlich: openssl pkcs12 -export -legacy -out user1.p12 -inkey user1.key -in user1.crt
Detailierte Anleitung auch HIER.
Bei Windows Clients muss man zusätzlich beachten das die das Attribut "clientAuth" im Extended Key Usage erzwingen. Deshalb macht es Sinn die User Zertifikate gleich immer damit zu erstellen.
Hier die Prozedur für die OpenSSL Fraktion:
Dazu erstellt man zuerst eine kleine Textdatei (nano etc.) z.B. user-eku.txt mit dem Inhalt:
extendedKeyUsage=clientAuth
Dann den Key erstellen:
openssl ecparam -name prime256v1 -genkey -noout -out user1.key
Danach den CSR der die Daten wie Common Name, SAN usw. abfragt. Common Name (CN) und Email Adresse sollten hier User spezifisch sein. CN darf keine Leerzeichen enthalten!
openssl req -new -sha256 -key user1.key -out user1.csr
Danach wird das User Zertifikat erzeugt wozu man das CA Zertifikat und den CA Key benötigt:
openssl x509 -req -in user1.csr -CA <CA-Zertifikat> -CAkey <CA-Key> -CAcreateserial -out user1.crt -days 1825 -sha256 -extfile user-eku.txt
Zum Schluss packt man User Zertifikat und User Key in die PKCS12 Datei zum Import für den Client:
openssl pkcs12 -export -out user1.p12 -inkey user1.key -in user1.crt
Detailierte Anleitung auch HIER.
Achtung, neuere Windows Server erzwingen mittlerweile ein Strong-Certificate Mapping.mit der SID des Users oder Computers als Erweiterung im Zertifikat wenn man das Strong-Mapping per Registry nicht modifiziert hat.
Für Domain fremde Computer habe ich das hier bereits dokumentiert.
NPS 802.1x Radius Authentication with EAP-TLS and strong certificate mapping for non domain joined devices
Für User gilt das gleiche, auch das ein User-Account angelegt werden muss und der UPN im SAN angelegt sein muss.
Für angelegte AD-User mit denen man ein User-Zertifikat über die Default Vorlage anfordert wird bei einer Windows CA die SID automatisch ins Zertifikat eingetragen.
Ansonsten muss diese manuell ins Zertifikat eingetragen werden. Eine Funktion die den Wert für die Extension generiert habe ich im verlinkten Artikel berit gestellt.
Grüße Uwe
Für Domain fremde Computer habe ich das hier bereits dokumentiert.
NPS 802.1x Radius Authentication with EAP-TLS and strong certificate mapping for non domain joined devices
Für User gilt das gleiche, auch das ein User-Account angelegt werden muss und der UPN im SAN angelegt sein muss.
Für angelegte AD-User mit denen man ein User-Zertifikat über die Default Vorlage anfordert wird bei einer Windows CA die SID automatisch ins Zertifikat eingetragen.
Ansonsten muss diese manuell ins Zertifikat eingetragen werden. Eine Funktion die den Wert für die Extension generiert habe ich im verlinkten Artikel berit gestellt.
Grüße Uwe