# 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](/enterprise/security/single-sign-on/) 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

> [!TIP]
> Estos 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:

1. Inicia sesión en [app.docker.com](https://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.
1. Selecciona **Admin Console** (Consola de administración), luego **Domain management** (Gestión de dominios).
1. Selecciona **Add a domain** (Añadir un dominio).
1. Introduce tu dominio en el cuadro de texto y selecciona **Add domain** (Añadir dominio).
1. 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.

> [!TIP]
>
> Al añadir el nombre del registro, usa `@` o déjalo vacío para dominios raíz como `example.com`. Evita valores comunes como `docker`, `docker-verification`, `www` o 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.

**AWS Route 53**



1. Para añadir tu registro TXT a AWS, consulta [Creación de registros mediante la consola de Amazon Route 53](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/resource-record-sets-creating.html).
1. Espera hasta 72 horas para la verificación del registro TXT.
1. Después de que el registro esté activo, ve a **Domain management** (Gestión de dominios) en la [Admin Console](https://app.docker.com/admin) y selecciona **Verify** (Verificar).

**Google Cloud DNS**



1. Para añadir tu registro TXT a Google Cloud DNS, consulta [Verificación de tu dominio con un registro TXT](https://cloud.google.com/identity/docs/verify-domain-txt).
1. Espera hasta 72 horas para la verificación del registro TXT.
1. Después de que el registro esté activo, ve a **Domain management** (Gestión de dominios) en la [Admin Console](https://app.docker.com/admin) y selecciona **Verify** (Verificar).

**GoDaddy**



1. Para añadir tu registro TXT a GoDaddy, consulta [Añadir un registro TXT](https://www.godaddy.com/help/add-a-txt-record-19232).
1. Espera hasta 72 horas para la verificación del registro TXT.
1. Después de que el registro esté activo, ve a **Domain management** (Gestión de dominios) en la [Admin Console](https://app.docker.com/admin) y selecciona **Verify** (Verificar).

**Otros proveedores**



1. Inicia sesión en tu proveedor de dominio.
1. Añade un registro TXT a tus ajustes de DNS y guarda el registro.
1. Espera hasta 72 horas para la verificación del registro TXT.
1. Después de que el registro esté activo, ve a **Domain management** (Gestión de dominios) en la [Admin Console](https://app.docker.com/admin) y selecciona **Verify** (Verificar).



### Paso 3: Crear una conexión SSO en Docker

1. En [app.docker.com](https://app.docker.com), elige tu organización. Selecciona **Admin Console** (Consola de administración).
1. Elige **SSO and SCIM** en la sección **Security** (Seguridad).
1. Selecciona **Create Connection** (Crear conexión). Nombra la conexión y luego elige **SAML 2.0**.
1. 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.

**Okta SAML**



Necesitas [permisos de superadministrador](https://help.okta.com/en-us/content/topics/security/administrators-super-admin.htm) para la organización de Okta.

1. 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.
1. En la sección **Applications** (Aplicaciones) del menú de la izquierda, elige **Applications**. Selecciona **Create App Integration** (Crear integración de aplicación).
1. Elige SAML 2.0 para que coincida con tu selección en la Admin Console de Docker.
1. En **General Settings** (Ajustes generales), nombra tu aplicación "Docker". La subida de un logotipo es opcional.
1. 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](/enterprise/security/provisioning/#sso-attributes), si tu organización lo requiere.
1. 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.

**Entra ID SAML 2.0**



Para habilitar SSO con Microsoft Entra, necesitas permisos de [Administrador de aplicaciones en la nube](https://learn.microsoft.com/en-us/entra/identity/role-based-access-control/permissions-reference#cloud-application-administrator).

1. 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).
1. 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).
1. Después de crear tu aplicación, ve a **Single Sign-On** (Inicio de sesión único) y selecciona **SAML**.
1. 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.
1. Opcional. Añade [atributos SAML](/enterprise/security/provisioning/#sso-attributes), si tu organización lo requiere.
1. En la sección **SAML Signing Certificate** (Certificado de firma SAML), descarga tu **Certificate (Base64)**.

**Azure OpenID Connect (OIDC)**



#### Registrar la aplicación

1. Inicia sesión en el [centro de administración de Microsoft Entra](https://entra.microsoft.com/).
1. Ve a **App Registration** (Registro de aplicaciones) y selecciona **New Registration** (Nuevo registro).
1. Nombra la aplicación "Docker".
1. Configura los tipos de cuenta y pega la **Redirect URI** (URI de redirección) de Docker.
1. Selecciona **Register** (Registrar).
1. Copia el **Client ID**.

#### Crear secretos de cliente

1. En tu aplicación, ve a **Certificates & secrets** (Certificados y secretos).
1. Selecciona **New client secret** (Nuevo secreto de cliente), describe y configura la duración, luego selecciona **Add** (Añadir).
1. Copia el **value** (valor) del nuevo secreto.

#### Establecer permisos de API

1. En tu aplicación, ve a **API permissions** (Permisos de API).
1. Selecciona **Grant admin consent** (Otorgar consentimiento de administrador) y confirma.
1. Selecciona **Add a permissions** (Añadir permisos) > **Delegated permissions** (Permisos delegados).
1. Busca y selecciona `User.Read`.
1. 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.

> [!IMPORTANT]
> Cuando se te solicite copiar un certificado, copia todo el certificado comenzando por
> `----BEGIN CERTIFICATE----` e incluyendo las líneas `----END CERTIFICATE----`.

**Okta SAML**



1. Ve a **Applications** (Aplicaciones) y elige **Applications**. Elige tu aplicación en la tabla **ACTIVE** (Activas).
1. 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.
1. 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**.
1. Opcional. Selecciona un equipo predeterminado, si tu organización lo requiere.
1. Revisa y selecciona **Create connection** (Crear conexión).

**Entra ID SAML 2.0**



1. Abre el **Certificate (Base64)** que descargaste en un editor de texto.
1. Copia los siguientes valores:
   - De Azure AD: **Login URL**
   - El contenido de **Certificate (Base64)**
1. Regresa a la Admin Console de Docker y pega los valores de **Login URL** y **Certificate (Base64)**.
1. Elige tu dominio del menú desplegable.
1. Opcional. Selecciona un equipo predeterminado, si tu organización lo requiere.
1. Revisa y selecciona **Create connection** (Crear conexión).

**Azure OpenID Connect (OIDC)**



1. Regresa a la Admin Console de Docker.
1. Pega los siguientes valores:
   - **Client ID**
   - **Client Secret**
   - **Azure AD Domain**
1. Opcional. Selecciona un equipo predeterminado, si tu organización lo requiere.
1. 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](https://learn.microsoft.com/en-us/entra/identity/enterprise-apps/add-application-portal-setup-sso#test-single-sign-on) y la documentación de [Okta](https://help.okta.com/wf/en-us/content/topics/workflows/connector-reference/okta/actions/assignusertoapplicationforsso.htm) para aprender a asignarte a ti mismo u a otros usuarios a una aplicación.

Después de asignarte a una aplicación:

1. 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.
1. 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:

1. Usa el mismo dominio para cada conexión.
1. Repite los pasos 3-6 de los procedimientos de [Configurar una conexión SSO](/enterprise/security/single-sign-on/connect/#configurar-una-conexion-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)](/security/access-tokens/). El PAT reemplaza su nombre de usuario y contraseña para la autenticación.

1. Inicia sesión en [Docker Home](https://app.docker.com/) y selecciona tu organización o empresa.
1. Selecciona **Admin Console** (Consola de administración), luego **SSO and SCIM**.
1. En la tabla de conexiones SSO, selecciona el menú **Action** (Acciones) y luego **Enable enforcement** (Habilitar obligatoriedad).
1. Sigue las instrucciones en pantalla.
1. 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.

## Siguientes pasos

- [Aprovisionar usuarios](/enterprise/security/provisioning/).
- [Exigir inicio de sesión](/enterprise/security/enforce-sign-in/).
- [Crear tokens de acceso personal](/security/access-tokens/).
- [Resolución de problemas de SSO](/enterprise/security/single-sign-on/troubleshoot-sso/).

