DocID®Documentación de DocID®
Volver a DocID®
  • Resumen

    • Documentación de DocID®
  • Introducción

    • Introducción
    • Cómo funciona DocID®
    • Conceptos clave
  • Primeros pasos

    • Primeros pasos
    • Módulo de Drupal
    • Plugin de WordPress
    • Sitio web a medida
    • Checklist de puesta en producción
  • Funcionalidades

    • Funcionalidades
    • Standard Login
    • Acceso y personalización
    • Analytics
    • Campaigns
  • Licencias

    • Licencias
  • OAuth 2.0

    • OAuth 2.0
    • Configurar un cliente
    • Flujo Authorization Code
    • Scopes y UserInfo
    • Seguridad y entornos
  • API

    • API
  • Ayuda

    • Solución de problemas

OAuth 2.0

Flujo Authorization Code

Implemente de forma segura la autorización, PKCE, el intercambio de código, la renovación y el cierre de sesión.

1. Generar los valores de la transacción

En cada intento de inicio de sesión, genere:

  • un valor state de alta entropía para vincular la solicitud con el callback
  • un valor nonce para vincular las afirmaciones de identidad con la solicitud
  • un code_verifier
  • PKCE de alta entropía y un code_challenge, calculado como el resumen SHA-256 del verifier codificado en base64url

Guarde los valores en una transacción de corta duración protegida en el servidor.

2. Redirigir a la autorización

1GET /oauth2/authorize?2  response_type=code&3  client_id=YOUR_CLIENT_ID&4  redirect_uri=https%3A%2F%2Fexample.com%2Fauth%2Fdocid%2Fcallback&5  scope=openid%20professional&6  state=RANDOM_STATE&7  nonce=RANDOM_NONCE&8  code_challenge=PKCE_CHALLENGE&9  code_challenge_method=S256

3. Validar el callback

Un callback correcto contiene code y state. Compare state con el valor guardado mediante una comparación de tiempo constante siempre que sea posible. Rechace las transacciones ausentes, reutilizadas, caducadas o que no coincidan.

Un callback fallido contiene error y puede contener error_description. Registre únicamente un identificador de correlación interno seguro y muestre al usuario un mensaje comprensible que le permita volver a intentarlo.

4. Intercambiar el código

Envíe una solicitud de formulario de servidor a servidor:

1POST /oauth2/token2Content-Type: application/x-www-form-urlencoded3Authorization: Basic BASE64_CLIENT_ID_AND_SECRET45grant_type=authorization_code&6code=RETURNED_CODE&7redirect_uri=https%3A%2F%2Fexample.com%2Fauth%2Fdocid%2Fcallback&8code_verifier=ORIGINAL_PKCE_VERIFIER

Las credenciales del cliente también pueden aceptarse en el cuerpo del formulario cuando así se haya configurado, pero HTTP Basic mantiene las credenciales separadas de los parámetros del grant.

5. Obtener la información del usuario

1GET /oauth2/userinfo2Authorization: Bearer ACCESS_TOKEN

Utilice la respuesta para crear una sesión local en el sitio web y elimine después la transacción OAuth de un solo uso.

Renovar y revocar

Intercambie un refresh token válido con grant_type=refresh_token en /oauth2/token. Guarde los refresh tokens únicamente en el servidor. Cuando la integración ya no necesite un token, revóquelo en /oauth2/revoke e invalide la sesión local.

AnteriorConfigurar un clienteSiguienteScopes y UserInfo

En esta página

  1. 1. Generar los valores de la transacción
  2. 2. Redirigir a la autorización
  3. 3. Validar el callback
  4. 4. Intercambiar el código
  5. 5. Obtener la información del usuario
  6. Renovar y revocar