Wecode -Foundation 2 (부트캠프)/인증, 인가- 개념

Foundation 2- 인증과 인가

Queen Julia 2023. 9. 6. 14:12

인증과 인가

  • 인증 - 회원가입 로그인
  • 인가- 인증을 받은 client, browser가 끊임없이,  ‘나 A라는 User이고 B라는 자격을 갖고 있고, A,B라는 선제조건을 가져야 가능한 C라는 서비스를 이용하게 해줘'라는 요굴르 끊임없이 하고 공증 받는 과정 

인증 (Authentication) 이란?

 

인증은 누군가 또는 시스템이 실제로 그 누구인지 

또는 시스템인지를 결정하는 과정

 

사용자의 자격 증명 정보가 

인증 서버의 자격 증명 정보비교, 일치하는지 확인하여  

시스템에 대해 액세스 권한 제공

 

Ex. 사용자가 제시한 정보가 

은행의 데이터베이스의 존재하는 정보가 일치하지 않으면 은행 업무를 볼 수 없습니다. 

 

 

인증의 유형

1. SFA(단일 요소 인증)single factor: 자격증명 정보로서 사용자 ID와 암호만을 요구

ID와 비밀번호만 알아도 쉽게 보안에 문제 생김 

 

 2.  2FA: 고유코드나 지문 등의 추가적인 인증 요소를 요구

SFA에 비해 보안 강도 증가 

2단계 인증,이중인증 

 

Cf. 모든 계정 모두 2FA 이상, 개발자이기에 이건 기본, professionalism

 

3. MFA(다중요소인증) multiple: 

사용자 ID 및 비밀번호, 생체 서명뿐만 아니라 사용자가 직접 답변해야 하는 질문을 자격증명 정보에 추가하여 3개 이상의 신원 확인 요소

인증 절차

1. 회원가입 절차

  1. 서비스 이용을 원하는 사용자는 서비스의 가입 절차를 진행
  2. 서버는 가입 절차 때 입력한 사용자의 아이디와 비밀번호를 데이터 베이스에 저장
  3. 단, 사용자의 비밀번호는 입력한 문자 그대로가 아닌 암호화해야 한다. 법이다. 

2. 로그인 절차

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



인가(Authorization)란?

  • 인가는 사용자에게 특정 리소스 또는 기능에 대한 액세스 권한을 부여하는 프로세스
  • 사용자에게 권한을 부여하기 위해서는 항상 인증 절차 진행
  • 인증 절차 후 조직 관리자는 요청된 리소스에 대한 액세스 권한 부여 
  • ex. 누군가에게 서버의 특정 파일을 다운로드 할 수 있는 권한 부여(vip만 특정 이모티콘 받을 수, 멤버십 개념), 개별 사용자에게 서비스 관리 액세스 권한 제공(커뮤니티/카페 관리자,매니저가 부관리자,부매니저에게 권한 준다. 관리자들만 들어갈 수 있는 채팅방 입장 가능), 마이페이지도 인가 과정 거침(이용내역, 결제내역, 글 쓴 게시글내역 모두)