
Seguridad del inicio de sesión único
Los sistemas operativos iOS, iPadOS, macOS y visionOS admiten la autenticación en redes empresariales mediante el inicio de sesión único (SSO). El SSO funciona con un proveedor de identidades (IdP) para autenticar a usuarios en los servicios a los que tienen permitido el acceso. El SSO se puede utilizar para diferentes operaciones de red, desde la navegación segura en Safari hasta el uso de apps de terceros.
Los sistemas operativos iOS, iPadOS, macOS y visionOS incluyen una extensión de SSO de Kerberos. Los desarrolladores de apps también pueden brindar sus propias implementaciones de inicio de sesión único usando las extensiones de SSO.
Inicio de sesión único de Kerberos
Los sistemas operativos iOS, iPadOS, macOS y visionOS admiten la autenticación en redes empresariales mediante Kerberos. La compatibilidad con SSO se basa en el proyecto de código abierto Heimdal y usa identificadores SPNEGO y el protocolo HTTP Negotiate para trabajar con puertas de enlace de autenticación basadas en Kerberos y sistemas de autenticación integrada de Windows que admitan vales de Kerberos. También admite la autenticación basada en certificados, como PKINIT.
La extensión de SSO de Kerberos admite los siguientes tipos de cifrado:
AES-128-CTS-HMAC-SHA1-96
AES-256-CTS-HMAC-SHA1-96
Los sistemas operativos iOS, iPadOS y visionOS son compatibles con SSO para cualquier app que use la clase NSURLSession o URLSession para administrar las conexiones de red y la autenticación. Apple proporciona estas clases a todos los desarrolladores para que puedan integrar a la perfección las conexiones de red en sus apps.
Cualquier app para Mac que admita la autenticación Kerberos funciona con el inicio de sesión único. Esto incluye muchas de las apps integradas en macOS, como Calendario, Mail y Safari, así como servicios, como el uso compartido de archivos, el uso compartido de pantalla y Secure Shell (SSH). Además, muchas apps de terceros también son compatibles con Kerberos.
Para configurar el inicio de sesión único, una configuración permite que un servicio de administración de dispositivos envíe la configuración necesaria al dispositivo. Aquí se incluye el nombre del principal usuario (la cuenta de usuario de Active Directory) y la configuración del reino Kerberos, así como la configuración de las apps y direcciones URL web de Safari a las que se debe permitir el uso del SSO.
Inicio de sesión único extensible
Los desarrolladores de apps pueden brindar sus propias implementaciones de inicio de sesión único usando las extensiones de SSO para iOS, iPadOS, macOS y visionOS. Las extensiones de SSO se invocan cuando una app nativa o web necesita usar un IdP para autenticar al usuario. Los desarrolladores pueden proporcionar dos tipos de extensiones:
Extensiones de redireccionamiento, que redirigen a HTTPS
Extensiones de desafío/respuesta, como Kerberos
Esto permite que los esquemas de autenticación Open ID Connect (OIDC), OAuth, SAML 2.0 y Kerberos sean compatibles con el inicio de sesión único extensible. Las extensiones de SSO también pueden admitir la autenticación en FileVault y la ventana de inicio de sesión en macOS mediante la adopción de SSO en plataforma, que permite a la Mac recuperar identificadores de SSO durante el inicio de sesión.
Para usar una extensión de inicio de sesión único, una app puede usar la API AuthenticationServices o puede basarse en el mecanismo de interceptación de URL que ofrece el sistema operativo. WebKit y CFNetwork brindan una capa de interceptación que permite una compatibilidad fluida con el inicio de sesión único para cualquier app nativa o de WebKit. Para invocar una extensión de inicio de sesión único, es necesario tener instalada una configuración mediante un servicio de administración de dispositivos. Además de esto, las extensiones de tipo de redirección deben usar la carga útil Dominios asociados para probar que el IdP que admiten está al tanto de su existencia.
Inicio de sesión único en plataforma
Con el inicio de sesión únicn en plataforma (Platform SSO), los desarrolladores pueden crear extensiones SSO para macOS que se extienden a FileVault y a la ventana de inicio de sesión de macOS. latform SSO es compatible con diferentes mecanismos de autenticación con un IdP:
Contraseña
La autenticación por contraseña es compatible con WS-Trust. Esto permite a los usuarios autenticarse incluso cuando el IdP que administra su cuenta está federado.
Opcionalmente, los usuarios también pueden sincronizar las credenciales de su cuenta local con un IdP. La contraseña de la cuenta local se mantiene automáticamente sincronizada con la contraseña de tu cuenta IdP.
Clave del Secure Enclave
Durante el proceso de registro de los usuarios, se crea y almacena una clave en el Secure Enclave, que se usa para autenticarse con el IdP sin necesidad de la contraseña.
Tarjeta inteligente
Se usa una tarjeta inteligente para realizar la autenticación con el IdP.
Clave de acceso
Se usa un pase almacenado en Apple Wallet para autenticarse con el IdP.
Registro
Para usar Platform SSO, la Mac y cada usuario se registran en el IdP. Dependiendo de la compatibilidad del IdP y de la configuración aplicada, la Mac puede realizar el registro del dispositivo de forma silenciosa en segundo plano usando:
Un identificador de registro proporcionado en la configuración de la administración de dispositivos.
Una certificación, que proporciona una garantía sólida sobre los identificadores del dispositivo (UDID y número de serie).
Tras el registro correcto del dispositivo, el usuario se registra (a menos que la cuenta de usuario use el modo de invitado autenticado). Si el IdP lo requiere, el registro de usuario puede consistir en pedirte al usuario que confirme su registro. Para las cuentas de usuario locales que Platform SSO crea bajo demanda, el registro de usuario se realiza automáticamente en segundo plano.
Durante el proceso de registro, la Mac crea dos claves: una clave de firma del dispositivo y una clave de cifrado del dispositivo. Dependiendo de la extensión de SSO, las claves pueden usar lo siguiente:
NIST P-256 ECDH-ES
HKPE con NIST P-256, NIST P-384, o X25519
De esta manera se mantiene una conexión de confianza con el IdP independiente del usuario, mientras que Platform SSO admite claves de dispositivo compartidas. Esto habilita funciones como Platform SSO durante la inscripción automatizada de dispositivos, la creación bajo demanda de cuentas de usuario basadas en información del IdP, la autorización de red y el modo de invitado autenticado, y usa la misma clave de firma y cifrado para todos los usuarios de un dispositivo específico.
Nota: la extensión SSO debe ser compatible con el método solicitado para realizar el registro. También se admite el cambio de métodos; por ejemplo, al crear una nueva cuenta de usuario con un nombre de usuario y una contraseña durante el inicio de sesión, esa cuenta puede cambiar a una clave respaldada por Secure Enclave o una tarjeta inteligente enseguida después de que el inicio de sesión se haya realizado correctamente.
Recuperación y actualización de identificadores
Para autenticar al usuario en sus apps y sitios web según sea necesario, la extensión de SSO usa identificadores de SSO. Para ayudar a garantizar que la extensión de SSO esté siempre lista para realizar una autenticación, Platform SSO intenta actualizar u obtener nuevos identificadores del IdP si los identificadores:
No se encuentran
Han vencido
Se crearon hacen más de cuatro horas
Para solicitar o renovar identificadores del IdP, se envía una solicitud de inicio de sesión o actualización JSON Web Token (JWT) y, dependiendo del método definido por la extensión de SSO, se firma con la clave de firma del dispositivo usando ES256, ES384 o Ed25519. Los identificadores creados forman parte de la carga útil del mensaje de respuesta, que está encriptada con AES-GCM 256 usando la clave pública de la clave de cifrado del dispositivo.
Si la extensión de SSO solicita el cifrado de la contraseña, esta no se envía en la solicitud de inicio de sesión y se reemplaza por una aserción incrustada cifrada con AES-GCM 256 que contiene la contraseña. A continuación, se crea la clave de cifrado asociada (tal y como la define la extensión de SSO usando uno de los mecanismos también disponibles para la clave de cifrado del dispositivo).
Cuando el mecanismo de autenticación requiere una firma digital, Platform SSO usa una aserción JWT incrustada para la autenticación de la clave del Secure Enclave y de la tarjeta inteligente. La aserción:
Se firma con el autenticador cuando se usa una tarjeta inteligente, o
Se encripta con ES256, ES384 o Ed25519 cuando se usa una clave Secure Enclave según lo definido por la extensión de SSO.
Independientemente del método de autenticación, los identificadores SSO:
Se almacenan en el llavero usando el atributo de protección de datos del llavero
kSecAttrAccessibleAfterFirstUnlockThisDeviceOnlySe comparten sólo con la extensión de SSO
No son migratorios