Vinculación de identidad: OAuth 2.0

Para habilitar sesiones de usuario sin problemas (p.ej., acceder a beneficios de lealtad y ofertas personalizadas) y pagos autenticados, debes implementar la capacidad de vinculación de identidades con OAuth 2.0. Si no implementas la vinculación de identidades, debes admitir la confirmación de compra como invitado.

Consulta a tu equipo legal si tienes preguntas sobre las reglamentaciones de privacidad y las prácticas de consentimiento.

Requisitos básicos

  • Protocolo: Implementa el flujo de código de autorización de OAuth 2.0 (RFC 6749 2.3.1).
  • Autenticación del cliente: Debe admitir la autenticación básica HTTP (client_secret_basic) en el extremo del token.
  • Alcances: Debes admitir los alcances estándar de la UCP definidos en esta sección.
  • Detección: Debes alojar un archivo de metadatos en /.well-known/oauth-authorization-server (RFC 8414) para permitir que la plataforma detecte tus extremos.

Permisos

Debes implementar el siguiente alcance, que otorga permiso para todas las operaciones del ciclo de vida de la confirmación de compra (Get, Create, Update, Delete, Cancel, Complete).

  • Nombre del alcance: ucp:scopes:checkout_session

Experiencia del usuario: Debes presentar los permisos solicitados como una sola pantalla de consentimiento agrupada (p.ej., "Permitir que Google administre tus sesiones de confirmación de compra") en lugar de activadores técnicos detallados.

Vinculación optimizada de Google

La Vinculación simplificada de Google es una adición opcional a OAuth 2.0 estándar. Aprovecha las aserciones de JWT para combinar las verificaciones de intención y el intercambio de tokens en el extremo de tokens de OAuth 2.0 (intenciones check, create y get).

Se recomienda la vinculación optimizada de Google para brindar una experiencia del usuario fluida. Permite que los usuarios vinculen cuentas o creen cuentas nuevas con su perfil de Google sin salir de la interfaz de Google. Como el flujo se produce por completo dentro de la IU de Google, no se requiere un frontend de vinculación. Esto reduce la sobrecarga de desarrollo, elimina los redireccionamientos del navegador y puede aumentar los porcentajes de conversiones.

Metadatos del servidor de autorización (ejemplo en JSON)

Debes publicar este objeto JSON en https://[your-domain]/.well-known/oauth-authorization-server.

Ejemplo:

{
  "issuer": "https://merchant.example.com",
  "authorization_endpoint": "https://merchant.example.com/oauth2/authorize",
  "token_endpoint": "https://merchant.example.com/oauth2/token",
  "revocation_endpoint": "https://merchant.example.com/oauth2/revoke",
  "scopes_supported": [
    "ucp:scopes:checkout_session"
  ],
  "response_types_supported": [
    "code"
  ],
  "grant_types_supported": [
    "authorization_code",
    "refresh_token"
  ],
  "token_endpoint_auth_methods_supported": [
    "client_secret_basic"
  ],
  "service_documentation": "https://merchant.example.com/docs/oauth2"
}