Software Architecture

인증(Authentication)과 인가(Authorization)의 차이

LeeJaeJun 2024. 6. 16. 09:49
728x90
반응형

인증(Authentication)

  • 로그인을 통해 특정 서비스 권한을 부여받은 사용자임을 인증 받는 것
  • 사용자가 누구인지 처음에 확인하는 과정
  • ex) 웹사이트 로그인 시 아이디와 비밀번호 입력, 지문 인식으로 잠금 해제, 이메일 인증 코드 입력

 

인가(Authorization)

  • 한 번 인증을 받은 사용자가 이후 서비스의 여러 기능(특히 인증된 상태에서만 할 수 있는 기능)을 사용할 때 서버가 로그인 되어있는 상태임을 알아보고 허가해주는 것
  • 인증된 사용자가 특정 자원이나 기능에 접근할 권한이 있는 지를 결정하여 사용자가 어떤 작업을 수행할 수 있는지를 규정
  • ex) 관리자가 데이터베이스를 수정할 수 있는 권한 부여, 일반 사용자가 특정 페이지에 접근할 수 없도록 제한, 특정 사용자가 파일을 읽을 수 없지만 수정할 수 없도록 설정
  • ex) 내가 "사용자"로 인증을 한 뒤에 관리자만 접근할 수 있는 데이터베이스에 접근하려고 시도하면 "인가"되지 않았기 때문에 요청이 거부당할 것임. 이와 다르게 "관리자" 인증을 받은 뒤에는 데이터베이스 접근 요청에 대해서 "인가"를 받아 요청이 잘 처리가 될 것임

 

인증과 인가 과정

  • 사용자는 인증 과정을 통해 자신의 신원을 증명 (누구인지 확인)
  • 인증이 성공하면, 서버는 인가 과정을 통해 사용자에게 부여된 권한을 확인(무엇을 할 수 있는지 결정)
  • 최종적으로 사용자는 해당 자원에 접근하거나 특정 작업을 수행할 수 있는 권한을 얻음

 

 

728x90
반응형