OAuth 2

Usa DTZ Identity como tu proveedor OAuth 2.0 y OpenID Connect (OIDC) para permitir que los usuarios inicien sesión en tus aplicaciones con sus cuentas DTZ.

¿Qué es OIDC?

OpenID Connect (OIDC) permite que tu aplicación autentique a los usuarios a través de DTZ Identity sin manejar contraseñas directamente. En lugar de gestionar las credenciales de los usuarios, los rediriges a DTZ para que inicien sesión y luego recibes un token seguro para acceder a su información.

Perfecto para: Aplicaciones web, aplicaciones móviles o cualquier servicio que necesite autenticación segura de usuarios.

Inicio rápido

1. Obtén tu Context ID

En DTZ, cada aplicación usa un “context” como su identificador. Necesitarás un context-{uuid} al que tus usuarios tengan acceso.

Ejemplo: context-abc123

Nota: En el sistema de DTZ, tanto tu client_id como tu client_secret son el mismo ID de contexto. Esto simplifica la configuración manteniendo la seguridad.

2. Endpoints esenciales

Solo necesitas estos dos endpoints para empezar:

Purpose Endpoint
User Login https://identity.dtz.rocks/api/2021-02-21/oauth/authorize
Get Token https://identity.dtz.rocks/api/2021-02-21/oauth/token
User Info https://identity.dtz.rocks/api/2021-02-21/oauth/userinfo

3. Auto-Discovery

La mayoría de las bibliotecas OAuth pueden configurarse automáticamente usando el endpoint de descubrimiento de DTZ:

https://identity.dtz.rocks/.well-known/openid-configuration

Cómo funciona

Paso 1: Redirigir al usuario a DTZ

Cuando un usuario quiere iniciar sesión, redirígelo a:

https://identity.dtz.rocks/api/2021-02-21/oauth/authorize?
  response_type=code&
  client_id=YOUR_CONTEXT_ID&
  redirect_uri=https://yourapp.com/callback&
  scope=openid&
  state=random-string-for-security

Paso 2: El usuario inicia sesión

DTZ gestiona el proceso de inicio de sesión:

  • Si ya ha iniciado sesión → redirección inmediata de vuelta a tu app
  • Si no ha iniciado sesión → muestra un formulario de inicio de sesión, luego redirige de vuelta

Paso 3: Intercambiar el código por un token

DTZ redirige de vuelta a tu app con un código. Cámbialo por un token:

curl -X POST https://identity.dtz.rocks/api/2021-02-21/oauth/token \
  -H "Content-Type: application/x-www-form-urlencoded" \
  -d "grant_type=authorization_code" \
  -d "client_id=YOUR_CONTEXT_ID" \
  -d "client_secret=YOUR_CONTEXT_ID" \
  -d "redirect_uri=https://yourapp.com/callback" \
  -d "code=THE_CODE_FROM_REDIRECT"

Paso 4: Obtener información del usuario

Usa el token de acceso para obtener los detalles del usuario:

curl -X GET https://identity.dtz.rocks/api/2021-02-21/oauth/userinfo \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN"

Respuesta:

{
  "sub": "identity-12345678",
  "iss": "dtz.rocks",
  "contexts": ["abc124"],
  "roles": ["https://dtz.rocks/context/admin/abc123..."]
}