1. 인증 (Authentication)
1-1. 인증이란?
- 누군가 또는 시스템이 실제로 그 누구인지 또는 시스템인지 결정하는 과정
- 인증 기술은 사용자의 자격 증명 정보가 데이터 인증 서버의 자격 증명 정보와 일치하는지 확인, 인증 철차를 통과한 시스템에 대해 액세스 제어를 제공
1-2. 인증의 유형
SFA(단일 요소 인증)
: 자격 증명 정보로서 사용자 ID와 암호만을 요구하는 방식
- ID와 비밀번호만 알아도 쉽게 보안에 문제가 생김
2FA
: 로그인 시도 시 모바일 기기를 통해 사용자에게 부여하는 고유 코드나 지문 등의 추가적인 인증 요소를 요구해 인증을 강화하는 방식
MFA
: 2FA
유형에서 조금 더 보안을 강화하기 위해 사용자 ID 및 비밀번호, 생체 서명 뿐만 아니라 사용자가 직접 답변해야 하는 질문을 자격 증명 정보에 추가하여 3개 이상의 신원 확인 요소가 인증에 사용
1-3. 인증 절차
1-3-1. 회원가입 절차
- 서비스의 가입 절차를 진행하여 해당 사용자의 아이디와 비밀번호를 데이터베이스에 저장
- 사용자의 비밀번호는 암호화를 진행한 후 저장
1-3-2. 로그인 절차
- 사용자가 회원 가입 때 입력한 본인의 아이디와 비밀번호 입력
- 사용자가 입력한 비밀번호를 암호화한 후에 그 값을 이미 암호화하여 DB에 암호화되어 저장된 비밀번호와 비교
- 비밀번호가 일치하면 로그인 성공
- 로그인에 성공하면 백엔드 API 서버는 사용자의 인증 정보가 담긴 access token을 사용자에게 전송
- 사용자는 로그인 성공 후에 다음 요청부터는 받은 access token을 요청에 첨부해서 서버로 전송함으로써 매번 로그인을 하지 않아도 됨
2. 인가 (Authorization)
2-1. 인가란?
- 사용자에게 특정 리소스 또는 기능에 대한 액세스 권한을 부여하는 프로세스
- 액세스 제어 또는 클라이언트 권환가 같은 의미로 사용
- 예) 누군가에게 서버의 특정 파일을 다운로드할 수 있는 권한을 부여, 개별 사용자에게 애플리케이션에 대한 관리 액세스 권한을 제공하는 것 등
- 사용자에게 권한을 부여하기 위해서는 항상 인증 절차를 따라야 함
- 사용자는 조직의 관리자가 요청된 리소스에 대한 액세스 권한을 부여하기 전에 먼저 사용자의 자격 증명을 확인해야 함