Machine-to-Machine
Diseñado para comunicación servidor a servidor. No requiere autenticación ni consentimiento de usuarios finales.
OAuth 2.0 es el estándar de autorización utilizado por las APIs del Grupo INS. Define cómo una aplicación puede obtener acceso controlado a recursos protegidos sin necesidad de compartir credenciales directamente. ¿Qué es un Grant? Un grant es el método mediante el cual una aplicación obtiene autorización para acceder a recursos. OAuth 2.0 define distintos grants según el escenario de uso. El Grupo INS utiliza client_credentials.
Diseñado para comunicación servidor a servidor. No requiere autenticación ni consentimiento de usuarios finales.
La aplicación se autentica con su propio client_id y client_secret para obtener untoken de acceso. Estas credenciales las otorga el Grupo INS.
Las credenciales nunca se comparten. Solo se intercambia un token temporal con expiración definida.
¿Por qué Client Credentials? Este flujo es ideal para integraciones entre sistemas. La aplicación cliente actúa en nombre propio, no en nombre de un usuario, lo que elimina la necesidad de formularios de login o pantallas de consentimiento.
Proceso completo desde la obtención de credenciales hasta el consumo de APIs protegidas, incluyendo la renovación del token al expirar.
Dispone de client_id y client_secret asignados por el Grupo INS.
POST /connect/v1/token — grant_type=client_credentials.
Se devuelve un JWT firmado con expires_in y scope.
Authorization: Bearer {token} + subscription-key en cada request.
Estructura JSON
Para obtener un token de acceso envía una solicitud POST con las credenciales en el cuerpo de la petición.
Body (form-urlencoded)
POST /connect/v1/token HTTP/1.1
Content-Type: application/x-www-form-urlencoded
grant_type=client_credentials&client_id={client_id}&client_secret={client_secret}
El Grupo INS dispone de dos ambientes: Integración para el desarrollo y validación de las implementaciones, y Producción para la operación del servicio en un entorno productivo.
Ambiente para desarrollo, pruebas e integración. Las credenciales de pruebas no deben usarse en producción.
https://apiintegracion.grupoins.com/connect/v1/token
Ambiente productivo. Usar únicamente con credenciales de producción tras validación completa de la integración.
https://apiproduccion.grupoins.com/connect/v1/token
Ejemplo completo para solicitar un token de acceso desde línea de comandos. Reemplaza your_client_id y your_client_secret con las credenciales asignadas por el Grupo INS.
curl --request POST \ --url 'https://apiintegracion.grupoins.com/connect/v1/token' \ --header 'content-type: application/x-www-form-urlencoded' \ --data grant_type=client_credentials \ --data 'client_id=your_client_id' \ --data 'client_secret=your_client_secret'
Método HTTP requerido para la solicitud de token.
Endpoint del servidor OAuth. Cambia el dominio para producción.
El body debe enviarse como formulario URL-encoded, no como JSON.
Indica el flujo OAuth a utilizar: client_credentials para M2M.
Identificador único de tu aplicación, asignado por el Grupo INS.
Secreto de la aplicación. Nunca incluirlo en código del lado cliente. Asignado por el Grupo INS.
También puede configurar la herramienta Postman para obtener tokens de acceso, siguiendo los siguientes pasos:
Si requiere conocer como obtener un token de acceso desde el código fuente, en este enlace encontrará ejemplos en los lenguajes de programación más comunes.
Al completar correctamente la solicitud el servidor responde con un objeto JSON que contiene el token de acceso y metadatos de sesión.
{
"access_token": "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9...",
"expires_in": 3600,
"token_type": "Bearer",
"scope": "IniciarSesion"
}
Token JWT que debe incluirse en el header Authorization de cada llamada a la API.
Segundos hasta la expiración del token (ej. 3600 = 1 hora). Este valor siempre debe leerse dinámicamente desde este atributo — nunca debe estar fijo en un archivo de configuración.
Siempre es "Bearer" para las APIs del Grupo INS. Este prefijo es obligatorio al usar el token.
Scopes otorgados al token. Define los recursos a los que tiene acceso.
Algoritmo de firma RS256 y tipo de token JWT.
Claims: sub, scope, exp, iat y datos de la aplicación.
Firma RSA. Garantiza la integridad del token.
El token de acceso retornado por el servidor de autorización, debe enviarse en un encabezado HTTP para todos los llamados que se realicen a los APIs del Grupo INS. Este encabezado se denomina Authorization y tiene el siguiente formato:
Authorization: Bearer {token de acceso}
Donde {token de acceso} corresponde al valor del atributo access_token, retornado por el servidor de autorización. Ejemplo:
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRt...
Además del token de acceso, cada solicitud a las APIs del Grupo INS requiere un header adicional con la clave de suscripción. Ambos son obligatorios y deben enviarse simultáneamente. La clave de suscripción es entregada por el Grupo INS junto con el client_id y client_secret.
Token JWT temporal generado mediante el flujo Client Credentials. Tiene expiración (expires_in) y debe renovarse periódicamente.
Propósito: autenticación de la aplicación
RequeridoClave estática asignada por el Grupo INS que identifica la suscripción a las APIs. No expira de forma automática.
Propósito: control de acceso y throttling
RequeridoEjemplo de llamada a una API protegida:
GET https://apiintegracion.grupoins.com/polizas/v1/recibos/consulta?numeroPoliza=ABCXYZ Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9... subscription-key: f4027603-e270-4a2b-b633-5a6a1dad7785
Recomendaciones oficiales para proteger las credenciales y tokens de tu integración.
Un navegador de internet se considera un lugar inseguro por defecto y no debe utilizarse para almacenar client_id, client_secret ni tokens de acceso.
Los archivos JavaScript del frontend, las apps móviles y los repositorios públicos no son lugares seguros para almacenar secretos.
Todas las solicitudes de token deben realizarse desde el servidor. El frontend nunca debe comunicarse directamente con el endpoint OAuth.
Las aplicaciones de una sola página (SPA) que no tienen servidor deben implementar el patrón Backend For Frontend (BFF) para gestionar las credenciales de forma segura.
Solo los componentes del sistema que realmente necesitan las credenciales deben tener acceso a ellas. Aplicar principio de mínimo privilegio.
Usa gestores de secretos (Azure Key Vault, AWS Secrets Manager, HashiCorp Vault) o variables de entorno seguras. Nunca en archivos de configuración versionados.
Glosario de términos utilizados en la autenticación y autorización de las APIs del Grupo INS.
Estándar de autorización que permite a una aplicación obtener acceso limitado a recursos sin compartir credenciales directamente.
Flujo OAuth 2.0 para comunicación M2M (Machine-to-Machine). La aplicación se autentica con su propio client_id y client_secret.
JSON Web Token. Formato de token compacto y autónomo para transmitir información entre partes de forma segura y verificable.
Token temporal emitido por el servidor OAuth que autoriza el acceso a recursos protegidos. Tiene un tiempo de vida definido por expires_in.
Define el nivel de acceso otorgado al token. Limita las operaciones que puede realizar la aplicación.
Clave de suscripción asignada por el Grupo INS que se envía junto al Bearer token en cada solicitud para identificar la suscripción API.
Entorno de integración usando el dominio apiintegracion.grupoins.com. Para desarrollo y validación, nunca para tráfico real.
Entorno productivo usando el dominio apiproduccion.grupoins.com. Solo para integraciones validadas y aprobadas.
Recomendaciones para una integración eficiente, robusta y segura con las APIs del Grupo INS.
No solicites un token nuevo en cada llamada a la API. Almacena el token en memoria del servidor y reutilízalo hasta que expires_in indique que venció.
Solicitar un token por cada llamada impacta el rendimiento y puede generar throttling. Implementa un caché del token con renovación automática.
Un 401 indica token invalido, expirado, la clave de subscription no tiene permisos — solicita uno nuevo. Un 403 indica falta de permisos — revisa los scopes y la subscription-key.
Implementa un mecanismo que renueve el token antes de que expire (ej. con un margen de 60 segundos antes del vencimiento).
Trata la subscription-key con el mismo nivel de seguridad que el client_secret. Ambas son credenciales sensibles y deben estar en el backend.