웹의 인증과 인가

LeeYulhee·2024년 9월 30일

👉 인증(Authentication) : 사용자의 신원 확인 절차


  • 사용자가 시스템에 접근하려 할 때, 사용자가 누구인지를 확인하는 절차
  • 보통 ID, 비밀번호, OTP, 생체 인식 등을 통해 이루어짐
  • 예시 : 웹사이트에 로그인할 때, 사용자 이름과 비밀번호를 입력하는 과정
    • 사용자가 user@example.com이라는 이메일과 password123이라는 비밀번호를 입력
    • 시스템은 이 정보를 데이터베이스에 저장된 정보와 비교하여 사용자가 올바른지 확인
    • 만약 일치한다면, 사용자가 인증을 통과한 것으로 간주하고 시스템에 접근할 수 있는 세션을 부여



👉 인가(Authorization) : 사용자 접근 제어 관리


  • 인증을 통과한 사용자가 이미 부여 받은 권한을 기준으로 어떤 리소스에 접근할 수 있는지, 그리고 접근할 수 있는 범위(읽기, 쓰기, 삭제 등)를 결정하는 과정
  • 특정 사용자가 시스템에 인증된 후, 해당 사용자가 어떤 기능을 수행할 수 있는지 결정하는 것
  • 인가는 권한(Role) 기반으로 이루어지는 경우가 많으며, 역할(Role)뿐만 아니라 속성(Attribute)이나 정책(Policy)을 기준으로 인가를 설정할 수도 있음
  • 예시 : 직원 관리 시스템에서 관리자와 일반 사용자가 있는 경우
    • 관리자는 직원 정보를 생성하고, 수정하고, 삭제할 수 있지만, 일반 사용자는 자신의 정보만 조회할 수 있음
    • user@example.com 사용자가 일반 사용자 권한을 가지고 있으면, 인증을 통과한 후에도 직원의 정보를 삭제하거나 수정할 수 있는 기능은 접근할 수 없음
    • 같은 시스템에 로그인한 관리자 권한의 사용자는 이러한 작업이 인가되어 있음



👉 예시 : 웹 기반 인사 관리 시스템


  • 인증 과정
    • 홍길동은 인사 관리 시스템에 접근하기 위해 길동123이라는 사용자 이름(ID)과 abcd@1234라는 비밀번호를 입력
    • 시스템은 이 정보를 데이터베이스에 저장된 홍길동의 정보와 비교하여 일치 여부를 확인
    • 일치하면 홍길동은 인증이 완료된 것이며, 시스템에 로그인

  • 인가 과정
    • 홍길동이 인사 관리 시스템에서 일반 직원 권한을 가지고 있음
    • 일반 직원 권한은 본인의 근태 기록을 조회할 수 있지만, 다른 직원의 정보나 급여 정보를 수정할 수 없음
    • 로그인 후 홍길동이 다른 직원의 정보를 수정하려고 시도할 경우, 시스템은 접근이 허가되지 않았다는 메시지를 보여주고, 해당 작업을 막음



👉 인증과 인가 요약


  • 인증은 사용자가 누구인지 확인하는 것이고, 인가는 사용자가 무엇을 할 수 있는지 결정하는 것
  • 인증이 사용자의 신원을 확인하는 과정이라면, 인가는 인증된 사용자가 시스템 내에서 특정 자원에 접근할 수 있는지 확인하는 절차
profile
끝없이 성장하고자 하는 백엔드 개발자입니다.

0개의 댓글