OAuth 2.0 Grant Type 개요

존스노우·2023년 8월 17일
0

springSecurity

목록 보기
13/75

  1. 크롬이 인가서버로 부터 권한 부여!?

  2. 인가서버로부터 유저에게 승인 / 동의 과정을 해줘야 인가서버는
    클라이언트에게 권한 부여를함

  3. 이때 발급된게 엑세스토큰 발급.

  1. 권한 부혀 유형이 여러가지임

Authorization code Grant Type

  • 인가 서버로 부터 코드를 받고, (사용자 동의/ 승인 하에)
  • 클라이언트가 인가서버에게 다시 코드를 매개변수로 전달 (지난시간 포스트맨 참조)
  • 가장 보안의 안전한 타입
  • 한번에 권한부여 안전하지 않음

    Implict Grant Type(Deprecated)

  • 스크립트 자체가 노출됨.

  • 위에 코드 받는 순서에서 코드 대신 token을 받음

    Resource Owner Password Credentials Grant Type(Deprecated)

  • 아이디와 패스워드를 적어서 인가받는 방식.

  • 아이디와 페스워드가 네트워크에 노출..

    Client Credentials Grant Type

  • 클라이언트 id / secret만 잇으면 엑세스 토큰 발급

  • 사용자가 없고 클라 자체가 사용자역할

    Refresh Token Grant Type

  • 그냥 리프레쉬 토큰으로 엑세스 토큰 발급 받는방식인듯.

    PKCE- enhanced Authorization Code Grant Type

  • 코드를 교환하는데 키로서 증명한다. 1번째 방식의 강화된 버전

  • 토큰을 발급받을때 하나의 매개변수가 추가됨

예시

  • 1단계에서 해쉬된값이 특정한 알고리즘에 의해 전달 되고.

  • 인가서버에 전달되고 인가서버는 해쉬된 값을 가지고 있고

  • 코드 값과 알고리즘 타입을 준다.

  • 인가서버는 sha1알고리즘으로 1234로 해쉬 하게 되면

  • 1234된 해쉬값하고 인가서버에 있는 해쉬값하고 같으면 인가 됨.

권한 부여 흐름 선택 기준

  • SPA (자바 스크립트기반 앱) 네이티브는 모바일
  • 자사 서비스면 Resource Owner Flow
  • 그냥 오어스 사용하란 뜻 같은데 ?

매개 변수 용어

  • 클라이언트가 인가서버에게 권한부여 요청할 때 각각의 항목들

  • response-type (ex: code / token 등.) 인증서버가 어떤 권한 부여 인지 알 수 있다.

  • grant_type 타입을 주게 되면 권한 방식이 달라짐 .

  • Redirect_uri 처음요청한 주소인지 확인하는 역할 도 함.

  • state 클라이언트로 코드와 함께 리다이렉트 할때 클라이언트가 최초에 보낸
    state 값도 포함해서 보내줌. 클라이언트는 보낸 state값과 받은 값을 같은 지 확인 한다.

  • 틀리면 ? 정상적인 코드가 아니라 판단하고 진행하면 안됀다.

  • 공격자에 의해 위조될수 있는 값을 방지하기 위해 state 매게변수 이다.

profile
어제의 나보다 한걸음 더

0개의 댓글