본문 바로가기

기초 공부/웹

[WEB] 인증토큰이란?

1.인증토큰이란?

 

 로그인 인증 성공 후, 리소스 자원에 대한 인가를 결정하는 권한이 부여되어 발급되는 토큰이다.

인증세션(세션 ID)와 동일한 역할을 수행한다고 생각하면 된다.

 

 ※ 인증 (Authentication) : 로그인으로, A 사용자가 해당 서비스를 이용하는 A라는 사용자임을 확인하는 부분

 ※ 인가 (Authorization) : 인증 후, 인증된 사용자가 리소스 자원에 대한 접근 권한을 확인하는 부분

 - 인증과 인가의 차이점에서, 서버에서 권한 별로 나누어진 데이터를 조회할 시에는 '인가'가 좀 더 가까운 의미이다. 

 

 

2.인증토큰 구조

 

 인증토큰은, 일반적으로 토큰 유형(type) 및 인증정보(credentials)로 구성되며, HTTP 메시지 헤더의 Authoriaztion의 값으로 전달된다.

인증토큰 구조

 ※ 참조 : https://www.rfc-editor.org/rfc/rfc7235#page-8 (Authorization 헤더 설명)

 

 토큰 유형(type)은, 일반적으로 아래와 같다.

Type 설명 비고
Basic Base64 인코딩된 인증정보(아이디, 비밀번호)를 사용 RFC 7617
Bearer OAuth 관련된 토큰이 사용됨 (JWT 사용률이 높음) RFC 6750, RFC 7519
Digest 사용자 정보와 nonce를 포함한 해시값을 인증정보로 사용 RFC 7616
HOBA 전자 서명 기반 인증 (상세 정보 수집 필요) RFC 7486
Mutual 암호를 이용한 Client - Server 상호 인증 (상세 정보 수집 필요)  
AWS4-HMAC-SHA256 AWS에서 사용되는 인증토큰 AWS 홈페이지 참조

※ 참조 : https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Authorization (토큰 유형 / auth-scheme 정보) 

 

3.인증토큰 발급 절차

 

 인증토큰은, 기본적으로 로그인 인증 후 발급되며 인증세션(세션 ID)의 발급 절차와 차이점이 크지 않다. 다만, 인증토큰의 유형에 따라 프로세스 절차 간에 차이점은 존재할 수 있다.

기본적인 인증토큰 발급 절차