[단어장] Oauth

2023. 2. 5. 23:40프로그래밍/도서관

728x90
 

OAuth 개념 및 동작 방식 이해하기

1. OAuth란? image 웹 서핑을 하다 보면 Google과 Facebook 및 Twitter…

tecoble.techcourse.co.kr

Oauth

Oauth란

인터넷 사용자들이 비밀번호를 제공하지 않고 다른 웹사이트 상의
자신들의 정보에 대해 웹사이트나 어플리케이션의 접근 권한을
부여할 수 있는 공통적인 수단으로 사용되는,
접근 위임을 위한 개방형 표준이다.

한마디로 타 사이트로 대리 로그인(인증)하는 것이다.


OAuth 참여자

Resource Server: Client가 제어하고자 하는 자원을 보유하는 서버.
쉽게 말하면 대리로 인증해주는 애들

Resource Owner: 자원의 소유자.
쉽게 말하면 일반 사용자 (고객)

Client: Resource Server에 접속해서 정보를 가져오고자 하는 클라이언트
쉽게 말하면 로그인하는 사이트

예를 들어 구글 로그인으로 노션에 로그인 했다고 하면,
구글이 Resource Server, 노션이 Client다.

여기서 Resource를 고객의 개인정보라고 생각하면 된다.
비유를 하면 영화에서 마피아가 거래할 때,
두목(Resource Owner)가 부하 (Resource Server)한테 돈 가져오라고 시키면
부하가 가방에 돈(Resource, 개인정보)를 담아서 상대(Client)에게 전달하는 것이다.


Oauth Flow (인증 흐름)

1. Client 등록

우리가 업비트를 만드는 서비스 개발자라고 생각해보자.
우리는 이제 Client다.

우리가 근본있는 Client임을 알려주기 위해
Resource Server에 정보를 등록한다.
여기서는 구글로그인이라고 생각해보자.
(물론 실제 업비트는 금융서비스기 때문에 Oauth는 어림도 없다)


2. Resource Owner의 승인

고객이 구글로 로그인하기를 누르면 API를 날린다.

만약 고객이 개인정보 제공을 동의한적이 없다면,
동의 페이지로 이동한다.

맨날 게임할때 ~정보를 제공하는데 동의하시겠습니까?
뜨는게 이 단계다.
이렇게 우리는 우리의 개인정보를 중국에 넘겨버리었다.


3. Resource Server의 승인

이제 구글에서는 redirect URL을 통해서 진행할 수 있도록 이동시켜준다.
이 때, query string으로 Authorization Code를 넘겨준다.

이제 우리는 나쁜 사람이 아님을 구글에 증명했고,
고객의 ID (Authorization Code)를 통해
원하는 고객의 정보를 가져올 수 있게 된다.

추후에 가져올려면 이 토큰값을 서버에 저장해야게쪄?


4. API 호출

이제 우리(업비트)는 고객을 거치지 않고 직접 정보를 가져올 수 있다.
API에 담아서 보내는 정보는,

Access Token: 고객의 식별코드
Client Id: 우리(업비트)의 식별코드
Client Secret: 우리(업비트)의 비밀번호


5. Refresh Token

Access Token은 만료 기간이 있기 때문에 기간이 지나면 인증을 안해준다. (치사해)
이 때, Refresh Token을 같이 발행해서 Access Token을 다시 발행할 수 있게 해준다.