728x90
반응형

OAuth 2.0이란?

OAuth 2.0서로 다른 서비스 간에 안전하게 인증과 권한 부여를 할 수 있게 해주는 표준 프로토콜입니다. 이를 통해 사용자의 민감한 정보를 직접 공유하지 않고도 다른 서비스의 기능을 이용할 수 있습니다.

 

 

OAuth 2.0이 필요한 이유

예를 들어, '우아한 캘린더'라는 서비스를 만들었다고 가정해봅시다. 이 서비스는 구글 캘린더와 연동하여 일정을 관리하려고 합니다. OAuth 2.0 없이는 다음과 같은 문제가 발생할 수 있습니다

  • 사용자의 구글 아이디와 비밀번호를 직접 받아야 함
  • 보안 위험 증가
  • 불필요한 접근 권한 발생

OAuth 2.0을 사용하면 이러한 문제를 해결할 수 있습니다.

 

 

OAuth 2.0의 주요 개념

  • Resource Owner: 사용자
  • Client: 우리가 만든 서비스 (예: 우아한 캘린더)
  • Authorization Server: 인증을 담당하는 서버 (예: 구글)
  • Resource Server: 실제 데이터를 제공하는 서버 (예: 구글 캘린더)

OAuth 2.0의 동작 과정

  1. 사용자가 우아한 캘린더에서 "구글 로그인" 버튼 클릭
  2. 구글의 로그인 페이지로 리다이렉트
  3. 사용자가 구글에 직접 로그인
  4. 구글이 우아한 캘린더에 권한 코드 전달
  5. 우아한 캘린더가 권한 코드로 액세스 토큰 요청
  6. 구글이 액세스 토큰 발급
  7. 우아한 캘린더가 액세스 토큰으로 구글 캘린더 데이터 접근

 

OAuth 2.0의 장점

  • 보안 강화: 사용자의 비밀번호를 직접 다루지 않음
  • 권한 제한: 필요한 기능에만 접근 가능
  • 사용자 경험 개선: 별도의 회원가입 없이 기존 계정으로 로그인 가능

 

OAuth 2.0 구현 시 주의사항

  • HTTPS 사용 필수
  • 클라이언트 ID와 시크릿 안전하게 보관
  • Redirect URI 정확히 설정

 

소셜 로그인과 OAuth 2.0

OAuth 2.0은 주로 소셜 로그인 구현에 사용됩니다. 하지만 OAuth 2.0은 인가(Authorization)를 위한 프로토콜이며, 인증(Authentication)을 위해서는 OpenID Connect라는 추가적인 레이어가 사용됩니다.

결론: OAuth 2.0은 현대 웹 서비스에서 필수적인 보안 프로토콜입니다. 이를 통해 사용자의 정보를 안전하게 보호하면서도 다양한 서비스 간의 연동을 가능하게 합니다. 개발자로서 OAuth 2.0의 개념과 흐름을 이해하는 것은 매우 중요합니다.

 

출처

https://www.youtube.com/watch?v=Mh3LaHmA21I

 

728x90
반응형

+ Recent posts