OAuth2.0

날아올라돼지야·2024년 8월 30일
0

OAuth2란 무엇인가?

OAuthOpen Authorization의 약자로, IETF 표준에 기반을 둔 무료 오픈 소스 프로토콜입니다. 이 표준은 누구나 사용할 수 있도록 Open Web Foundation에서 라이선스를 제공합니다. 현재 OAuth 프레임워크의 버전은 OAuth2이며, 곧 OAuth 2.1이라는 새로운 버전이 출시될 예정입니다.

OAuth2는 사용자 데이터를 제3자 애플리케이션이 접근할 수 있도록 권한을 부여하는 프로세스를 제공합니다. 이 권한 부여 프로세스는 인증(Authorization) 또는 위임된 인증(Delegated Authorization)으로 불립니다. 이는 사용자가 자신의 비밀번호를 제공하지 않고도 다른 애플리케이션에 자신의 데이터를 접근할 수 있도록 승인하는 과정입니다.


OAuth2의 주요 장점

1. 다양한 애플리케이션과 시나리오 지원

OAuth2는 웹 세계에서 상상할 수 있는 모든 종류의 애플리케이션과 시나리오를 지원합니다. 애플리케이션의 유형에 상관없이, OAuth2 프레임워크 내에는 다양한 그랜트 플로우(Grant Flow)가 존재합니다.

예를 들어:

  • 두 개의 백엔드 서버 간의 통신을 위해 클라이언트 자격 증명 그랜트 플로우(Client Credentials Grant Flow)가 있습니다.
  • 사용자 인터페이스(UI) 애플리케이션이나 모바일 애플리케이션이 백엔드 서버와 통신할 때 사용하는 암묵적 그랜트 플로우(Implicit Grant Flow)가 있습니다.
  • IoT 장치, 콘솔, 스마트 TV와 같은 장치들 간의 통신을 위한 그랜트 플로우도 존재합니다.

이처럼 OAuth2는 다양한 유형의 통신 시나리오에 대해 적절한 해결책을 제공합니다.

2. 인증 로직의 분리

OAuth2는 인증 서버(Authorization Server)라는 별도의 컴포넌트를 통해 인증 및 권한 부여 로직을 분리할 것을 권장합니다. 이 인증 서버는 클라이언트로부터 요청을 받아들여, 성공적인 인증 후 액세스 토큰(Access Token)을 발급합니다. 조직 내의 모든 애플리케이션은 이 인증 서버와 통신하여 로그인 작업을 수행할 수 있습니다.

3. 제3자 애플리케이션과의 안전한 데이터 공유

OAuth2는 사용자가 제3자 애플리케이션과 자신의 데이터를 공유할 때, 자신의 자격 증명을 노출하지 않도록 합니다. 대신, 인증 서버는 제3자 애플리케이션에 액세스 토큰을 발급하여, 제한된 권한으로 사용자의 데이터에 접근할 수 있도록 합니다.

4. 다양한 권한 수준 지원

OAuth2 프레임워크에서는 사용자에게 다양한 권한 수준의 액세스 토큰을 발급할 수 있습니다. 예를 들어, 호텔에서 체크인할 때 제공받는 방 카드와 같이, 사용자는 자신의 방에만 접근할 수 있는 제한된 권한의 액세스 카드를 받을 수 있습니다. 하지만, 호텔 직원은 모든 방에 접근할 수 있는 더 높은 권한의 카드를 받을 수 있습니다.

이처럼 OAuth2는 비즈니스 요구사항에 따라 다양한 수준의 액세스 권한을 부여할 수 있는 유연성을 제공합니다.


결론

이번 강의에서는 OAuth2에 대한 기본 개념과 주요 장점들에 대해 설명드렸습니다. 다음 강의에서는 OAuth2가 어떻게 동작하는지에 대해 더 자세히 알아보겠습니다.

감사합니다, 다음 강의에서 뵙겠습니다. 안녕히 계세요!

profile
무슨 생각하며 사니

0개의 댓글