Acceso aplicación a aplicación
Permitir que una herramienta obtenga la credencial de la bóveda en lugar de guardar una propia: registrar la aplicación, firmar la solicitud y el rastro que deja cada recuperación.
Qué es esto y cuándo usarlo
A2A permite que las herramientas, y no las personas, obtengan credenciales de la bóveda. Un escáner, una canalización, un agente de monitoreo o una plataforma de ITSM pide la credencial en el momento en que la necesita, la usa y no guarda nada.
El problema que resuelve es la credencial que nadie rota: la contraseña en el config.yaml, la clave en la variable de Jenkins, la cuenta de servicio pegada en un escáner hace años. Esas credenciales son invisibles para la bóveda, así que la rotación nunca las alcanza y ningún informe puede decir quién las usó.
Conceptos
Aplicación de integración
La identidad con la que se autentica una herramienta. No es un usuario, no accede a la consola y no hace nada más que obtener las credenciales de su alcance
ID y secreto
El par de credenciales con el que la aplicación firma sus solicitudes
Alcance de cuentas
El conjunto de cuentas que esa aplicación puede leer. Lo que quede fuera no existe para ella
Grupo de IP
Las direcciones de origen desde las que la aplicación puede llamar
Una aplicación pertenece a una organización y alcanza únicamente las cuentas de esa organización.
Antes de empezar
Un rol administrativo capaz de gestionar aplicaciones de integración.
Las cuentas que la herramienta necesitará, ya gestionadas en la bóveda.
Las direcciones de origen desde las que la herramienta llamará.
Registrar una aplicación
Abra Configuración del sistema › A2A y cree una aplicación.
Póngale un nombre que diga de qué herramienta se trata. Ese nombre aparece en el rastro de auditoría, así que "escáner Tenable, producción" es mejor que "app1".
Defina las cuentas que puede leer. Conceda el conjunto más estrecho que permita a la herramienta funcionar.
Defina el grupo de IP con las direcciones desde las que llama la herramienta.
Guarde y revele el secreto. Revelarlo exige un segundo factor, y el valor se muestra para que quien llama lo copie.
El grupo de IP permite cualquier dirección de forma predeterminada. Una aplicación nueva es alcanzable desde cualquier sitio hasta que usted la restrinja. Definirlo es lo que convierte un secreto filtrado en una llamada rechazada desde la red equivocada.
Pedir el secreto de nuevo sustituye el anterior. Cualquier cliente que conserve el valor antiguo deja de autenticarse, así que rote a propósito, y no para averiguar cuál era.
Obtener una credencial
account_id
El UUID de la cuenta. La forma más simple, usada sola
account
El nombre de la cuenta, cuando no se tiene el UUID
asset
El nombre del activo, para desambiguar un nombre de cuenta
asset_id
El UUID del activo, con la misma finalidad
La solicitud se firma con HTTP Signature, HMAC-SHA256, usando el ID de la aplicación como keyId y su secreto como clave. También lleva X-Source: jms-pam, que es lo que indica a la solución que debe autenticar una aplicación y no la clave de acceso de un usuario.
Una llamada correcta responde con el secreto y nada más:
Para la construcción exacta de la cadena de firma, y los tres detalles que más suelen romperla, vea API.
Clientes listos para usar
No hace falta implementar la firma. La solución sirve un cliente funcional y su documentación para seis lenguajes, en la pestaña SDKs de la aplicación: Python, Java, Go, Node.js, PowerShell y curl. Java, Go y PowerShell no requieren biblioteca externa.
Códigos de respuesta
200
La credencial está en el cuerpo
400
Los parámetros no identifican una única cuenta
401
Firma rechazada, aplicación inactiva, o llamada desde una dirección fuera del grupo de IP
404
Ninguna cuenta coincide, o la cuenta está fuera del alcance de esa aplicación
Integrar una herramienta que no habla esta API
Plataformas como Aranda, SOTI, Tenable o Qualys no saben firmar una solicitud de esta manera de forma nativa. Dos patrones funcionan, y ambos mantienen la credencial fuera de la configuración de la herramienta:
Un paso de obtención antes del trabajo. Un script corto, construido a partir de uno de los clientes suministrados, obtiene la credencial y se la entrega a la herramienta en tiempo de ejecución. Es la opción habitual para canalizaciones y tareas de escaneo.
El mecanismo de extensión de la propia plataforma, donde exista, llamando al endpoint anterior.
No existe un conector de encaje directo para esas plataformas. La solución expone una API documentada y suministra clientes de referencia; conectarla a una plataforma concreta es trabajo de integración del lado de ella. Planifique ese esfuerzo en lugar de suponer que es una casilla de verificación.
Cada recuperación queda registrada
Cada obtención correcta escribe un registro de auditoría con el nombre de la aplicación, la cuenta y el activo al que pertenece, la dirección de origen y la hora. Cae en el mismo rastro que una persona pulsando ver sobre una credencial, que es lo que convierte "quién ha leído esta credencial" en una pregunta con respuesta completa.
Vea Rastro de auditoría y La bóveda de credenciales.
Cómo verificar que funcionó
Obtenga una credencial con el cliente suministrado y confirme que el cuerpo trae el secreto.
Llame de nuevo desde una dirección fuera del grupo de IP y confirme el rechazo. Una restricción de IP que nadie ha probado es una configuración, no un control.
Pida una cuenta fuera del alcance de la aplicación y confirme el 404. Es la comprobación que prueba que el alcance es real.
Abra el rastro de auditoría y confirme que tanto la llamada correcta como la rechazada están allí. Una recuperación que no deja rastro no es una recuperación, es una fuga.
Errores comunes
401 con una firma aparentemente correcta
La fecha se formateó en el idioma de la máquina, o el reloj está desfasado
Formatee la fecha en inglés, en GMT, y sincronice el reloj del host
401 desde un servidor, pero no desde su estación
El grupo de IP no incluye ese servidor
Añada la dirección
La llamada se autentica como usuario y no como la aplicación
Falta el X-Source: jms-pam
Añada la cabecera
404 para una cuenta que usted ve en la consola
Está fuera del alcance de cuentas de la aplicación, o en otra organización
Amplíe el alcance, o envíe el X-JMS-ORG correcto
Todos los clientes dejaron de funcionar a la vez
El secreto se reveló de nuevo, lo que lo sustituye
Distribuya el secreto nuevo
200, pero el secreto vuelve vacío
La lectura de secretos de cuenta está deshabilitada en la configuración de seguridad
Revise Configuración del sistema › Seguridad
Páginas relacionadas
API, cómo firmar una solicitud y las convenciones comunes a todos los endpoints
La bóveda de credenciales, de donde leen estas llamadas
Cuentas gestionadas, las cuentas con las que se arma el alcance de una aplicación
Rotar credenciales, por qué obtener es mejor que guardar
Rastro de auditoría, donde queda registrada cada recuperación
Atualizado
Isto foi útil?