로그인한 사용자의 요청을 처리할 때는 Access Token이나 Session을 통해 사용자를 식별합니다. 사용자가 누구인지 확인하고, 그 사용자가 어떤 API와 리소스에 접근할 수 있는지 판단합니다.
일반적인 웹 서비스의 인증 흐름은 이 구조를 중심으로 설계됩니다. 하지만 백엔드 시스템에서 처리하는 요청이 항상 사용자로부터 직접 오는 것은 아닙니다.
외부 파트너 서버가 우리 API를 호출할 수도 있고, 내부 서비스가 다른 내부 서비스를 호출할 수도 있습니다. 결제 완료 Callback, 본인인증 결과 통보, 금융 API 응답처럼 사용자가 아니라 시스템이 요청의 주체가 되는 경우도 많습니다.
이때 사용자 인증 방식을 그대로 시스템 간 호출에 적용하려고 하면 경계가 애매해집니다. 사용자 JWT는 “이 요청의 최종 사용자가 누구인지”를 알려줄 수는 있지만, “이 요청을 전달한 시스템이 신뢰할 수 있는지”까지 보장하지는 않습니다.
반대로 API Key나 HMAC 서명으로 호출 시스템을 검...
원문 링크 : 사용자 인증과 시스템 인증의 분리