Cuando un humano inicia sesión en un sitio web con 2FA, el humano lee el código TOTP generado de la aplicación de autenticación de Google en su teléfono y lo ingresa en el sitio web al que está tratando de iniciar sesión.

Estoy diseñando una integración backend entre dos sistemas a través de API web. No me siento cómodo simplemente dejando que los dos sistemas mantengan la misma contraseña de cifrado. Quiero involucrar algo como 2FA en este proceso. Obviamente, no hay ningún ser humano involucrado en este proceso para leer el código de la aplicación de autenticación. Entonces, ¿cuál es el enfoque estándar / recomendado de la industria?

answer

Si una contraseña es algo que el servidor sabe , a continuación, un certificado podría ser algo que el servidor tiene .

Considere proteger su API basada en web usando TLS con autenticación mutua donde también el cliente (ya que el otro servidor actúa como cliente aquí) se autentica a través de TLS. De esta manera, la contraseña solo se intercambia si ambos extremos se han autenticado primero con sus certificados.