TIL 58일차 - [Backend] 인증 / 보안 : OAuth

Yoon Kyung Park·2023년 7월 4일
0

TIL

목록 보기
58/75

직접 서버에서 인증과 관련된 로직을 처리할 필요 없이
인증을 중개하는 외부 서버를 이용한 Oauth 기술에 대해서 학습한다. 이를 통해 소셜 로그인의 작동 방식을 살펴본다.


  • Token의 종류에 대해 이해할 수 있다.

    o

    • Refresh Token과 Access Token의 차이를 이해한다.

      o
      토큰 인증 방식의 한계를 보안하기 위해 등장하였다.

      Access Token은 말 그대로 서버에 접근하기 위한 토큰으로
      보안을 위해 보통 24시간 정도의 짧은 유효기간이 설정되어 있다.

      Refresh Token은 서버 접근을 위한 토큰이 아닌
      액세스 토큰이 만료되었을 때, 새로운 액세스 토큰을 발급받기 위해
      사용되는 토큰이다. 따라서 리프레시 토큰은 액세스 토큰보다
      긴 유효기간을 설정한다.

      이렇게 두 가지의 각기 다른 토큰을 사용하는 경우,
      액세스 토큰이 만료 되더라도 리프레시 토큰의 유효기간이 남아있다면,
      사용자는 다시 로그인을 할 필요 없이 지속해서 인증 상태를 유지할 수 있다.

  • OAuth의 키워드를 설명할 수 있다.

    o
    OAuth는 소셜 로그인 인증 방식으로 인증을 중개해주는 메커니즘으로
    보안된 리소스에 액세스하기 위해 클라이언트에게
    권한을 제공하는 프로세스를 단순화하는 프로토콜이다.

    OAuth는 사용자와 기업 모두 소셜 로그인을 선호하고 있는 추세로
    이미 사용자 정보를 가지고 있는 웹 서비스(네이버,카카오,구글 등)에서 사용자의 인증을 대신해주고,
    접근 권한에 대한 토큰을 발급한 후,
    이를 이용하여 내 서버에서 인증이 가능하도록 하는 인증 방식이다.

    이러한 OAuth는 유저의 민감 정보를 직접 APP에 노출시킬 일도 없고,
    인증 권한에 대한 허가를 미리 유저에게 구해야 하기 때문에 보안상으로 더 안전하게 사용할 수 있다.

    👇 [OAuth의 주체]

    OAuth 주체

  • Authorization Code와 Access Token의 차이에 대해 이해할 수 있다.

    o
    👇 [OAuth 인증 방식의 종류와 흐름]

    1. Implicit Grant Type

    Implicit Grant Type

    1. Authorization Code Grant Type

    Authorization Code Grant Type

    Authorization Code Grant Type

    1. Refresh Token Grant Type

    Refresh Token Grant Type

  • Authorization 서버와 Resource 서버의 차이에 대해 이해할 수 있다.

    o

  • OAuth의 장점에 대해 이해할 수 있다.

    o
    👇 [OAuth의 장점]

    OAuth의 장점


과제 : OAuth 2.0

Oauth 2.0을 이용한 소셜 로그인을 구현한다.
사용자 인증은 개발자에게 친숙한 Github을 이용한다.
이를 통해 외부 인증 서버(Github)에게 Access Token을
받아오고 다시 유저의 인증 정보를 요청하는 플로우를 구현한다.

들어가기에 앞서 check 해보기

☑️ 토큰에 대한 이해

  • 직접 OAuth로 로그인 가능한 애플리케이션을 제작할 수 있다.

    o

  • Oauth의 작동 방식을 이해할 수 있다.

    o

    • "Client" - "Local Server" - "Authorization Server" - “Resource Server” 간 요청/응답을 주고받는 다이어그램을 그릴 수 있다.

      o

  • OAuth의 키워드를 설명할 수 있다.

    o

  • Authorization Code와 Access Token의 차이에 대해 이해할 수 있다.

    o

  • Authorization 서버와 Resource 서버의 차이에 대해 이해할 수 있다.

    o

출처: codestates


소감

🔡➡️💻➡️🤓👍

이번 과제는 네트워크 과제 중 비교적 쉬웠으나
그렇다고 해서 수월하게 코드를 작성하지는 못했다.

오늘로써 네트워크 수업이 끝이 났다.
총 4일 간의 수업이었지만, 충격이 가지 않았다..

좀 더 열심히 해야겠다.

profile
developerpyk

0개의 댓글