
Sécurité de l’authentification unique
iOS, iPadOS, macOS et visionOS prennent en charge l’authentification sur les réseaux d’entreprise par authentification unique. L’authentification unique fonctionne avec un fournisseur d’identité pour authentifier les utilisateurs auprès des services auxquels ils sont autorisés à accéder. Elle peut être utilisée pour de nombreuses activités réseau, comme l’ouverture de sessions sécurisées dans Safari et l’utilisation d’apps tierces.
iOS, iPadOS, macOS et visionOS comportent une extension d’authentification unique Kerberos. Les développeurs d’apps peuvent également implémenter leurs propres extensions d’authentification unique.
Authentification unique Kerberos
iOS, iPadOS, macOS et visionOS prennent en charge l’authentification sur les réseaux d’entreprise utilisant Kerberos. La prise en charge de l’authentification unique repose sur le projet Heimdal à code source libre et se sert de jetons SPNEGO et du protocole HTTP Negotiate pour fonctionner avec les passerelles d’authentification exploitant Kerberos et avec les systèmes Integrated Windows Authentication prenant en charge les tickets Kerberos. L’authentification par certificat comme PKINIT est également prise en charge.
L’extension d’authentification unique Kerberos prend en charge les types de chiffrement suivants :
AES‑128‑CTS‑HMAC‑SHA1‑96
AES‑256‑CTS‑HMAC‑SHA1‑96
iOS, iPadOS et visionOS offrent une prise en charge flexible de l’authentification unique à toute app utilisant la classe NSURLSession ou URLSession pour gérer les connexions réseau et l’authentification. Apple fournit ces classes à tous les développeurs pour que les connexions réseau s’intègrent naturellement au sein de leurs apps.
Toute app Mac prenant en charge l’authentification Kerberos fonctionne avec l’authentification unique. Cela inclut la plupart des apps intégrées à macOS, comme Calendrier, Mail et Safari, ainsi que les services tels que le partage de fichiers, le partage d’écran et la coquille logicielle sécurisée (SSH). De nombreuses apps tierces prennent aussi en charge le protocole Kerberos.
Pour configurer l’authentification unique, une configuration peut autoriser un service de gestion des appareils à imposer à l’appareil les réglages nécessaires. Le service de gestion des appareils peut ainsi configurer le nom de l’utilisateur principal (c’est-à-dire le compte d’utilisateur Active Directory) et les paramètres de domaine Kerberos ainsi que la liste des apps et des URL de Safari autorisées à utiliser l’authentification unique.
Authentification unique extensible
Les développeurs d’apps peuvent implémenter leurs propres extensions d’authentification unique pour iOS, iPadOS, macOS et visionOS. Les extensions d’authentification unique sont appelées lorsqu’une app native ou une app Web doit utiliser un fournisseur d’identité pour l’authentification de l’utilisateur. Les développeurs peuvent fournir deux types d’extensions :
celles qui redirigent vers HTTPS
celles qui utilisent un mécanisme défi-réponse, comme Kerberos
Cela permet à l’authentification unique extensible de prendre en charge les modes d’authentification Open ID Connect (OIDC), OAuth, SAML 2.0 et Kerberos. Les extensions d’authentification unique peuvent également prendre en charge l’authentification dans FileVault et la fenêtre de connexion sous macOS en adoptant l’authentification unique à la plateforme, qui permet au Mac de récupérer des jetons d’authentification unique au moment de la connexion.
Pour utiliser une extension d’authentification unique, une app peut soit utiliser l’API AuthenticationServices, soit compter sur le mécanisme d’interception URL offert par le système d’exploitation. WebKit et CFNetwork offrent une couche d’interception qui permet la prise en charge fluide de l’authentification unique pour toute app native ou WebKit. Pour qu’une extension d’authentification unique soit appelée, il faut installer une configuration à l’aide d’un service de gestion des appareils. En outre, les extensions de type redirection doivent utiliser les domaines associés pour prouver que le fournisseur d’identité qu’elles prennent en charge est au courant de leur existence.
Authentification unique à la plateforme
Grâce à l’authentification unique à la plateforme, les développeurs peuvent concevoir des extensions d’authentification unique pour macOS qui s’étendent à FileVault et à la fenêtre de connexion. L’authentification unique prend en charge différents mécanismes d’authentification avec un fournisseur d’identité :
Mot de passe
L’authentification par mot de passe prend en charge WS-Trust. L’utilisateur peut ainsi s’authentifier même lorsque le fournisseur d’identité qui gère son compte est fédéré.
Les utilisateurs peuvent aussi synchroniser facultativement les informations d’identification de leur compte local avec un fournisseur d’identité. Le mot de passe du compte local est automatiquement synchronisé avec celui du compte détenu auprès du fournisseur d’identité.
Clé Secure Enclave
Une clé est créée et stockée dans le Secure Enclave pendant le processus d’inscription de l’utilisateur. Elle sert à procéder à l’authentification auprès du fournisseur d’identité sans mot de passe.
Carte à puce
Une carte à puce est utilisée pour s’authentifier auprès du fournisseur d’identité.
Clé d’accès
Une carte stockée dans l’app Portefeuille est utilisée pour s’authentifier auprès du fournisseur d’identité.
Inscription
Pour utiliser l’authentification unique à la plateforme, le Mac et chaque utilisateur s’inscrivent auprès du fournisseur d’identité. En fonction de la prise en charge du fournisseur d’identité et de la configuration appliquée, le Mac peut procéder à l’inscription d’un appareil silencieusement en arrière-plan en utilisant ce qui suit :
un jeton d’inscription fourni par la configuration de gestion des appareils
une attestation, qui garantit la validité des identifiants de l’appareil (UDID et numéro de série)
Après l’inscription réussie de l’appareil, l’utilisateur s’inscrit (à moins qu’il utilise le mode invité authentifié). Si le fournisseur d’identité l’exige, l’inscription de l’utilisateur peut comprendre de lui demander de confirmer son inscription. Pour les comptes d’utilisateur locaux que l’authentification unique à la plateforme crée sur demande, l’inscription des utilisateurs a lieu automatiquement en arrière-plan.
Au cours du processus d’inscription, le Mac crée deux clés : une clé de signature de l’appareil et une clé de chiffrement de l’appareil. Selon l’extension d’authentification unique, les clés peuvent utiliser ce qui les chiffrements suivants :
NIST P-256 ECDH-ES
HKPE avec NIST P-256, NIST P-384 ou X25519
Ces méthodes établissent une connexion de confiance avec le fournisseur d’identité indépendamment de l’utilisateur. L’authentification unique à la plateforme prend en charge les clés d’appareil partagées. Cela rend possibles les fonctionnalités telles que l’authentification unique à la plateforme pendant l’inscription automatisée des appareils, la création sur demande de comptes d’utilisateur en fonction des informations provenant du fournisseur d’identité, les autorisations réseau et le mode invité authentifié. Les mêmes clés de signature et de chiffrement sont utilisées pour tous les utilisateurs d’un appareil donné.
Remarque : L’extension d’authentification unique à la plateforme doit prendre en charge la méthode demandée pour effectuer l’inscription. Le changement de méthode est également pris en charge. Par exemple, lorsqu’un compte d’utilisateur est créé lors de la connexion avec un nom d’utilisateur et un mot de passe, ce compte peut ensuite utiliser une clé protégée par le Secure Enclave ou une carte à puce une fois la connexion établie.
Récupération et actualisation des jetons
Pour authentifier l’utilisateur dans ses apps et sites Web au besoin, l’extension d’authentification unique se sert de jetons d’authentification unique. Pour aider à garantir que l’extension d’authentification unique est toujours prête à procéder à l’authentification, l’authentification unique à la plateforme tente d’actualiser les jetons ou d’en récupérer des nouveaux auprès du fournisseur d’identité s’ils sont :
manquants;
expirés;
vieux de plus de quatre heures.
Pour demander des jetons au fournisseur d’identité ou en renouveler, une demande de connexion ou d’actualisation de jeton Web JSON (JWT) est envoyée et, selon la méthode définie par l’extension d’authentification unique, signée avec la clé de signature de l’appareil en utilisant l’algorithme ES256, ES384 ou Ed25519. Les jetons créés font partie de l’entité de réponse chiffrée par AES-GCM 256 au moyen de la clé publique associée à la clé de chiffrement de l’appareil.
Si le chiffrement du mot de passe est demandé par l’extension d’authentification unique, celui-ci n’est pas envoyé avec la demande de connexion, mais plutôt remplacé par une assertion intégrée chiffrée par AES-GCM 256 qui le contient. La clé de chiffrement associée est ensuite créée (de la façon définie par l’extension d’authentification unique au moyen d’un des mécanismes aussi disponibles pour la clé de chiffrement de l’appareil).
Lorsque le mécanisme d’authentification exige une signature numérique, l’authentification unique à la plateforme utilise une assertion JWT intégrée pour l’authentification par clé Secure Enclave et par carte à puce. L’assertion est :
signée par l’authentificateur lors de l’utilisation d’une carte à puce;
chiffrée au moyen de l’algorithme ES256, ES384 ou Ed25519 lors de l’utilisation d’une clé Secure Enclave de la façon définie par l’extension d’authentification unique.
Peu importe la méthode d’authentification, les jetons d’authentification unique sont :
stockés dans le trousseau avec l’attribut de protection des données du trousseau
kSecAttrAccessibleAfterFirstUnlockThisDeviceOnly;partagés uniquement avec l’extension d’authentification unique;
non transférables.