17. 인증(Authentication) / 인가 (Authorization)

어니언·2023년 2월 22일
0

인증과 인가

인증은 사용자가 누구인가 확인하는 것을 말한다. 즉, 회원가입 후 로그인할 때와 같다.
인증에는 토큰기반 인증시스템이 있다.
토큰 기반인증은 현대 웹서비스에서 많이 사용되고있는 방식입니다. 기존에있던 서버기반인증시스템을 해결하기위해 토큰기반인증이 사용하기 시작했다. 그래서, 먼저 서버인증시스템부터 알아보면, 서버측에서 유저들의 정보를 기억을해야했다. 여기서 몇가지 문제가 생겼는데,
서버가 유저의 인증기록을 세션에 저장하는데, 혹시나 로그인유저가 몰려 많아지면 서버가 과부하되었다. 세션을 사용하면 분산된 시스템을 설계ㅡ 서버를 확장하는 것이 어렵다. 마지막으로 세션을 관리할 때는 사용되는 쿠키가 여러도메인에서 관리하는 것이 어려웠다.
이러한 문제를 해결하기위해 시작한 것이 토큰기반인증인데
토큰기반인증의 장점은 무상태확정성에있다.
무상태는 상태정보를 저장하지않고 서버는 클라이언트의 요청만으로 작업을 처리하며 세션을 따로 사용하지 않는다. 이에따라, 토큰을 사용할 시 클라이언트와 서버의 연결고리가 없기 때문에 서버를 확장하기에 매우 적합한 환경을 갖게된다.
확장성은 서버를 확장시킬뿐 아니라 로그인정보가 사용되는 분야를 확장하 수 있어 여러 도메인에서 관리하는 것이 가능하게된다.

인가는 사용자에 대한 권한을 허가하는것을 말한다.

어떤 사람이 무엇을 어떻게 사용하는지를 제공자는 파악하기 위해 제공되는 사이트 어디든 보통은 인증과 인가가 있다.

인증과 인가는 API에서 많이 구현되는 기능들이다. 또한, 이 용어들은 중복하여 사용이되어 많이 혼란을 갖게되는데 가장 중요한점은 인증은 인가로 이어지지만 인가는 인증으로 이어지지 않는다는 점이다.

profile
안녕하세요.

0개의 댓글