코딩 쏙쏙

인증(Authentication) & 인가, Session & Cookie 본문

[Dev_Study]

인증(Authentication) & 인가, Session & Cookie

두두만두 2023. 4. 2. 23:05

인증(Authentication) & 인가(Authorization)

1. 인증

인증단계에서는 사용자의 신원을 확인한다.
인증 기술은 사용자의 자격 증명 정보가 데이터 인증 서버의 자격 증명 정보와 일치하는지 확인하여
인증 절차를 통과한 시스템에 대해 액세스 제어를 제공 한다.

 

1-1. 인증의 유형

 

유형 내용
SFA 
(단일 요소 인증)
아이디, 비밀번호 2개만 받는 인증
단, 쉽게 보안에 문제가 생긴다.
2FA 2단계 인증(고유코드, 지문 등),
SFA보다 보안이 안전
MFA
(다중 요소 인증)
2FA보다 더 추가하여 보안을 강화
3개 이상의 신원 확인

 

1-2. 인증 절차

 

- 회원가입 절차

서비스 이용을 WANT 사용자는 가입절차를 진행 → 아이디와 비밀번호를 데이터  베이스에 저장

사용자 아이디와 비밀번호는 암호화를 진행 한 후 저장

 

-로그인 절차

회원 가입때 사용한 아이디와 비밀번호 입력  
                       ↓
암호화한 비밀번호와 암호화되어 DB에 저장된 비밀번호 비교
                       ↓
비밀번호 일치하면 로그인 성공
                       ↓
로그인 성공시 > 백엔드 API 서버  > 인증 정보 access token 전송 >
                       ↓
로그인 성공 후 > 서버로 받은 access token 첨부 > 매번 로그인 시도 X

 

2. 인가

인가 단계에서는 신원이 확인된 사용자에게 리소스에 액세스 할 수 있는 권한을 부여한다.
사용자에게 권한을 부여하기 위해서는 항상 인증 절차가 따른다.
사용자는 권한을 부여하기 전에 자격 증명을 확인 해야한다.

 

3.  "HTTP의 stateless"

웹 환경에서 사용자와 시스템간 데이터를 교환하기 위해 HTTP 방식을 사용한다.
HTTP 통신은 요청과 응답에 의해 동작하며, HTTP의 특징 중 가장 중요한 특징은 바로 Stateless 이다.
각각의  HTTP 통신(요청/응답)은 독립적 이여서 과거의 통신에 대한 내용을 전혀 알지 못한다.
이전의 상태를 알지 못한다면...
매 통신마다 필요한 모든 정보를 담아서 요청을 보내야 한다.
따라서, 여러번의 통신의 진행 과정에서 연속된 데이터 처리가 필요한 경우
Stateless의 특징에 따라 매번 로그인을 위한 인증정보를 같이 보내야 한다.
이런 불편함을 없애고자 Session과 Cookie 또는 Token 같은 기술을 사용할 수 있다.

 

'[Dev_Study]' 카테고리의 다른 글

[DB]트랜잭션(Transaction)  (0) 2023.05.02
Session & Cookie 특징, 차이점  (0) 2023.04.02
개발 공부(2)_암호화의 종류  (0) 2023.04.02
2. router  (0) 2023.03.27
1. Layered  (0) 2023.03.27