
Sicherheit der Gesamtauthentifizierung (Single Sign-On)
iOS, iPadOS, macOS und visionOS unterstützen die Gesamtauthentifizierung (Single Sign-On, SSO) für Unternehmensnetzwerke. SSO kann mit einem IdP (Identity Provider) verwendet werden, um Benutzer:innen für Dienste, auf die sie zugreifen dürfen, zu authentifizieren. SSO kann für eine Reihe verschiedener Netzwerkaktivitäten verwendet werden, z. B. in sicheren Safari-Sitzungen oder in Apps anderer Anbieter.
iOS, iPadOS, macOS und visionOS enthalten eine integrierte Kerberos-SSO-Erweiterung. App-Entwicklungsteams können auch mithilfe von SSO-Erweiterungen eigene Implementierungen der Gesamtauthentifizierung realisieren.
Kerberos-Gesamtauthentifizierung (Single Sign-On)
iOS, iPadOS, macOS und visionOS unterstützen die Authentifizierung über Kerberos für Unternehmensnetzwerke. SSO-Unterstützung basiert auf dem Open-Source-Projekt „Heimdal“ und verwendet SPNEGO-Tokens und das Protokoll HTTP Negotiate für die Gesamtauthentifizierung gegenüber Gateways für die Kerberos-basierte Authentifizierung und gegenüber in Windows integrierte Authentifizierungssysteme, die Kerberos-Tickets unterstützen. Die zertifikatbasierte Authentifizierung wie mit PKINIT wird ebenfalls unterstützt.
Die Kerberos-SSO-Erweiterung unterstützt die folgenden Verschlüsselungstypen:
AES-128-CTS-HMAC-SHA1-96
AES-256-CTS-HMAC-SHA1-96
iOS, iPadOS und visionOS bieten flexible Unterstützung für SSO an alle Apps, die die Klasse NSURLSession oder URLSession verwenden, um Netzwerkverbindungen und Authentifizierungen zu verwalten. Apple stellt allen Entwicklungsteams diese Klassen zur Verfügung, um Netzwerkverbindungen nahtlos in ihre Apps zu integrieren.
Alle Mac-Apps, die die Kerberos-Authentifizierung unterstützen, funktionieren mit SSO. Hierzu gehören viele der in macOS integrierten Apps, wie z. B. „Kalender“, „Mail“ und „Safari“, sowie Dienste wie die Dateifreigabe, das Teilen von Bildschirmen und Secure Shell (SSH). Zahlreiche Drittanbieter-Apps unterstützen auch Kerberos.
Um SSO zu konfigurieren, erlaubt eine Konfiguration einem Gerätemanagementdienst, die nötigen Einstellungen auf dem Gerät festzulegen. Dies schließt die Festlegung des Prinzipalnamens einer Person (dem Active-Directory-Benutzeraccount) und der Realm-Einstellungen für Kerberos sowie das Konfigurieren der Apps und URLs in Safari ein, für die SSO zulässig sein soll.
Erweiterungen für Gesamtauthentifizierung
App-Entwicklungsteams können ihre eigene SSO-Implementierung mit SSO-Erweiterungen für iOS, iPadOS, macOS und visionOS bereitstellen. SSO-Erweiterungen werden aufgerufen, wenn eine native App oder eine Web-App für die Authentifizierung einer Person die Verwendung eines IdPs benötigt. Entwicklungsteams können hierfür zwei Arten von Erweiterungen bereitstellen:
Umleitungserweiterungen, die an HTTPS weiterleiten
Challenge/Response-Erweiterungen, wie Kerberos
Auf diese Weise können Open ID Connect (OIDC)-, OAuth-, SAML 2.0- und Kerberos-Authentifizierungsschemata als Erweiterungen für die Gesamtauthentifizierung verwendet werden. SSO-Erweiterungen können auch die Authentifizierung durch die Verwendung einer SSO-Plattform bei FileVault oder dem Anmeldefenster von macOS unterstützen, wodurch der Mac SSO-Tokens während der Anmeldung abrufen kann.
Um eine SSO-Erweiterung zu verwenden, kann eine App entweder die API „AuthenticationServices“ nutzen oder auf den URL-Abfangmechanismus des Betriebssystems zurückgreifen. WebKit und CFNetwork umfassen eine Ebene für diese Abfangvorgänge, die die nahtlose Unterstützung der Gesamtauthentifizierung für jede native App und jede WebKit-App ermöglicht. Damit eine SSO-Erweiterung aufgerufen wird, muss eine Konfiguration über einen Gerätemanagementdienst installiert werden. Außerdem müssen Erweiterungen vom Typ „Redirect“ „Associated Domains“ (Zugehörige Domains) verwenden, um den Nachweis zu erbringen, dass dem von ihnen unterstützten IdP ihre Existenz bekannt ist.
Plattform für die Gesamtauthentifizierung
Mit der Plattform für die Gesamtauthentifizierung (Plattform-SSO) können Entwicklungsteams SSO-Erweiterungen für macOS erstellen, die bis hin zum FileVault und dem Anmeldefenster in macOS reichen. Plattform-SSO unterstützt verschiedene Authentifizierungsmechanismen mit einem IdP:
Passwort
Die Passwortauthentifizierung unterstützt WS-Trust. So können sich Benutzer:innen authentifizieren, auch wenn der IdP, der den Account verwaltet, föderiert ist.
Optional können Benutzer:innen ihre lokalen Anmeldedaten auch mit einem IdP synchronisieren. Das lokale Accountpasswort wird automatisch mit dem Passwort für den IdP-Account synchronisiert.
Secure Enclave-Schlüssel
Ein Schlüssel wird erstellt und während des Benutzerregistrierungsprozesses im Secure Enclave gespeichert. Anschließend wird er zur Authentifizierung mit dem IdP ohne ein Passwort verwendet.
Smart Card
Eine Smart Card wird zum Authentifizieren mit dem IdP verwendet.
Zugangsschlüssel
Ein im Apple Wallet gespeicherter Pass wird zum Authentifizieren mit dem IdP verwendet.
Registrierung
Um Plattform-SSO zu verwenden, müssen der Mac und alle Benutzer:innen beim IdP registriert sein. Abhängig von der IdP-Unterstützung und der angewendeten Konfiguration kann der Mac die Geräteregistrierung unbemerkt im Hintergrund ausführen, mithilfe von:
Einem Registrierungstoken, das in der Gerätemanagementkonfiguration bereitgestellt wird.
Einer Beglaubigung, die eine starke Absicherung für die Geräte-IDs (UDID und Seriennummer) bietet.
Nach einer erfolgreichen Geräteregistrierung können Benutzer:innen registriert werden (es sei denn, der Benutzeraccount verwendet den authentifizierten Gastmodus). Falls notwendig, kann der IdP für die Benutzerregistrierung anfordern, dass Benutzer:innen ihre Registrierung bestätigen. Für lokale Benutzeraccounts, die Plattform-SSO je nach Aufforderung erstellt, findet automatisch eine Benutzerregistrierung im Hintergrund statt.
Während des Registrierungsprozesses erstellt der Mac zwei Schlüssel: einen Anmeldeschlüssel für das Gerät und einen Verschlüsselungsschlüssel für das Gerät. Abhängig von der SSO-Erweiterung können die Schlüssel folgendermaßen verwendet werden:
NIST P-256 ECDH-ES
HKPE mit NIST P-256, NIST P-384 oder X25519
Sie halten eine vertraute Verbindung mit dem IdP unabhängig von den Benutzer:innen aufrecht. Plattform-SSO unterstützt geteilte Geräteschlüssel. Hierdurch werden Funktionen wie Plattform-SSO während der automatischen Geräteregistrierung die Erstellung von Benutzeraccounts auf Abruf basierend auf Informationen vom IdP, die Netzwerkautorisierung und der authentifizierte Gästemodus aktiviert. Für alle Benutzer:innen auf einem bestimmten Gerät wird derselbe Signaturschlüssel und Verschlüsselungsschlüssel verwendet.
Hinweis: Die SSO-Erweiterung muss die angeforderte Methode zum Ausführen der Registrierung unterstützen. Das Wechseln von Methoden wird ebenfalls unterstützt. Wenn beispielsweise ein neuer Benutzeraccount mit einem Benutzernamen und einem Passwort während der Anmeldung erstellt wird, kann dieser Account dann zu einem von der Secure Enclave unterstützten Schlüssel oder einer Smart Card wechseln, nachdem die Anmeldung erfolgreich war.
Token-Abruf und -Aktualisierung
Um Benutzer:innen bei ihren benötigten Apps und Websites zu authentifizieren, verwendet die SSO-Erweiterung SSO-Tokens. Um dabei zu helfen, dass SSO-Erweiterungen immer bereit sind, eine Authentifizierung durchzuführen, versucht Plattform-SSO neue Tokens vom IdP zu aktualisieren oder abzurufen, wenn die Tokens:
Fehlen
Abgelaufen sind
Mehr als vier Stunden alt sind
Um Tokens vom IdP anzufordern oder zu aktualisieren, wird eine JSON-Web-Token (JWT)-Anmeldung oder eine Aktualisierungsanfrage gesendet und – abhängig von der in der SSO-Erweiterung definierten Methode – mit dem Gerätesignierschlüssel mit ES256, ES384 oder Ed25519 signiert. Die erstellten Tokens sind Teil der Antwort-Payload, welche über den öffentlichen Schlüssel des Geräteverschlüsselungscode über AES-GCM-256 verschlüsselt ist.
Falls die Passwortverschlüsselung von der SSO-Erweiterung angefordert wird, wird das Passwort nicht an die Anmeldeanfrage gesendet und von einer über AES-GCM-256 verschlüsselten, eingebetteten Erklärung ersetzt, die das Passwort enthält. Daraufhin wird der dazugehörige Verschlüsselungsschlüssel erstellt (wie von der SSO-Erweiterung definiert, mit einem der Mechanismen, die auch für den Geräteverschlüsselungsschlüssel verfügbar sind).
Wenn der Authentifizierungsmechanismus eine digitale Signatur benötigt, verwendet Plattform-SSO eine eingebettete JWT-Erklärung für den Secure Enclave-Schlüssel und eine Smart Card-Authentifizierung. Die Erklärung lautet:
Signiert mit dem Authenticator bei der Verwendung einer Smart Card.
Verschlüsselt über ES256, ES384 oder Ed25519 bei der Verwendung eines Secure Enclave-Schlüssels, wie von der SSO-Erweiterung definiert.
Unabhängig von der Authentifizierungsmethode sind SSO-Tokens:
Im Schlüsselbund mit dem Schutzattribut der Schlüsselbunddaten
kSecAttrAccessibleAfterFirstUnlockThisDeviceOnlygespeichertNur mit der SSO-Erweiterung geteilt
Nicht-migrierend