인증과 인가

Gaeun·2022년 12월 26일
0

wecode TIL

목록 보기
9/24

1. 인증 (Authentication)

1-1. 인증이란?

  • 누군가 또는 시스템이 실제로 그 누구인지 또는 시스템인지 결정하는 과정
  • 인증 기술은 사용자의 자격 증명 정보가 데이터 인증 서버의 자격 증명 정보와 일치하는지 확인, 인증 철차를 통과한 시스템에 대해 액세스 제어를 제공

1-2. 인증의 유형

  • SFA(단일 요소 인증): 자격 증명 정보로서 사용자 ID와 암호만을 요구하는 방식
  • ID와 비밀번호만 알아도 쉽게 보안에 문제가 생김
  • 2FA: 로그인 시도 시 모바일 기기를 통해 사용자에게 부여하는 고유 코드나 지문 등의 추가적인 인증 요소를 요구해 인증을 강화하는 방식
  • MFA: 2FA 유형에서 조금 더 보안을 강화하기 위해 사용자 ID 및 비밀번호, 생체 서명 뿐만 아니라 사용자가 직접 답변해야 하는 질문을 자격 증명 정보에 추가하여 3개 이상의 신원 확인 요소가 인증에 사용

1-3. 인증 절차

1-3-1. 회원가입 절차

  1. 서비스의 가입 절차를 진행하여 해당 사용자의 아이디와 비밀번호를 데이터베이스에 저장
  2. 사용자의 비밀번호는 암호화를 진행한 후 저장

1-3-2. 로그인 절차

  1. 사용자가 회원 가입 때 입력한 본인의 아이디와 비밀번호 입력
  2. 사용자가 입력한 비밀번호를 암호화한 후에 그 값을 이미 암호화하여 DB에 암호화되어 저장된 비밀번호와 비교
  3. 비밀번호가 일치하면 로그인 성공
  4. 로그인에 성공하면 백엔드 API 서버는 사용자의 인증 정보가 담긴 access token을 사용자에게 전송
  5. 사용자는 로그인 성공 후에 다음 요청부터는 받은 access token을 요청에 첨부해서 서버로 전송함으로써 매번 로그인을 하지 않아도 됨

2. 인가 (Authorization)

2-1. 인가란?

  • 사용자에게 특정 리소스 또는 기능에 대한 액세스 권한을 부여하는 프로세스
  • 액세스 제어 또는 클라이언트 권환가 같은 의미로 사용
  • 예) 누군가에게 서버의 특정 파일을 다운로드할 수 있는 권한을 부여, 개별 사용자에게 애플리케이션에 대한 관리 액세스 권한을 제공하는 것 등
  • 사용자에게 권한을 부여하기 위해서는 항상 인증 절차를 따라야 함
  • 사용자는 조직의 관리자가 요청된 리소스에 대한 액세스 권한을 부여하기 전에 먼저 사용자의 자격 증명을 확인해야 함
profile
🌱 새싹 개발자의 고군분투 코딩 일기

0개의 댓글