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 usuarios a través de DTZ Identity sin manejar contraseñas directamente. En lugar de gestionar las credenciales del usuario, rediriges a los usuarios a DTZ para iniciar 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 “contexto” como 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 context ID. Esto simplifica la configuración manteniendo la seguridad.

2. Endpoints Esenciales

Solo necesitas estos dos endpoints para comenzar:

Propósito Endpoint
Inicio de Sesión de Usuario https://identity.dtz.rocks/api/2021-02-21/oauth/authorize
Obtener Token https://identity.dtz.rocks/api/2021-02-21/oauth/token
Información de Usuario https://identity.dtz.rocks/api/2021-02-21/oauth/userinfo

3. Auto-Descubrimiento

La mayoría de las librerías OAuth pueden autoconfigurarse 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: Usuario Inicia Sesión

DTZ maneja el proceso de inicio de sesión:

  • Si ya está iniciado sesión → redirección inmediata de vuelta a tu app
  • Si no ha iniciado sesión → muestra el formulario de login y luego redirige de vuelta

Paso 3: Intercambiar Código por 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 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..."]
}