Authentication & Authorization
- Authentication(인증)
- 사용자, 장치의 신원을 확인하는 과정
- 즉, 로그인
- Authorization(권한 부여)
- 인증된 사용자나 시스템이 수행할 수 있는 작업의 유형과 범위를 결정하는 과정
- ex) 관리자는 공지사항을 작성할 수 있지만, 개인 사용자는 불가능
인증 | 권한 | 결과 |
X | - | 민증을 놓고와서 술집에 못 들어감 |
O | O | 고등학교 학생증을 들고가서 술집에 못 들어감 |
O | O | 민증을 들고가서 술집에 들어감 |
- HTTP 특징
- 비연결성(Connectionless)
- 클라이언트가 서버에 요청을 보내고 서버가 그 요청에 응답을 한 후, 연결이 바로 끊어진다.
- 요청이 독립적이다.
- 무상태(Stateless)
- 이전 요청에 대한 정보나 상태를 저장하지 않는다.
- 클라이언트-서버 구조
- 비연결성(Connectionless)
- WebSocket
- WebSocket은 웹에서 실시간, 양방향 통신을 가능하게 하는 기술이다.
- HTTP와 다르게 요청이 독립적이지 않다.
- 채팅 등에 사용된다.
쿠키와 세션, 토큰
쿠키
- 쿠키(Cookies)란 사용자의 웹 브라우저에 저장되는 작은 데이터 조각이다.
- 이 데이터는 사용자가 웹사이트를 방문할 때마다 서버에 다시 전송된다.
- 사용자의 세션 관리, 개인화 설정, 사용자 행동 기록 등에 사용된다.
세션
- 세션(Sessions)은 서버 측에서 사용자 정보를 저장하는 방법이다.
- 세션 ID를 통해 사용자를 식별하며, 이 ID는 쿠키를 통해 사용자의 브라우저에 저장됩니다.
- 사용자의 로그인 상태를 유지하고, 사용자별로 개인화된 정보를 관리한다.
[보안동향] 인증, '토큰' 방식 새롭게 뜬다! 안전한 사용법은? - LG CNS
IT 서비스가 개인정보, 결제정보와 같이 민감한 정보를 다루기 시작하면서 보안과 프라이버시에 대한 관심이 높아졌습니다. 이로 인해 허가된 사용자에게만 정보를 제공하는 인증 절차가 필요
www.lgcns.com
토큰
- 토큰(Tokens)은 인증 정보를 안전하게 전송하기 위해 사용되는 암호화된 문자열이다.
- 사용자의 로그인 정보를 서버에 저장하는 대신, 클라이언트 측에 저장한다.
[보안동향] 인증, '토큰' 방식 새롭게 뜬다! 안전한 사용법은? - LG CNS
IT 서비스가 개인정보, 결제정보와 같이 민감한 정보를 다루기 시작하면서 보안과 프라이버시에 대한 관심이 높아졌습니다. 이로 인해 허가된 사용자에게만 정보를 제공하는 인증 절차가 필요
www.lgcns.com
JWT
- JWT(JSON Web Token)는 웹 표준으로, 두 개체 사이에서 JSON 객체를 사용하여 가볍고 자가 수용적인(self-contained) 방식으로 정보를 안전하게 전송하기 위해 설계되었다.
- 주로 인증 및 정보 교환에 사용된다.
- 자가 수용성(Self-contained): 필요한 모든 정보를 자체적으로 포함하고 있어서, 별도의 정보 조회 없이도 검증과 사용자 식별이 가능하다.
- 확장성(Scalability): 상태를 서버에 저장하지 않기 때문에, 애플리케이션의 확장성이 높아진다.
- 다양한 플랫폼과 언어에서 사용 가능: JWT는 JSON 포맷을 기반으로 하기 때문에 다양한 프로그래밍 언어와 플랫폼에서 쉽게 사용할 수 있다.
- 즉, MSA에 적합하다
- 헤더, 페이로드, 서명 세 개의 파트로 구성되어있다.
- 헤더 : 토큰 타입, 암호화 알고리즘이 명시되어있다.
- 페이로드 : 토큰으로 관리할 데이터가 저장되어있다.
- 서명 : 서명을 통해 JWT가 유효한지 확인할 수 있다.
JWT.IO
JSON Web Tokens are an open, industry standard RFC 7519 method for representing claims securely between two parties.
jwt.io
MSA
- MSA(Microservices Architecture)는 소프트웨어 개발 방식 중 하나로, 큰 규모의 애플리케이션을 작고 독립적인 서비스들로 나누어 개발하는 구조를 말한다.
- 각각의 서비스는 특정 비즈니스 기능을 수행하며, 서로 독립적으로 배포, 운영될 수 있다.
'CS' 카테고리의 다른 글
UUID 개념 및 생성 방법 (0) | 2024.04.01 |
---|---|
람다(lambda) 함수 (1) | 2024.03.21 |
REST API 및 CRUD (3) | 2024.03.15 |
DB에 대한 이해 및 DATA 모델링 (0) | 2024.03.13 |
Git/Github란? (0) | 2024.03.12 |