티스토리 뷰

What I Learned

TIL_20221228_인증&인가

오베르 2022. 12. 29. 02:11

인증과 인가를 위해서 세션&쿠키 혹은 토큰 방식의 기술을 사용한다.

 

HTTP

- Connectionless & Stateless 한 특징으로 서버 클라이언트의 통신은 프로토콜의 규칙으로 request 에 response 후 연결을 끊는다. 

 

세션 쿠키

- Stateless 한 HTTP 의 특징으로 세션 쿠키를 통해서 인증 인가를 편리하게 하고자 함

- 클라이언트의 브라우저에 보관할 수 있는 쿠키(키-밸류 형태)를 서버에서 보내고

- 클라이언트의 브라우저는 쿠키를 저장해서 사용하고 유효기간을 설정하면 자동으로 소멸하고 설정이 없을 경우 브라우저 종료와 함께 소멸

- 클라이언트의 브라우저는 각기 세션을 구분하기 위해 ID를 할당해서 매번 세션 ID를 전송

 

참조 : 

DevTaek 의 개발노트 - HTTP 는 Stateless 한데 로그인은 어떻게 구현할 수 있을까? (세션/쿠키를 이용한 인증)

 

 

TIL_20221025

더보기

HTTP는 stateless 해서 쿠키-세션 방식의 로그인을 사용하기도 한다.

쿠키-세션 로그인 방식에서는 대체로 세션ID는 쿠키를 통해서 전달된다.

 

참조:

넌 잘하고 있어 - 쿠키(Cookie), 세션(Session) 특징 및 차이

DevTaek 의 개발노트 - HTTP 는 Stateless 한데 로그인은 어떻게 구현할 수 있을까? (세션/쿠키를 이용한 인증)

 

쿠키

(사용자가 request 할때) 서버가 유저의 브라우저에게 보내는 작은 데이터 조각

An HTTP cookie (web cookie, browser cookie) is a small piece of data that a server sends to a user's web browser.

 

쿠키는 대체로 세가지 목적을 위해서 사용된다

세션 관리, 개인화, 트래킹

 

클라이언트사이드 저장공간에서 사용된다. 

 

참조:

Using HTTP cookies

 

 

세션

웹사이트 혹은 웹어플리케이션에의 사용을 위해 지속되는 데이터와 파일들의 구성으로 세션 id를 통해 식별된다. 유저의 브라우저는 새로운 세션을 생성할때 새로운 id를 부여받는다.

In practice, a web session consists of the data or files that are persistent throughout the use of a website or web application.

 

HTTP와 같은 클라이언트-서버 프로토콜에서 세션은 세가지 단계로 구성된다.

 

1.클라이언트가 TCP 연결을 생성한다. 

2. 클라이언트가 request 를 보내고 응답을 기다린다. 

3. 서버는 request를 process 해서 상태코드와 적절한 데이터를 제공하는 응답을 한다.

 

참조:

What is a Web Session?

 

토큰

TIL_20221026

더보기

토큰 

일련의 문자열을 구분할 수 있는 단위

시스템에서 보안 객체의 접근 관리에 사용되는 객체 또는 장치

프로그래밍 언어에서 말하는 토큰이란 언어가 사용하는 기본'단어'를 말한다. 토큰은 구문적으로 의미를 갖는 최소의 단위이며 우리가 작성하는 프로그램은 모두 이러한 토큰으로 이루어진다. 

 

참조 :

해시넷 - 데이터 토큰 (문자열)

 

토큰은 컴퓨터 외에도 경제에서도 많이 쓰이고 예전에만 해도 버스토큰과 같이 한번씩 쓸 수 있는 허가되는 바우처이기도 한 것이 생각났다. 그리고 ERC20 token 처럼 Fungible 한 토큰도 것도 이런 구조에서 생성되는 것인거 같아서 리서치가 더 필요한 것으로 보인다.

 

 

Token (in Computing) 

  • Token, an object (in software or in hardware) which represents the right to perform some operation:
    • Session token, a unique identifier of an interaction session
    • Security token or hardware token, authentication token or cryptographic token, a physical device for computer authentication
      • Bearer token, a type of security token in OAuth that gives access to its bearer
    • Access token, a system object representing the subject of access control operations
    • Tokenization (data security), the process of substituting a sensitive data element
    • Invitation token, in an invitation system
    • Token Ring, a network technology in which a token circles in a logical ring
    • Token, an object used in Petri net theory
  • Lexical token, a word or other atomic parse element

 

Token (in Economics)

  • Token, a voucher or gift card redeemable for items of value
  • Token coin, a small, flat, round piece of metal or plastic that can sometimes be used instead of money, e.g.:
  • Token money, money that is of limited legal tender
  • Tokens, exonumia, items of currency other than coins and paper money

 

출처 : 

Wikipedia - Token

 

 

The ERC- 20 introduces a standard for Fungible Tokens, in other words, they have a property that makes each Token be exactly the same (in type and value) as another Token. For example, an ERC-20 Token acts just like the ETH, meaning that 1 Token is and will always be equal to all the other Tokens.

 

출처 : 

ethereum docs - ERC-20 Token Standard


 

JWT (Json Web Token)

토큰 인증 방식 중 JWT를 통해서 인증을 수행하면 서버는 토큰을 생성한 뒤에 서버에 저장하지 않고 (stateless) 토큰값을 사용자의 브라우저에게 응답

사용자의 브라우저는 이 토큰값을 인가된(Authorized) 사용자만 사용할 수 있는 서비스를 요청할때 함께 보냄

서버는 이 토큰을 의미 있는 값(보통은 사용자 정보)로 해석해서 사용자를 인증

 

JWT 토큰 구조는 HEADER 와 PAYLOAD 와 VERIFY_SIGNATURE 로 이루어져 있다. 

닷을 이용해서 구분하고 HEADER.PAYLOAD.VERIFY_SIGNATURE 와 같은 구조

 

 

참조 :

새발개발자 - Cookie(쿠키) / Cache(캐시) / Session(세션) / Token(토큰)

혼자 공부하는 얄팍한 코딩 지식 - 쿠키, 세션, 토큰, 캐시 그리고 CDN

평범하지않은 또야의 블로그 - Cookie, Session, Token 의 차이점

kingth.log - 서버 인증 방식(세션/쿠키, 토큰)

닭발족발 나는개발 - 쿠키, 세션, 토큰의 차이점

okta - 토큰 기반 인증이란? 인증 토큰의 종류와 JWT의 이점

그랩의 블로그 - 쉽게 알아보는 서버 인증 1편(세션/쿠키 , JWT)

 

참조 영상:

노매드코더 - 세션 vs 토큰 vs 쿠키? 기초개념 잡아드림. 10분 순삭!

얄팍한 코딩사전 - 세션 VS. 토큰! JWT가 뭔가요?

얄팍한 코딩사전 - 쿠키, 세션, 캐시가 뭔가요?

우아한Tech - [10분 테코톡] 연로그의 쿠키 vs 세션 vs 토큰 vs 캐시

우아한Tech - [10분 테코톡] 🦄 디토의 웹스토리지 & 쿠키

 

인증(Authentication) & 인가(Authorization)

TIL_20221122

더보기

인증

1. 인증하기                                - Request Header

2. 인증 유지하기                        - Browser

3. 안전하게 인증하기                 - Server

4. 효율적으로 인증하기             - Token

5. 다른 채널을 통해 인증하기    - OAuth

 

인증 (Authentication) 방식 3종류

- 세션 

세션/쿠키 방식의 인증은 서버에서 세션을 관리하여 유저에게는 쿠키를 주어서 세션 정보를 주고 받는다.

stateless 하지 않게 stateful 하게 세션은 유지된다. CSRF 공격에 취약할 수 있다.

- JWT

토큰 기반의 인증 방식으로 JWT는 최초에는 세션으로 접속시에 Json 을 사용하며 Json web token을 생성하고 토큰을 암호화해서 서버에 저장하지 않고 유저에게 주고 유저는 Read only 상태로 토큰을 활용하고 복호화는 서버에서만 진행하지만 그럼에도 불구하고 토큰은 하이재킹 될 수 있고 발급된 토큰을 무효화하기 어려울 수 있다. 그래서 토큰에게 Expiration 을 줘서 만료를 정하고 Refresh 토큰을 활용한다.

-  Oauth2.0

 

 

세션, 토큰 관련 TIL

TIL_20221026

TIL_20221025

 

HTTP 관련 TIL 

TIL_20221012

HTTP 는 stateless 한 프로토콜 이다.

stateless 는 서버로 향하는 모든 request 가 독립적이다. 각기 request 에 따라 요청자를 구분해야한다.

 

 

인가 authorization

사용자가 요청하는 요청을 실행할 수 있는 권한 여부를 확인하는 절차

 

참조 동영상:

Fireship - Session vs Token Authentication in 100 Seconds

우아한 Tech - [10분 테코톡] 🎡토니의 인증과 인가

 

장고에서의 회원 기능

- 장고 프레임워크는 기본적인 Authentication 기능을 지원 

- 커스터마이즈 해서 사용 가능

 

오늘 한일

팀프로젝트 마무리 및 발표 준비

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/04   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
글 보관함