본문 바로가기

Programing

Auth 2.0이란

 

OAuth 2.0에 대해 알아보려고 해요. 요즘 많은 웹 서비스에서 OAuth 2.0을 사용하고 있는데, 이게 도대체 무엇인지, 왜 필요한지, 그리고 어떻게 작동하는지에 대해 자세히 설명해드릴게요.

OAuth 2.0의 정의

OAuth 2.0은 인증을 위한 개방형 표준 프로토콜이에요. 이 프로토콜은 사용자가 자신의 계정 정보를 직접 제공하지 않고도 다른 서비스에 대한 접근 권한을 안전하게 부여할 수 있도록 도와줘요. 예를 들어, 여러분이 어떤 앱에서 소셜 미디어 계정을 사용해 로그인할 때, OAuth 2.0이 그 과정을 지원하는 거죠.

OAuth 2.0의 필요성

왜 OAuth 2.0이 필요할까요? 사용자가 여러 서비스에 로그인할 때마다 비밀번호를 입력하는 것은 매우 불편하죠. 또한, 비밀번호를 여러 곳에 입력하는 것은 보안상 위험할 수 있어요. OAuth 2.0은 이러한 문제를 해결해주고, 사용자가 자신의 정보를 안전하게 보호할 수 있도록 도와줘요.

OAuth 2.0의 작동 원리

OAuth 2.0은 클라이언트, 리소스 소유자, 인증 서버, 리소스 서버의 네 가지 주요 구성 요소로 이루어져 있어요. 사용자가 클라이언트를 통해 인증 서버에 요청을 보내면, 인증 서버는 사용자의 권한을 확인하고, 클라이언트에게 접근 토큰을 발급해줘요. 이 토큰을 사용해 클라이언트는 리소스 서버에 접근할 수 있게 되는 거죠.

OAuth 2.0의 주요 구성 요소

  1. 리소스 소유자 : 사용자를 의미해요. 사용자가 자신의 정보를 보호하고 싶어하는 주체죠.
  2. 클라이언트 : 사용자가 접근하고자 하는 애플리케이션이에요.
  3. 인증 서버 : 사용자의 인증을 담당하는 서버로, 접근 토큰을 발급해줘요.
  4. 리소스 서버 : 실제로 사용자가 접근하고자 하는 데이터나 서비스를 제공하는 서버예요.

OAuth 2.0의 인증 흐름

OAuth 2.0의 인증 흐름은 다음과 같아요. 사용자가 클라이언트를 통해 로그인 요청을 하면, 클라이언트는 인증 서버로 리디렉션해요. 사용자가 인증을 완료하면, 인증 서버는 클라이언트에게 접근 토큰을 발급해주고, 클라이언트는 이 토큰을 사용해 리소스 서버에 접근하게 되는 거죠. 이 과정은

이미지 출처

에서 자세히 볼 수 있어요.

OAuth 2.0의 장점과 단점

장점으로는 사용자가 비밀번호를 직접 입력하지 않아도 되므로 보안이 강화된다는 점이 있어요. 또한, 여러 서비스에 쉽게 접근할 수 있게 해주죠. 하지만 단점으로는, 만약 접근 토큰이 유출되면 보안에 큰 위협이 될 수 있다는 점이 있어요. 따라서 토큰 관리가 매우 중요해요.

OAuth 2.0을 사용하는 서비스 예시

많은 서비스들이 OAuth 2.0을 사용하고 있어요. 예를 들어, 페이스북, 구글, 트위터 등에서 소셜 로그인 기능을 제공할 때 이 프로토콜을 활용하죠. 사용자가 페이스북 계정으로 로그인하면, 페이스북이 인증 서버 역할을 하게 되고, 사용자는 자신의 비밀번호를 직접 입력하지 않고도 다른 서비스에 접근할 수 있게 되는 거예요.

이미지 출처

이제 OAuth 2.0의 흐름을 좀 더 구체적으로 살펴볼까요? 사용자가 PAYCO와 같은 서비스를 이용할 때의 흐름을

이미지 출처

에서 확인할 수 있어요. 사용자가 ID와 비밀번호를 입력하고, 인증 서버가 이를 확인한 후 접근 토큰을 발급하는 과정을 보여주고 있죠.

마지막으로, OAuth 2.0의 인증 흐름을

이미지 출처

이미지 출처

에서 확인할 수 있어요. 이 흐름을 통해 사용자가 어떻게 인증을 받고, 클라이언트가 리소스 서버에 접근하는지를 시각적으로 이해할 수 있답니다.

이렇게 OAuth 2.0에 대해 알아보았어요. 이 프로토콜은 현대 웹 서비스에서 매우 중요한 역할을 하고 있으니, 앞으로도 계속 주목해보세요!

 

이런 자료를 참고 했어요.

[1] 티스토리 - OAuth 2.0 개념 총 정리 (https://charming-kyu.tistory.com/36)

[2] hudi.blog - OAuth 2.0 개념과 동작원리 (https://hudi.blog/oauth-2.0/)

[3] 깃짱코딩 - [OAuth] OAuth 2.0의 개념과 과정 - 깃짱코딩 (https://engineerinsight.tistory.com/163)

[4] Inpa Dev 👨‍💻 - OAuth 2.0 개념 - 그림으로 이해하기 쉽게 설명 (https://inpa.tistory.com/entry/WEB-%F0%9F%93%9A-OAuth-20-%EA%B0%9C%EB%85%90-%F0%9F%92%AF-%EC%A0%95%EB%A6%AC)

'Programing' 카테고리의 다른 글

CAN 통신이란?  (0) 2024.12.02
시퀀스 그리는 방법  (1) 2024.12.01
SSO 종류 및 장단점  (0) 2024.11.29
주니어 개발자를 위한 커리어 로드맵  (1) 2024.11.28
프로그래밍 언어 비교  (1) 2024.11.26