티스토리 뷰

프론트엔드/CS

[OAuth 2.0] 01. OAuth란?

yyoujg 2022. 10. 12. 09:28

나의 서비스 mine (opentutorials.org)

사용자 User

나의 서비스가 연동하고자 하는 그들의 서비스 Their (Google, Facebook, Twitter...)

 

예를 들어 사용자가 우리 서비스에 접속해서 글을 쓰거나 봤을 때 나의 서비스가 사용자를 대신해서 구글과 같은 서비스의 캘린더에 날짜를 기록한다거나 또는 Facebook에 글을 쓰거나 본 것을 공유하는 등을 하기 위해서는 우리가 사용자로부터 사용자가 사용하고 있는 그들의 서비스에 접근할 수 있도록 허가를 받아야 합니다.

 

가장 쉬운 방법은 그들의 서비스에 있는 사용자의 ID와 Password를 사용자로부터 전달받아서  우리가 사용자의 ID와 비밀번호를 기억하고 있다가 실제로 그들의 서비스에 접속할 때 ID와 Password를 이용합니다.

 

그것은 아주 간단하고 그들의 서비스의 모든 기능을 다 사용할 수 있기 때문에 아주 강력한 방법입니다. 

하지만 이것은 상당히 위험한 방법입니다. 사용자 입장에서는 자신의 구글, 페이스북과 같은 서비스의 ID와 Password를 처음 보는 서비스에 맡겨야 하기 때문에 처음 보는 서비스를 믿을 수 없습니다. 그리고 자기가 가지고 있는 ID와 Password를 그 서비스에서만 사용하는 것이 아니라 자기가 사용하는 거의 모든 서비스에 똑같은 ID와 Password를 사용하는 사용자들이 많기 때문에 그 정보가 유출되게 되면 굉장한 보안 사고가 일어나게 됩니다.

 

뿐만 아니라 우리에게도 좋은 일이 아닙니다. 사용자에게 생명줄과 같은 아이디 비밀번호를 우리가 맡고 있기 때문에 이것이 유실됐을 때 겪게 될 고초들은 상상만 해도 끔찍합니다.

또 그들의 서비스 입장에서도 자신들의 사용자의 ID와 Password를 신뢰할 수 없는 제 3자가 가지고 있다는 것은 매우 불만족스러운 상황일 것입니다.

 

바로 이런 상황에서 우리를 구원해줄 도구, 그것이 바로 oAuth입니다. oAuth를 이용하면 훨씬 더 안전하게 우리가 만든 서비스를 그들의 서비스와 상호작용할 수 있게 됩니다. 

 

oAuth를 이용하면 이전에 우리가 그들의 서비스의 ID와 Password를 나의 서비스가 가지고 있었는데 이제 대신에 유저의 요청에 의해서 그들의 서비스가 ID와 Password 대신에 accessToken이라고 하는 일종의 비밀번호를 발급합니다.

 

그리고 accessToken는 첫  번째, 그들의 서비스의 ID와 Password가 아니라는 장점이 있고 ,

두 번째, 그들의 서비스가 가지고 있는 모든 기능이 아니라, 그 중에 나의 서비스가 꼭 필요한 필수적인 기능만 부분적으로 허용하는 비밀번호 입니다.

그래서 그들의 서비스의 accessToken을 우리가 oAuth를 통해서 획득한 다음에 그 access Token을 통해서 그들의 서비스에 접근해서 데이터를 가져오고 수정하고 생성하고, 삭제하는 작업을 할 수 있습니다. 이것을 가능하게 해주는 기술이 바로 oAuth이고 oAuth를 통해서 우리는 accessToken를 얻어낼 수 있습니다. 

 

oAuth의 이러한 특징을 이용한다면 아예 회원들의 아이디와 비밀번호를 처음부터 보관하지 않고 회원을 식별할 수 있는 기능을 구현할 수 있습니다.

'프론트엔드 > CS' 카테고리의 다른 글

[OAuth 2.0] 03. 등록  (1) 2022.10.13
[OAuth 2.0] 02. 역할  (0) 2022.10.12
TCP / IP  (0) 2022.09.17
SSR / CSR / SSG 와 TTV / TTI  (0) 2022.09.15
HTTP와 HTTPS의 차이점  (0) 2022.09.14
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함