Skip to main content

Cliente

Esta sección está diseñada para guiar a los desarrolladores de los clientes en el proceso de integración con el flujo de consentimiento. Aquí se detallan los pasos necesarios para la obtención y manejo de tokens de autenticación y refresh.

El flujo utilizado es el de OAuth2 authorization code flow + PKCE, siguiendo los estándares internacionales establecidos.

Referencias:

Importante

Es responsabilidad del Cliente guardar y gestionar el token de consentimiento de manera segura. El manejo adecuado de este token es crucial para garantizar la seguridad e integridad de las operaciones futuras.

Requisitos Previos

Para que los clientes puedan integrarse y consumir los servicios de consentimiento, es necesario coordinar las siguientes acciones:

  • Formulario de Alta: Antes de comenzar, completa el formulario de alta Cliente con la información solicitada para coordinar el acceso al entorno de pruebas.

  • Certificados mTLS: Coordinar con MODO Conexiones para solicitar y configurar los certificados mTLS. Este requisito es fundamental para los siguientes pasos:

    • Paso 3: Intercambiar el Authorization Code por un Token.
    • Paso 4: Revocar el Consentimiento.

Documentación de la API Cliente

Para obtener detalles completos sobre los endpoints disponibles, consulta el swagger de la API Cliente.

Paso 1: Obtener el Listado de PCPs

  • Consumir el Endpoint de PCPs: Utiliza el endpoint /pcp/ para obtener el listado de PCPs disponibles para vinculación.
  • Uso del Selector de PCPs: Implementa nuestro selector si no cuentas con una herramienta propia, para elegir el PCP y recibir el direccionamiento correspondiente.

Selector PCPs

Para facilitar la selección del PCP, ofrecemos un selector integrado que puedes implementar en tu aplicación. Este selector ayuda a los usuarios a elegir su PCP preferido y redirige automáticamente a la página de autenticación correspondiente.

Implementación

Para integrar el selector, utiliza la URL del ambiente correspondiente y añade los siguientes parámetros como query params:

  • client_id: Identificador único del cliente que está utilizando el servicio.
  • code_challenge: Desafío generado como parte del flujo PKCE, utilizado para asegurar la solicitud de autorización.
  • code_challenge_method: Método criptográfico utilizado para crear el code_challenge, generalmente S256.
  • user_identifier: CUIT del usuario que está realizando la vinculación.
  • state: Valor único generado por el cliente para prevenir ataques CSRF. Debe ser diferente para cada sesión de usuario.

Ejemplo de URL

https://<DOMINIO>/?client_id=00999&code_challenge=code_challenge&code_challenge_method=S256&user_identifier=23897019789&state=state-45391fc9-e78a-4050-9aba-c1c68464843b

Consideraciones

Asegúrate de que tu aplicación esté preparada para manejar cambios en el listado de PCPs que podrían ocurrir con el tiempo.

Paso 2: Obtener la URL de Login del PCP

  • Solicitar la URL de Login: Emplea el endpoint /login/{bcra_id} para obtener la URL de login del PCP seleccionado. Incluye los parámetros predefinidos necesarios para tu Cliente y el PCP.
  • Ejecutar la Autenticación: El RFC 8252 sugiere utilizar Custom Tabs en Android o Safari View Controller en iOS para mejorar la seguridad y la experiencia del usuario durante el proceso de autenticación.

Nota: Es necesario usar PKCE para esta solicitud.

Advertencia

Asegúrate de que todos los parámetros necesarios estén correctamente incluidos en la solicitud para evitar errores en el proceso de autenticación.

Referencias:

Paso 3: Intercambiar el Authorization Code por un Token

exchange-flow

  • Intercambio de Authorization Code: Envía el Authorization Code obtenido junto con el código del PCP al endpoint /pcp/{bcra_id}/token.
  • Validación de Titularidad: Incluye el parámetro user_identifier con el CUIL del usuario registrado en tu Cliente.

Contenido del Token: Para conocer los detalles sobre los claims y el contenido del token emitido, consulta la sección de Tokens en la pestaña de Integraciones > PCP > Consideraciones Iniciales.

Nota: Para cumplir con los requisitos de seguridad, asegúrate de que los certificados mTLS estén configurados como se describe en la sección de Requisitos de Integración.

Consideraciones

Utiliza el refresh_token para obtener un nuevo access_token y mantener la sesión activa sin requerir reautenticación. Implementa medidas de seguridad para manejar y almacenar tokens de manera segura.

Paso 4: Revocar el Consentimiento

auth-revoke

  • Acceso al Endpoint de Revocación: Utiliza el endpoint /pcp/{bcra_id}/revoke para permitir a los usuarios revocar su consentimiento.
  • Gestión de Cuentas Vinculadas: Proporciona una interfaz donde los usuarios puedan ver y gestionar todas las cuentas vinculadas.

Nota: Para cumplir con los requisitos de seguridad, asegúrate de que los certificados mTLS estén configurados como se describe en la sección de Requisitos de Integración.

Consideraciones

Asegúrate de que los usuarios puedan gestionar permisos fácilmente y de que el proceso de revocación sea claro y accesible.

Referencias: