관리 메뉴

개발하는 동그리

[인증/보안] OAuth2 본문

IT 정보/Spring

[인증/보안] OAuth2

개발하는 동그리 2022. 7. 29. 20:57
반응형

OAuth2

구글, 카카오, 네이버등 계정을 통해 쉽게 회원가입과 로그인이 가능하도록 하는 서비스로 즉, 소셜로그인 인증 방식

OAuth2 용어

  • Resource Owner : 접근중인 리소스 유저
  • Client : 보호된 리소스에 접근하는 애플리케이션
  • Resource Server : Authorization Server 에서 발급한 토큰으로 접근하면 요청을 응답하는 서버
  • Authorization Server : 클라이언트에게 엑세스 토큰을 발급하는 서버
  • Authorization Grant : 클라이언트가 엑세스 토큰을 얻는 방법
    • Authorization Code Grant Type ⭐⭐⭐
    • Client Credentials Grant Type
    • Implicit Grant Type
    • Resource Owner Credentials Grant Type
    • Refresh Token Grant Type ⭐⭐⭐
  • Authorization Code
    • Authorization Grant의 한 타입으로 엑세스 토큰을 발급 받기 위한 Code
    • Cilent ID로 이 Code를 받아온 후, Client Secret과 Code를 이용해 엑세스 토큰을 받을 수 있다. 
  • Access Token : 리소스 서버에 접근할 수 있는 토큰
  • Scope : 토큰의 권한 범위 정의 

 

Authorization Code Grant : 권한 부여 승인 코드 방식

  • 자체 생성한 Authorization Code를 전달하는 방식으로 가장 많이 쓰이고, 레프레시 토큰 사용이 가능
  • 권한 부여 승인 요청시 응답 타입을(response_type)을 Code로 지정하여 요청
    1. Resource Owner가 Client에게 서비스 요청
    2. Client는 Authorization Server에 Authorization Code 요청 (Client ID, Redirect URI, 응답 타입 함께 전송)
    3. 로그인 팝업을 통해 Resource Owner가 로그인 진행 
    4. 로그인 확인 후 Authorization Server는 Authorization Code를 Client에게 전달 (Client가 보낸 URI로 Code 전송)
    5. Client는 전달받은 Authorization Code와 미리 생성된 (Client Secret, Redirect URI, 권한부여방식)것을 함께 전송
    6. Authorization Server는 Authorization Code와 전송받을 것들을 확인 후 Redirect URI로 엑세스 토큰 발급
    7. Client는 발급된 엑세스 토큰을 사용해서 Resource Server에 접근하여 원하는 정보를 전달 받음

 

 

 

 

반응형

'IT 정보 > Spring' 카테고리의 다른 글

[인증/보안] JWT(Json Web Token) 인증  (8) 2022.07.29
[JPA] 이론 정리  (3) 2022.07.29
[인증/보안] CORS란!?  (5) 2022.07.28
[인증/보안] 보안파트 애너테이션  (4) 2022.07.28
[인증/보안] HTTP + 보안(Secure)  (10) 2022.07.21