인증(Authentication) / 인가 (Authorization)

정희준·2023년 5월 1일
0
post-custom-banner

보안 관련 로직에 항상 등장하는 인증과 인가 둘의 차이점과 개념에대해 알아보자

인증(Authentication)

인증이란 사용자의 신원을 확인하는 과정으로 자신을 인증할만한 인증 요소를 증거로 제시하여 인증요청을 한다
이 개념을 온라인에 적용 시키면 신분증이나 여권을 제시하는 대신 아이디/패스워드를 입력하거나 휴대폰에 전달된 SMS에 적혀있는 코드를 입력하는 것이지요. 인증요소는 하나일 수도 있고 두 개(two-factor) 또는 그 이상(multi-factor)일 수도 있습니다.


인가 (Authorization)

인증과 달리 인가는 사용자가 어떤 리소스에 접근할 수 있는지 동작을 수행 할 수 있는지 검증 하는 것
즉 접근 권한을 얻는 것이다.
예를 들어 accessToken과 같은 JWT 토큰을 활용하여 로그인이 된 유저에게 권한을 주는 것을 인가라고 한다


토큰 기반 인증 로직


위 와 같은 로직으로 구현 된다!


로그인 로직 인증 VS 인가

authentication과 authorization
authentication(인증) : 로그인을 하는 것(로그인을해서 토큰을 받아오는 과정)
authorization(인가) : 로그인한 후, 로그인이 필요한 서비스들을 사용할 때 해당 유저임을 확인하는 것(리소스에 접근할 수 있도록 토큰을 확인하는 과정)


요약

인증은 유저나 디바이스의 신원을 증명하는 행위입니다.
인가는 유저나 디바이스에게 접근권한을 부여하거나 거부하는 행위입니다.
인증은 인가 의사결정의 한 요소가 될 수 있습니다.
인가 가공물(토큰)로 유저나 디바이스의 신원을 파악하는 방법은 유용하지 않습니다.


참조

https://dextto.tistory.com/234
https://codebootcamp.co.kr/

profile
같이 일하고 싶은 사람이 되어보자! 다시 시작하는 개발 블로그.
post-custom-banner

0개의 댓글