Estoy creando una aplicación ("A") que puede interactuar con una API de datos de terceros ("B"). A es encargado por la Organización “X”, que tiene datos sobre B. Los usuarios de A necesitan acceso a los datos de Org X en B. Sin embargo, B no tiene registro de los usuarios de A.
A y B viven en diferentes servidores y se comunican a través de Internet pública. Los usuarios de A inician sesión con nombre de usuario y contraseña y se les emite un token de acceso que caduca para autenticar las solicitudes HTTP a la API de datos de A. Mi pregunta es cómo proteger mejor las comunicaciones de la API de datos de A a la API de datos de B.
En otras palabras, ¿cuál es la mejor manera de garantizar que las solicitudes a B realmente provengan de A? ¿Debería A almacenar algún tipo de token de portador no caducado que B pueda autenticar?
Tenga en cuenta que los desarrolladores de B acordaron realizar algunas modificaciones a B en un esfuerzo por proporcionar A los datos que necesita, pero las modificaciones deben apuntar a ser menores.