ABOUT ME

Today
Yesterday
Total
  • [인증/보안] OAuth
    codeStates front-end/node(server) 2023. 3. 9. 16:18
    반응형

    목차

     

    📌 OAuth

     

     

    📍OAuth

     

    인증을 중개해주는 메커니즘

    보안된 리소스에 액세스하기 위해 클라이언트에게 권한을 제공하는 프로세스를 단순화하는 프로토콜

     

     

    OAuth의 예시 - 소셜 로그인

     

     

     

    OAuth의 주체

     

    Resource Owner : 소셜로그인을 하고싶어하는 사용자

    Resource Server : 사용자의 정보를 저장하고 있는 서버

    Authorization Server : 인증을 담당하는 서버

    Application : 소셜 로그인을 활용해 이용하고자하는 새로운 서비스

     

     

     

     

    🔗 OAuth의 인증 방식의 종류와 흐름

    • Grant Type : Authorization Server에서 Access Token을 받아오는 방식

     

    🔑 Implicit Grant Type

     

    1. 사이트에 사용자가 접속
    2. 사용중인 서비스에서 인증을 담당하는 서버로 인증 요청
    3. 인증을 담당하는 서버는 유효한 인증 요청인지 확인 후 액세스 토큰 발급
    4. 인증을 담당하는 서버에서 사용중인 서비스로 액세스 토큰 전달
    5. 사용중인 서비스에서 발급받은 액세스 토큰을 담아 정보를 저장하는 서버로 사용자의 정보를 요청
    6. 정보를 저장하는 서버는 사용중인 서비스로 전달 받은 액세스 토큰이 유효한 토큰인지 확인
    7. 유효한 토큰이라면, 사용중인 서비스에 정보를 전달 

     

    🔑 Authorization Code Grant Type

     

    Authorizartion code를 사용한 인증 단계 때문에 비교적 안전하다.

     

    1. 사이트에 사용자가 접속
    2. 사용중인 서비스에서 인증을 담당하는 서버로 인증 요청
    3. 인증을 담당하는 서버는 유효한 인증 요청인지 확인한 후 Authorizartion code 발급
    4. 인증을 담당하는 서버는 사용중인 서비스로 Authorizartion code 전달
    5. 사용중인 서비스에서 Authorizartion code 로 발급받은 Authorizartion code를 전달
    6. 인증을 담당하는 서버는 유효한 Authorizartion code 인지 확인한 후 토큰을 전달
    7. 인증을 담당하는 서버에서 사용중인 서비스로 액세스 토큰 전달
    8. 사용중인 서비스는 발급받은 액세스 토큰을 담아 정보를 저장하는 서버로 사용자의 정보를 요청
    9. 정보를 저장하는 서버는 사용중인 서비스에게서 전달받은 액세스 토큰이 유효한지 확인
    10. 유효한 토큰이란면, 사용중인 서비스에 정보를 전달

     

    🔑 Refresh Token Grant Type

     

    1. 인증을 담당하는 서버로 리프레시 토큰을 전달
    2. 인증을 담당하는 서버는 리프레시 토큰을 검증한 다음 액세스 토큰 발급
    3. 사용중인 서비스에서 다시 발급 받은 액세스 토큰을 사용해서 정보를 저장하는 서버의 정보를 가져온디.

     

     

    🔗 OAuth의 장점

     

    1. 쉽고 안전하게 새로운 서비스를 이용할 수 있다.

    • 사용자는 OAuth를 통해 특정 사이트에 아이디, 비밀번호, 이름, 전화 번호 등의 정보를 일일이 입력하지 않아도 클릭 몇 번 만으로 손쉽게 가입할 수 있어 편리합니다.
    • 정보를 해당 서비스에 직접 노출하는 것이 아니기 때문에 직접 가입하는 것보다 더 안전합니다.
    • Application의 입장에서도 회원의 정보를 직접 가지고 있음으로 인해서 발생할 수 있는 회원 정보 유출의 위험성에서 부담을 덜 수 있습니다.

    2. 권한 영역을 설정할 수 있다.

    • OAuth 인증을 허가한다고 해서 새로운 서비스가 사용중이던 서비스의 모든 정보에 접근이 가능한 것은 아닙니다. 사용자는 원하는 정보에만 접근을 허락할 수 있어 보다 더 안전합니다.
    • OAuth 설정 페이지에서는 Application에서 필요한 정보를 선택할 수 있습니다. 사용자는 이 중 원하는 정보만 선택적으로 제공할 수 있습니다.

     

    반응형

    'codeStates front-end > node(server)' 카테고리의 다른 글

    Proxy  (0) 2023.04.04
    아마존 웹 서비스(AWS)  (0) 2023.03.31
    [인증/보안] Token  (0) 2023.03.08
    [인증/보안] Session  (0) 2023.03.08
    [인증/보안] Cookie  (0) 2023.03.07

    댓글

Designed by Tistory.