본문 바로가기
개발

인증(Authentication), 인가(Authorization)

by 전재경 2022. 12. 2.

인증(Authentication)이란?

  • 사용자의 신원을 증명하는 것
  • 예를들어 로그인하는 과정을 인증이라고 한다.
  • 로그인을 하게 되면 JWT나 Session을 이용해 인증을 유지한다.

 

인증 방식

  • 전통적인 방법으로는 사용자명(Principle), 비밀번호(Credential)로 인증하는 Credential 기반 인증 방식
  • OTP와 같이 추가적인 인증방식을 도입해 한번에 2가지 방법으로 인증하는 이중 인증 방식
  • 토큰 인증
  • 소셜 미디어를 사용하는 OAuth2 인증방식(토큰인증 방식 사용)

 

인가(Authorization)란?

 

  • 특정 리소스에 접근할 수 있는 권한을 부여하는 것
  • 예를들어 사용자 등급(일반, VIP, 관리자)에 따라 리소스에 접근을 제한하는 경우
  • 인가를 하기 위해 인증이 먼저 선행되어야 한다.
  • JWT, Session을 이용해 인증을 확인하고, 서버가 해당 권한을 확인해 리소스 접근을 결정한다.

 

 

  • 인증은 내가 누구인지 확인하는 행위이다.
  • 인가는 내가 권한이 있는지 확인하는 행위이다
  • 인증은 인가 의사결정의 요소가 될 수 있다.
  • 인가 가공물 (토큰) 로 유저나 디바이스의 신원을 파악하는 방법은 유용하지 않다.

'개발' 카테고리의 다른 글

절차 지향 프로그래밍(Procedural Programming)  (0) 2022.12.04
관점 지향 프로그래밍 (AOP, Aspect oriented Programming)  (1) 2022.12.04
DB 트랜잭션(Transaction)  (0) 2022.11.30
HTTP 프로토콜  (0) 2022.11.30
API란 ?  (0) 2022.11.21

댓글