Configurar el inicio de sesión único
Para configurar el inicio de sesión único (SSO), debes establecer una conexión entre Docker y tu proveedor de identidad (IdP). Aunque esta guía utiliza Okta y Microsoft Entra ID como ejemplos prácticos, el proceso general es el mismo para otros IdP.
Si no estás familiarizado con el proceso de SSO, primero revisa la Descripción general de SSO para aprender cómo funciona.
Requisitos previos
Docker admite cualquier proveedor de identidad compatible con SAML 2.0 o con OIDC. Antes de comenzar, asegúrate de cumplir con las siguientes condiciones:
- Notifica a tu empresa sobre el próximo proceso de inicio de sesión con SSO.
- Confirma que cada usuario de Docker tiene una cuenta de IdP válida que utiliza la misma dirección de correo electrónico como su Identificador Principal Único (UPN).
- Asegúrate de que las canalizaciones (pipelines) de CI/CD utilicen tokens de acceso personal (PAT) o de organización (OAT) en lugar de contraseñas.
Configurar una conexión SSO
TipEstos procedimientos requieren que copies y pegues valores entre Docker y tu IdP. Completa esta guía en una sola sesión con ventanas de navegador independientes abiertas para Docker y tu IdP.
Paso 1: Añadir un dominio
Para añadir un dominio:
- Inicia sesión en app.docker.com, luego elige tu organización. Si tu organización forma parte de una empresa, selecciona la empresa para gestionar el dominio a nivel de empresa.
- Selecciona Admin Console (Consola de administración), luego Domain management (Gestión de dominios).
- Selecciona Add a domain (Añadir un dominio).
- Introduce tu dominio en el cuadro de texto y selecciona Add domain (Añadir dominio).
- En la ventana emergente, copia el TXT Record Value (Valor del registro TXT) proporcionado para la verificación del dominio.
Paso 2: Verificar tu dominio
Para confirmar la propiedad del dominio, añade un registro TXT al host de tu Sistema de Nombres de Dominio (DNS) utilizando el TXT Record Value de Docker. La propagación del DNS puede tardar hasta 72 horas. Docker comprueba automáticamente el registro durante este tiempo.
TipAl añadir el nombre del registro, usa
@o déjalo vacío para dominios raíz comoexample.com. Evita valores comunes comodocker,docker-verification,wwwo tu propio nombre de dominio. Consulta siempre la documentación de tu proveedor de DNS para verificar sus requisitos específicos del nombre del registro.
- Para añadir tu registro TXT a AWS, consulta Creación de registros mediante la consola de Amazon Route 53.
- Espera hasta 72 horas para la verificación del registro TXT.
- Después de que el registro esté activo, ve a Domain management (Gestión de dominios) en la Admin Console y selecciona Verify (Verificar).
- Para añadir tu registro TXT a Google Cloud DNS, consulta Verificación de tu dominio con un registro TXT.
- Espera hasta 72 horas para la verificación del registro TXT.
- Después de que el registro esté activo, ve a Domain management (Gestión de dominios) en la Admin Console y selecciona Verify (Verificar).
- Para añadir tu registro TXT a GoDaddy, consulta Añadir un registro TXT.
- Espera hasta 72 horas para la verificación del registro TXT.
- Después de que el registro esté activo, ve a Domain management (Gestión de dominios) en la Admin Console y selecciona Verify (Verificar).
- Inicia sesión en tu proveedor de dominio.
- Añade un registro TXT a tus ajustes de DNS y guarda el registro.
- Espera hasta 72 horas para la verificación del registro TXT.
- Después de que el registro esté activo, ve a Domain management (Gestión de dominios) en la Admin Console y selecciona Verify (Verificar).
Paso 3: Crear una conexión SSO en Docker
- En app.docker.com, elige tu organización. Selecciona Admin Console (Consola de administración).
- Elige SSO and SCIM en la sección Security (Seguridad).
- Selecciona Create Connection (Crear conexión). Nombra la conexión y luego elige SAML 2.0.
- Mantén esta ventana abierta. Necesitarás copiar y pegar estos valores en tu ventana de Okta:
- Entity ID
- ACS URL
- Connection ID
Regresarás aquí para terminar de conectar después de crear una conexión SSO en tu IdP.
Paso 4: Crear una conexión SSO en tu IdP
Utiliza las siguientes pestañas según tu proveedor de IdP.
Necesitas permisos de superadministrador para la organización de Okta.
- Inicia sesión en tu cuenta de administración de Okta. En la navegación superior, selecciona el botón Admin para ir a la Okta Admin Console.
- En la sección Applications (Aplicaciones) del menú de la izquierda, elige Applications. Selecciona Create App Integration (Crear integración de aplicación).
- Elige SAML 2.0 para que coincida con tu selección en la Admin Console de Docker.
- En General Settings (Ajustes generales), nombra tu aplicación "Docker". La subida de un logotipo es opcional.
- En Configure SAML (Configurar SAML), introduce los siguientes valores:
- Para el valor de Single Sign On URL, pega la ACS URL de Docker.
- Para el valor de Audience URI (SP Entity ID), pega la Entity ID de Docker.
- Para Name ID format, elige
EmailAddress. - Para Application username, elige
Email. - Para Update application username on, elige
Create and update. - Opcional. Añade atributos SAML, si tu organización lo requiere.
- En Feedback (Comentarios), selecciona la casilla This is an internal app that we have created (Esta es una aplicación interna que hemos creado) antes de finalizar.
Mantén tu ventana de Okta abierta para el siguiente paso.
Para habilitar SSO con Microsoft Entra, necesitas permisos de Administrador de aplicaciones en la nube.
- En el centro de administración de Microsoft Entra, selecciona Entra ID y luego ve a Enterprise apps (Aplicaciones empresariales). Selecciona All applications (Todas las aplicaciones).
- Elige Create your own application (Crear tu propia aplicación) y nombra tu aplicación "Docker". Selecciona Non-gallery (No pertenece a la galería).
- Después de crear tu aplicación, ve a Single Sign-On (Inicio de sesión único) y selecciona SAML.
- Selecciona Edit (Editar) en la sección Basic SAML configuration (Configuración básica de SAML). Pega los valores que copiaste al crear la conexión SSO en Docker:
- Para el valor de Identifier, pega la Entity ID de Docker.
- Para el valor de Reply URL, pega la ACS URL de Docker.
- Opcional. Añade atributos SAML, si tu organización lo requiere.
- En la sección SAML Signing Certificate (Certificado de firma SAML), descarga tu Certificate (Base64).
Registrar la aplicación
- Inicia sesión en el centro de administración de Microsoft Entra.
- Ve a App Registration (Registro de aplicaciones) y selecciona New Registration (Nuevo registro).
- Nombra la aplicación "Docker".
- Configura los tipos de cuenta y pega la Redirect URI (URI de redirección) de Docker.
- Selecciona Register (Registrar).
- Copia el Client ID.
Crear secretos de cliente
- En tu aplicación, ve a Certificates & secrets (Certificados y secretos).
- Selecciona New client secret (Nuevo secreto de cliente), describe y configura la duración, luego selecciona Add (Añadir).
- Copia el value (valor) del nuevo secreto.
Establecer permisos de API
- En tu aplicación, ve a API permissions (Permisos de API).
- Selecciona Grant admin consent (Otorgar consentimiento de administrador) y confirma.
- Selecciona Add a permissions (Añadir permisos) > Delegated permissions (Permisos delegados).
- Busca y selecciona
User.Read. - Confirma que se ha otorgado el consentimiento de administrador.
Paso 5: Conectar Docker a tu IdP
Completa la integración pegando los valores de tu IdP en Docker.
ImportantCuando se te solicite copiar un certificado, copia todo el certificado comenzando por
----BEGIN CERTIFICATE----e incluyendo las líneas----END CERTIFICATE----.
- Ve a Applications (Aplicaciones) y elige Applications. Elige tu aplicación en la tabla ACTIVE (Activas).
- Desde Sign on (Inicio de sesión), ve a View SAML setup instructions (Ver instrucciones de configuración de SAML). Esta página contiene la SAML Sign-in URL y el x509 Certificate. Mantén esta página abierta.
- Regresa a tu ventana abierta de Docker para el paso Create single sign-on connection (Crear conexión de inicio de sesión único). Pega los valores de SAML Sign-in URL y x509 Certificate.
- Opcional. Selecciona un equipo predeterminado, si tu organización lo requiere.
- Revisa y selecciona Create connection (Crear conexión).
- Abre el Certificate (Base64) que descargaste en un editor de texto.
- Copia los siguientes valores:
- De Azure AD: Login URL
- El contenido de Certificate (Base64)
- Regresa a la Admin Console de Docker y pega los valores de Login URL y Certificate (Base64).
- Elige tu dominio del menú desplegable.
- Opcional. Selecciona un equipo predeterminado, si tu organización lo requiere.
- Revisa y selecciona Create connection (Crear conexión).
- Regresa a la Admin Console de Docker.
- Pega los siguientes valores:
- Client ID
- Client Secret
- Azure AD Domain
- Opcional. Selecciona un equipo predeterminado, si tu organización lo requiere.
- Revisa y selecciona Create connection (Crear conexión).
Paso 6: Probar la conexión
Los IdP como Microsoft Entra y Okta pueden requerir que asignes un usuario a una aplicación antes de probar el SSO. Puedes revisar la documentación de Microsoft Entra y la documentación de Okta para aprender a asignarte a ti mismo u a otros usuarios a una aplicación.
Después de asignarte a una aplicación:
- Abre una ventana de incógnito en tu navegador e inicia sesión en la Admin Console utilizando tu dirección de correo electrónico del dominio.
- Cuando seas redirigido a la página de inicio de sesión de tu IdP, autentícate con el correo electrónico del dominio en lugar de utilizar tu Docker ID.
Si tienes múltiples IdP, elige la opción de inicio de sesión Continue with SSO (Continuar con SSO). Si estás utilizando la CLI, debes autenticarte utilizando un token de acceso personal.
Configurar múltiples IdP
Docker admite configuraciones de múltiples proveedores de identidad (IdP) permitiéndote asociar un dominio con más de un IdP. Cada conexión debe utilizar el mismo dominio, lo que permite a los usuarios elegir su IdP cuando seleccionan Continue with SSO (Continuar con SSO) al iniciar sesión.
Para añadir múltiples IdP:
- Usa el mismo dominio para cada conexión.
- Repite los pasos 3-6 de los procedimientos de Configurar una conexión SSO en esta página. Repite estos pasos para cada IdP que tu organización tenga la intención de utilizar.
Debido a que debes utilizar el mismo dominio para cada IdP, no necesitarás repetir los pasos para añadir y verificar tus dominios.
Exigir SSO
Si el SSO no se hace obligatorio, los usuarios aún pueden iniciar sesión utilizando nombres de usuario y contraseñas de Docker. Exigir SSO obliga a los usuarios a usar SSO al iniciar sesión en Docker, lo que centraliza la autenticación y aplica las políticas establecidas por el IdP.
Antes de exigir SSO, los usuarios que acceden a Docker a través de la CLI deben crear un token de acceso personal (PAT). El PAT reemplaza su nombre de usuario y contraseña para la autenticación.
- Inicia sesión en Docker Home y selecciona tu organización o empresa.
- Selecciona Admin Console (Consola de administración), luego SSO and SCIM.
- En la tabla de conexiones SSO, selecciona el menú Action (Acciones) y luego Enable enforcement (Habilitar obligatoriedad).
- Sigue las instrucciones en pantalla.
- Selecciona Turn on enforcement (Activar obligatoriedad).
Cuando exiges SSO, tus usuarios no pueden modificar su dirección de correo electrónico ni su contraseña, convertir una cuenta de usuario en una organización, ni configurar 2FA a través de Docker Hub. Si deseas utilizar 2FA, debes habilitar 2FA a través de tu IdP.