Sicherheit der Gesamtauthentifizierung (Single Sign-On)
Gesamtauthentifizierung (Single Sign-On)
iOS und iPadOS unterstützen die Gesamtauthentifizierung (Single Sign-On, SSO) für Unternehmensnetzwerke. SSO kann bei auf Kerberos basierenden Netzwerken verwendet werden, um Benutzer 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. Die zertifikatbasierte Authentifizierung wie mit PKINIT wird ebenfalls unterstützt.
macOS verwendet Kerberos für die Authentifizierung gegenüber Unternehmensnetzwerken. Apps können Kerberos verwenden, um Benutzer gegenüber Diensten zu authentifizieren, für die sie zugriffsberechtigt sind. Kerberos kann darüber hinaus für eine breite Palette von Netzwerkaktivitäten verwendet werden – von sicheren Sitzungen in Safari über die Authentifizierung bei Netzwerkdateisystemen bis hin zu Apps anderer Anbieter. Die zertifikatbasierte Authentifizierung wird unterstützt, wobei aber eine App-Anpassung an eine Entwickler-API erforderlich ist.
iOS, iPadOS und macOS nutzen SPNEGO-Token und das Protokoll HTTP Negotiate für die Gesamtauthentifizierung gegenüber Gateways für die Kerberos-basierte Authentifizierung und gegenüber in Windows integrierten Authentifizierungssystemen, die Kerberos-Tickets unterstützen. Die SSO-Unterstützung basiert auf dem Open-Source-Projekt Heimdal.
In iOS, iPadOS und macOS werden die folgenden Verschlüsselungstypen unterstützt:
AES-128-CTS-HMAC-SHA1-96
AES-256-CTS-HMAC-SHA1-96
DES3-CBC-SHA1
ARCFOUR-HMAC-MD5
Safari unterstützt die Gesamtauthentifizierung. Apps anderer Anbieter, die die standardmäßigen Netzwerk-APIs von iOS und iPadOS verwenden, können ebenfalls für SSO konfiguriert werden. Für die Konfiguration von SSO unterstützen iOS und iPadOS eine neue Payload für Konfigurationsprofile, die es Lösungen für die Mobilgeräteverwaltung (Mobile Device Management, MDM) ermöglicht, die notwendigen Einstellungen per Push auf ein Gerät zu transferieren. Dies schließt die Festlegung des Prinzipalnamens eines Benutzers (d. h. dessen 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-Entwickler können mithilfe von SSO-Erweiterungen eigene Implementierungen der Gesamtauthentifizierung realisieren. SSO-Erweiterungen werden aufgerufen, wenn eine native App oder eine Web-App für die Authentifizierung eines Benutzers die Verwendung eines Identitätsanbieters (IdP, Identity Provider) benötigt. Entwickler können hierfür zwei Arten von Erweiterungen bereitstellen: Erweiterungen, die die Umleitung an HTTPS bewirken, und Erweiterungen, die einen Challenge/Response-Mechanismus wie Kerberos verwenden. Auf diese Weise können OpenID-, OAuth-, SAML2- und Kerberos-Authentifizierungsschemata als Erweiterungen für die Gesamtauthentifizierung verwendet werden. Außerdem können SSO-Erweiterungen die macOS-Authentifizierung durch Verwendung eines nativen SSO-Protokolls unterstützen, mit dem SSO-Token während der Anmeldung bei macOS abgerufen werden.
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 mithilfe eines MDM-Profils eine von einem Administrator definierte Konfiguration installiert werden. Außerdem müssen Erweiterungen vom Typ „Redirect“ die Payload „Associated Domains“ (Zugehörige Domains) verwenden, um den Nachweis zu erbringen, dass dem von ihnen unterstützten Identitätsserver ihre Existenz bekannt ist.
Die einzige Erweiterung, die vom Betriebssystem selbst bereitgestellt wird, ist die SSO-Erweiterung für Kerberos.