토큰을 기반으로 한 인증을 말합니다.
토큰은 인증을 하기 위해 사용자에 대한 정보를 담고 있습니다.
사용자는 해당 토큰을 소유하고 이를 통해 인증이 가능합니다.
JWT을 이용한 인증 방식도 Token-Based Authentication의 한 종류입니다.
Contactless
시스템에 직접적으로 연결하지는 않고 일정 범위 내에 있으면 인증이 되는 것입니다.
좀 더 간단한 예시로 보안 카드를 통해 특정 구역에 출입하는 것입니다.
Disconnected
시스템에 인증하는데 어떤 물리적인 물건을 연결하거나 주변에 둘 필요가 없습니다.
핸드폰으로 원격으로 출입문을 통제한느 것이 예시입니다.
요청
사용자는 서버에게 특정 리소스에 대한 접근을 요청합니다. 이 과정에서 로그인이나 다른 절차를 통과해야 합니다.
검증
서버는 사용자가 요청하면서 보낸 로그인 정보를 이용해 사용자가 해당 리소스에 접근할 권한이 있는지 확인합니다.
토큰
검증 이후 서버는 토큰을 사용자에게 발행합니다.
저장
사용자에게 토큰이 저장됩니다.
위 과정에서 토큰을 발급 받은 이후에는 로그인을 다시 할 필요가 없이 토큰만으로도 리소스에 대한 접근이 가능합니다.
아래 그림은 Token-Based Authentication 과정을 나타낸 것입니다.
토큰을 통해 사용자 경험을 개선 가능합니다. 사용자가 매 요청마다 인증 절차를 밟는 것은 매우 귀찮은 일입니다. 토큰은 이를 도와줍니다.
토큰을 통해 세밀한 접근 제어가 가능합니다. 이는 토큰에 사용자의 권한을 명시함으로써 따로 유저의 권한에 대해 검증할 필요없이 접근 제어를 가능하게 만듭니다.
하드웨어를 사용함으로써 보안을 강화할 수 있습니다.
Private
다른 사람과 공유가 되지 말아야 합니다.
Secure
암호화를 통해 내용이 안전하게 보호되어야 합니다.
Tested
테스트를 통해 안전하다는 것을 보장해야 합니다.
Appropriate
적절한 토큰 방식을 선택해야 합니다.