스프링 시큐리티 - 인증인가 방식(종류)

JungSik Heo·2022년 10월 22일
0
post-custom-banner

인증(로그인)을 하기위한 방식?

  • 세션 - 쿠키 방식
  • 토큰 (jwt 토큰) 방식
  • 다른 채널을 통해 인증 (OAuth)

1.세션 - 쿠키 방식

  • 해당 방식의 핵심은 사용자의 정보를 세션에 저장하여 서버에서 관리
  • 인증 그림 설명

1.클라이언트가 서버로 로그인 요청을 보낸다.
2.서버는 클라이언트가 보낸 (id, pw)를 확인한다.
3.(4 포함) 요청 정보가 유효하면 세션 ID를 생성한다.
4.클라이언트는 응답으로 받은 세션을 쿠키에 저장한다.
5.클라이언트가 인증이 필요한 요청을 할 때마다 헤더에 쿠키 실어서 보낸다.
6.서버는 쿠키를 확인하여 사용자를 식별합니다.
7.사용자에게 맞는 데이터를 넘겨줍니다.

2.토큰 (jwt 토큰) 방식

  • JWT(Json Web Token)은 위와 하나의 인터넷 표준 인증 방식입니다. 말그대로 인증에 필요한 정보들을 Token에 담아 암호화시켜 사용하는 토큰.
  • 말그대로 인증에 필요한 정보들을 Token에 담아 암호화시켜 사용하는 토큰
  • 사실 기본적인 인증을 진행하는 구조는 Cookie때와 크게 다르지는 않음
  • JWT는 서명된 토큰이라는 점

인증과정

1.클라이언트 로그인 요청이 들어오면, 서버는 검증 후 클라이언트 고유 ID 등의 정보를 Payload에 담습니다.

2.암호화할 비밀키를 사용해 Access Token(JWT)을 발급합니다.

3.클라이언트는 전달받은 토큰을 저장해두고, 서버에 요청할 때 마다 토큰을 요청 헤더 Authorization에 포함시켜 함께 전달합니다.

4.서버는 토큰의 Signature를 비밀키로 복호화한 다음, 위변조 여부 및 유효 기간 등을 확인합니다.

5.유효한 토큰이라면 요청에 응답합니다.

3. OAuth 2.0 기반 인증 방식

  • 정의
    OAuth 2.0은 로그인하지 않고도 제삼자에게 서비스를 제공할 수 있도록 하는 표준 사용자 인증 프로토콜이다.

  • 세션 쿠키 방식과 JWT 방식은 제삼자에게 서비스를 제공하는 인증방식이 아니다.

profile
쿵스보이(얼짱뮤지션)
post-custom-banner

0개의 댓글