ABOUT ME

Today
Yesterday
Total
  • [Spring] OAuth2
    스프링프레임워크/oauth2 2021. 5. 31. 20:52

    OAuth 2.0 인증 방식

    • 웹 사이트의 계정 인증에 타 서비스의 계정을 사용하는 인증 방식

     

    구글 인증 방식 예시

    구글 인증 페이지에 접속

    https://accounts.google.com/o/oauth2?client_id=[OAuth 클라이언트 아이디]
    &redirect_uri=https://www.test.com/auth/google/callback

    사용자가 구글 인증에 성공하면, 인증 페이지 접속 시 전달 된 리다이렉트 URI로 리다이렉트 되는데 다음과 같이 code라는 매개변수 정보를 추가해준다.

    https://www.test.com/auth/google/callback?code=[코드 정보]

    웹 사이트에서는 이 code라는 매개변수 값을 URL로부터 얻어온 후 이 code를 통해서 액세스 토큰을 발급 받는다.

    https://www.googleapis.com/oauth2/token
    POST Body 정보 : code=코드정보, client_id=클라이언트 아이디, client_secret=클라이언트 패스워드,
                                  redirect_uri=https://www.test.com/auth/google/callback

    위 요청이 성공하면 구글 서버로 부터 아래와 같은 액세스 토큰 정보가 포함된 JSON 데이터를 리다이렉트 URI로 받아온다.

    리다이렉트로 받아온 토큰 정보를 클라이언트에 리턴 가능

    callback controller에서 수신한 데이터를 리턴 시 클라이언트에서 수신 가능

    {
      "access_token" : "ya29.AHES6ZTtm7SuokEB-RGtbBty9IIlNiP9-eNMMQKtXdMP3sfjL1Fc",
      "token_type" : "Bearer",
      "expires_in" : 3600,
      "refresh_token" : "1/HKSmLFXzqP0leUihZp2xUt3-5wkU7Gmu2Os_eBnzw74"
    }

     

    OAuth 2.0 Grant Type

    • 사용자가 인증 과정에 개입 O
      • authorization_code
        • authorization 서버 인증에 성공하면 code 값을 획득한다.
        • code 값을 가지고 다시 access token을 요청한다.
      • implicit
        • authorization 서버 인증에 성공하면 바로 access token을 획득한다.
    • 사용자가 인증 과정에 개입 X
      • password
        • 사용자의 인증 정보를 클라이언트로부터 보호하는 authorization_code, implicit과 다르게 클라이언트가 이미 사용자의 인증 정보를 알고 있을 경우 사용
        • POST /oauth/token 요청으로 바로 access token을 획득
        • authorization_code와 implicit는 사용자의 인증 정보를 클라이언트로부터 보호하기 위한 목적이 있는데 클라이언트에서 이미 사용자의 인증 정보를 가지고 있어서 password 타입 사용
      • client_credentials
        • 클라이언트의 자격증명만으로 access token을 획득하는 방식

     

    참고 사이트

     

    OAuth 2.0 동작 방식의 이해

     

    OAuth 2.0 동작 방식의 이해

    OAuth 2.0(Open Authorization 2.0, OAuth2)은 인증을 위한 개방형 표준 프로토콜입니다. 이 프로토...

    blog.naver.com

    Google OAuth

     

    Google OAuth 인증을 이용한 애플리케이션 개발

    Go oAuth2 애플리케이션 개발

    www.joinc.co.kr

    Spring Boot로 만드는 OAuth2 시스템

     

    Spring Boot로 만드는 OAuth2 시스템 4

    간단한 OAuth2 서버 만들어 보기 | 이번  포스팅부터 본격적으로 OAuth2 서버를 만들어 보겠다. 간단한 세팅을 시작으로 하나하나 점증적으로 확장하는 형태로 진행할 예정이다. (샘플 소스: https://

    brunch.co.kr

     

    댓글

Designed by Tistory.