WEB2 - OAuth 2.0 : 1.수업소개

·2025년 2월 1일

필수영상

목록 보기
20/40

WEB2 - OAuth 2.0 : 1.수업소개

나의 서비스가 있고 내 서비스를 사용하는 사용자가 있다. 그리고 또 하나는 나의 서비스가 연동하려고 하는 구글이나 페이스북 서비스가 있다. 예를 들어서 사용자가 내 서비스에 접속해서 글을 썼는데, 내 서비스가 사용자를 대신해서 구글 서비스에 캘린더에 날짜를 기록한다든지 등 이런걸 하기 위해서는 사용자의 아이디와 비밀번호를 기억하고 있다가 이용하는 방법이 있다.
가장 쉬운 방법이지만 보안 때문에 당연히 안되겠죠?

바로 이러한 상황에서 사용할 수 있는 기술이 OAuth 입니당.

OAuth(Open Authorization)

사용자가 비밀번호를 직접 제공하지 않고도 타사 애플리케이션이 사용자의 정보를 안전하게 접근할 수 있도록 해주는 인증 및 권한 부여 프로토콜. 주로 웹 서비스나 모바일 애플리케이션에서 사용되고 대표적인 예로 Google 로그인, Facebook 로그인, GitHub 로그인 등이 있다.

  • 사용자는 타사 애플리케이션(클라이언트)에게 자신의 계정 정보를 직접 제공하지 않음.
  • 대신, 권한 부여 서버(Authorization Server)가 발급하는 액세스 토큰(Access Token)을 통해 인증 및 권한을 위임.
  • 애플리케이션이 액세스 토큰을 사용해서 API 요청을 하면 권한이 허용된 범위 내에서만 데이터 접근 가능.

OAuth를 이용하면 훨씬 더 안전하게 우리가 만든 서비스를 다른 서비스와 상호작용할 수 있다.
또한 OAuth의 특징을 이용한다면 아예 회원들의 아이디와 비밀번호를 처음부터 보관하지 않고 회원을 식별할 수 있는 기능을 구현해낼 수 있다!

바로 요렇게 생긴 로그인 기능들이다. 이러한 것들을 "Federated Identity" (연합 아이덴티티)라고 하는데, 이것에 가장 기반되어 있는 기술이 바로 OAuth.

Federated Identity (연합 아이덴티티)

사용자가 하나의 계정으로 여러 시스템 또는 서비스에 로그인할 수 있도록 해주는 개념.
각 서비스가 개별적인 사용자 계정을 만들 필요 없이 중앙 인증 기관(IdP, Identity Provider)이 사용자 인증을 처리.

대표적인 예시:

Google 계정으로 로그인 → 여러 웹사이트나 앱에서 Google 계정으로 로그인 가능.

0개의 댓글