Autenticación OAuth para el registro de contenedores

created: domingo, jul. 6, 2025

Nuestro registro de contenedores ahora habla el mismo dialecto OAuth que el resto de la plataforma DownToZero (DTZ). Si ya emites tokens bearer para cualquier API de DTZ, puedes iniciar sesión en cr.dtz.rocks con cero configuración adicional. Este cambio completa nuestro objetivo a largo plazo de una identidad, un token, en todas partes.

Por qué añadimos OAuth

El registro originalmente solo aceptaba API keys. Aunque estas claves siguen siendo compatibles, carecen de los scopes de granularidad fina y de la corta duración que aporta OAuth. Un JWT emitido por el servicio Identity de DTZ contiene información de rol como containerregistry/admin/{context_id} y expira automáticamente, reduciendo el radio de impacto si alguna vez se filtra.

Inicio de sesión con Docker

# 1 - Request a bearer token
curl -X POST https://identity.dtz.rocks/api/2021-02-21/token/auth      -H "Content-Type: application/json"      -d '{"username":"you","password":"secret"}'

# 2 - Use that token to authenticate
docker login cr.dtz.rocks -u bearer -p YOUR_ACCESS_TOKEN

El nombre de usuario debe ser literalmente bearer; Docker reenvía el token como contraseña. Detrás de escena, el registro valida el JWT usando la misma lógica que cualquier otro servicio de DTZ.

Compatibilidad hacia atrás

Si tu pipeline de CI/CD ya usa una API key, no se rompe nada—docker login -u apikey -p YOUR_API_KEY cr.dtz.rocks sigue funcionando. OAuth es una actualización opcional que desbloquea credenciales de menor duración, control de acceso basado en roles y una rotación de secretos más fluida.

Una experiencia de desarrollador consistente

Como el registro ahora respeta los mismos encabezados HTTP exactos y las mismas convenciones de autenticación básica que nuestros endpoints REST, puedes:

¿Listo para probarlo? Obtén un token, ejecuta tu próximo docker push y disfruta de un flujo de inicio de sesión más simple y seguro.