Digito

Digito ID Authentication API

Permite iniciar sesión con Digito y recibir información de identidad y certificados con el consentimiento del usuario, mediante OAuth 2.0.

Digito ID Authentication API permite incorporar «Iniciar sesión con Digito» en tu aplicación. El servicio utiliza OAuth 2.0 para organizar la autorización y el intercambio de tokens; además de la información básica del usuario, tu integración puede recibir estados de identidad y certificados según los permisos habilitados y el consentimiento de la persona.

El servidor de autenticación es auth.digito.do.

Acceso alpha y credenciales por solicitud

Para utilizar la API, Digito debe registrar tu integración y proporcionarte sus credenciales OAuth. Solicita acceso a soporte@digito.do. La documentación completa, los endpoints y los permisos disponibles se facilitan durante ese proceso.

Para qué sirve

Puedes ofrecer un acceso con Digito en un portal de clientes o en una aplicación propia, y utilizar la información autorizada para decidir el siguiente paso de tu proceso.

Por ejemplo, tu aplicación puede saber si una persona tiene identidad verificada o un certificado vigente, y orientarla antes de comenzar un trámite de firma. Estos estados no autorizan por sí solos una firma ni sustituyen las comprobaciones que requiera tu proceso.

Qué información puedes recibir

InformaciónAlcance
Perfil básicoNombre, correo electrónico y metadatos autorizados para la integración.
Identidad verificadaEstado de verificación de la identidad del usuario.
CertificadoEstado del certificado de firma electrónica cualificada, incluido si dispone de uno vigente.
Documento de identidadSegún la integración aprobada, estado de verificación, tipo de documento y la información específicamente autorizada.

La información se comparte con el consentimiento explícito del usuario. Los datos adicionales del documento de identidad requieren además una aprobación especial de Digito; no están habilitados por defecto. Solicita únicamente la información que tu aplicación necesita y explica para qué la utilizará.

Los nombres de campos, permisos y estructuras de respuesta se describen en la documentación técnica entregada a tu integración.

Qué necesitas configurar

ElementoFunción
client_idIdentifica tu integración.
Credencial del clienteUn client_secret u otro método de autenticación, según el tipo de cliente y la configuración aprobada.
redirect_uriURL registrada a la que vuelve el navegador.
Permisos o scopeInformación y acceso que solicita la aplicación.
Endpoints OAuthDirecciones de autorización e intercambio de tokens facilitadas por Digito.

Utiliza una biblioteca compatible con OAuth 2.0 y configura los endpoints, el flujo y la autenticación del cliente según la documentación recibida. Que una biblioteca admita OAuth no garantiza por sí solo que todas sus opciones correspondan a tu integración.

Un flujo OAuth habitual

El flujo authorization code permite que el usuario autorice el acceso en Digito y que tu aplicación intercambie el código recibido por tokens. El siguiente esquema explica ese flujo estándar; la configuración concreta se acuerda al habilitar la integración.

  1. Tu aplicación inicia la autorización con su identificador, URL de retorno y permisos solicitados.
  2. El navegador lleva al usuario a Digito, donde se autentica y autoriza compartir la información.
  3. Digito devuelve al navegador a la URL registrada con el resultado de la autorización.
  4. Tu aplicación comprueba la respuesta y, si recibe un código, lo intercambia por tokens mediante el endpoint configurado.
  5. Utiliza los tokens para obtener la información permitida y establecer su propia sesión de usuario.

Consulta el estándar OAuth 2.0 para entender este intercambio.

Ejemplo conceptual con PKCE

PKCE vincula la solicitud de autorización con el intercambio del código. La aplicación genera un valor secreto temporal, code_verifier, y envía un valor derivado, code_challenge. Conserva el primero para el intercambio de tokens. El mecanismo se describe en RFC 7636.

Este ejemplo muestra cómo preparar una solicitud. Las variables de configuración contienen los valores facilitados por Digito; no define rutas ni permisos del servicio.

Preparar una solicitud de autorización
import { createHash, randomBytes } from 'node:crypto';

const state = randomBytes(32).toString('base64url');
const codeVerifier = randomBytes(32).toString('base64url');
const codeChallenge = createHash('sha256')
  .update(codeVerifier)
  .digest('base64url');

const authorizationUrl = new URL(config.authorizationEndpoint);
authorizationUrl.search = new URLSearchParams({
  response_type: 'code',
  client_id: config.clientId,
  redirect_uri: config.redirectUri,
  scope: config.scopes.join(' '),
  state,
  code_challenge: codeChallenge,
  code_challenge_method: 'S256',
}).toString();

// Conserva state y codeVerifier en la sesión temporal del servidor.
// Después, redirige el navegador a authorizationUrl.toString().

Al recibir el retorno, comprueba state, gestiona cancelaciones y errores e intercambia el código con el code_verifier correspondiente. La sesión temporal debe estar vinculada al navegador que inició el proceso y ser de un solo uso.

Tokens y seguridad

OAuth 2.0 es el protocolo de autorización; JWT es un formato que puede utilizarse para representar tokens. No son conceptos intercambiables.

Si recibes un JWT, no basta con leer su contenido: valida su firma, emisor, destinatario, vigencia y algoritmo permitido conforme a la configuración de Digito. Consulta las prácticas de seguridad para JWT.

Mantén las credenciales confidenciales en el servidor. Utiliza HTTPS, URLs de retorno registradas y una biblioteca que aplique las prácticas actuales de seguridad de OAuth, incluida la protección con PKCE del flujo de código. No solicites la contraseña de Digito en tu propia interfaz.

Iniciar sesión no equivale a autorizar una firma

El token OAuth permite el acceso previsto por la integración. Antes de cada acción de firma, el firmante debe autenticarse de nuevo con Digito ID. Ni la sesión de tu aplicación, ni una identidad ya verificada, ni el estado de un certificado sustituyen ese paso.

Solicita acceso al programa alpha

Escribe a soporte@digito.do con una descripción de tu aplicación, sus URLs de retorno y la información que necesitas recibir. Si tu proceso requiere información del documento de identidad, explica esa necesidad para que Digito evalúe su habilitación y el consentimiento correspondiente.