본문 바로가기

코딩/코딩에서 중요한 개념들

Oauth2

반응형

 

코딩을 하면서 나는 그동안 세상을 단순하게 산 것 같았다. 

 

로그인, 회원가입 관련 서비스들이 모두 다 똑같은 것이라는 생각을 한 것이 그것이다. 

 

스타트업에서 근무 했을 때도, 회원가입- 로그인 로직은 어려웠다. 

 

이번에 supabase를 공부할 때 드디어 회원가입- 로그인에 관한 내용을 조금이나마 이해 할 수 있었다. 

 

그 중에 Oatuh2 에 대해 적어보려고 한다. 

 

 

Oauth2란?

 

 

기존에 이메일 로그인 방식, 그리고 여러 서비스의 API를 연동해서 유저의 정보를 공유하는 방식은 꽤 위험했다. 

 

A라는 작은 스타트업이 페북과 같은 대형 서비스 API를 가져오는 과정에서 페북에 있는 유저들의 중요한 개인정보도 가져왔다. 

 

해커들은 A 스타트업을 공격하면 쉽게 해당 유저의 중요한 개인 정보를 가져 올 수 있었다. 

 

이러한 위험한 상황을 막고자 나온 것이 Oauth 개념이다. 1버전은 모바일에 관해서 큰 오류가 있었고 2012년 Oauth2가 나오면서 

 

널리 사용하게 되었다.

 

즉 Oauth2 는  우리가 흔히 사용하고 있는 소셜 로그인의 근간이 되는 기술이다. 

 

Oauth2를 쉽게 정의 하면 "웹사이트의 정보에 접근 권한을 부여하는 것" 이다. 

 

기존에는 유저의 정보를 직접 내주었다면 지금은  유저의 가벼운 몇몇 정보를 조회까지만 가능 한 것이다. 소셜로그인을 제공하는 서비스들은 일단 대형서비스이다. Google, Apple, Githup,Meta 등등 보안과 관련해서는 일반 회사와 수준이 다를 것이다. 그렇기에 대형 서비스들에 가입 되어 있는 유저들의 가벼운 정보를 쉽게 접근 할 수 있다. 유저의 Email, 생일, 남녀유무, 등등이 그것이다. 

 

작은 스타트업이나, 개인적인 서비스를 진행하고 있는 개발자들에게는 해당 유저를 특정 지을 수 있는 정보만 있어도 충분하다. 

 

 

Oauth2 의 구성

 

Oauth2의 구성은 다음과 같다. 

 

구글로 예를 들자면 

Resource Owner - 유저

Client - 나의 서비스

 

Authorization Server - 구글 인증서버

Resource Server - 구글 API 서버

 

Oauth2의 진행 방식 

 

 

1. Client인 내 서비스가 유저에게 로그인 요청을 한다. 

2. Resource Owner인 유저는 로그인을 진행한다. (소셜 로그인)

3. Client인 내 서비스는 해당 정보를 가지고 Authization Server 인 구글 인증서버에   인증을 요청한다. 

4. Authization Sever는 Client인 내 서비스에게 해당 유저의 토큰을 발행한다. 

5. Client인 내 서비스는 해당 유저의 토큰을 들고 Resource Server 인 구글 API 서버에게 해당 유저의 정보를 요청한다. 

6. Resource Server인 구글 API 서버는 해당 토큰을 확인하고 해당 유저의 정보를 제공한다. 

 

 

 

Oauth2 구글 로그인을 통해서 해당 유저의 닉네임과 프로필 사진을 받아올 수 있다. 

 

 

 

 손으로 끄적일 때가 머릿속에 오래 남는 나

 

 

 

 

 

 

출처 

https://hudi.blog/oauth-2.0/

 

OAuth 2.0 개념과 동작원리

2022년 07월 13일에 작성한 글을 보충하여 새로 포스팅한 글이다. OAuth 등장 배경 우리의 서비스가 사용자를 대신하여 구글의 캘린더에 일정을 추가하거나, 페이스북, 트위터에 글을 남기는 기능을

hudi.blog

https://velog.io/@seeh_h/OAuth-%EC%9B%90%EB%A6%AC-%EB%9C%AF%EC%96%B4%EB%B3%B4%EA%B8%B0

 

OAuth 원리 뜯어보기

서비스 개발을 하다 보면 소셜 로그인 기능을 한 번쯤 구현해 보게 되는데요. 요즘에는 대부분 서비스가 제공하는 것 같습니다. 소셜 로그인의 근간이 되는 기술인 OAuth 기술 스펙에 대해 살펴보

velog.io

 

728x90
반응형