OAuth는 Open Authorization의 약자로, IETF 표준에 기반을 둔 무료 오픈 소스 프로토콜입니다. 이 표준은 누구나 사용할 수 있도록 Open Web Foundation에서 라이선스를 제공합니다. 현재 OAuth 프레임워크의 버전은 OAuth2이며, 곧 OAuth 2.1이라는 새로운 버전이 출시될 예정입니다.
OAuth2는 사용자 데이터를 제3자 애플리케이션이 접근할 수 있도록 권한을 부여하는 프로세스를 제공합니다. 이 권한 부여 프로세스는 인증(Authorization) 또는 위임된 인증(Delegated Authorization)으로 불립니다. 이는 사용자가 자신의 비밀번호를 제공하지 않고도 다른 애플리케이션에 자신의 데이터를 접근할 수 있도록 승인하는 과정입니다.
OAuth2는 웹 세계에서 상상할 수 있는 모든 종류의 애플리케이션과 시나리오를 지원합니다. 애플리케이션의 유형에 상관없이, OAuth2 프레임워크 내에는 다양한 그랜트 플로우(Grant Flow)가 존재합니다.
예를 들어:
이처럼 OAuth2는 다양한 유형의 통신 시나리오에 대해 적절한 해결책을 제공합니다.
OAuth2는 인증 서버(Authorization Server)라는 별도의 컴포넌트를 통해 인증 및 권한 부여 로직을 분리할 것을 권장합니다. 이 인증 서버는 클라이언트로부터 요청을 받아들여, 성공적인 인증 후 액세스 토큰(Access Token)을 발급합니다. 조직 내의 모든 애플리케이션은 이 인증 서버와 통신하여 로그인 작업을 수행할 수 있습니다.
OAuth2는 사용자가 제3자 애플리케이션과 자신의 데이터를 공유할 때, 자신의 자격 증명을 노출하지 않도록 합니다. 대신, 인증 서버는 제3자 애플리케이션에 액세스 토큰을 발급하여, 제한된 권한으로 사용자의 데이터에 접근할 수 있도록 합니다.
OAuth2 프레임워크에서는 사용자에게 다양한 권한 수준의 액세스 토큰을 발급할 수 있습니다. 예를 들어, 호텔에서 체크인할 때 제공받는 방 카드와 같이, 사용자는 자신의 방에만 접근할 수 있는 제한된 권한의 액세스 카드를 받을 수 있습니다. 하지만, 호텔 직원은 모든 방에 접근할 수 있는 더 높은 권한의 카드를 받을 수 있습니다.
이처럼 OAuth2는 비즈니스 요구사항에 따라 다양한 수준의 액세스 권한을 부여할 수 있는 유연성을 제공합니다.
이번 강의에서는 OAuth2에 대한 기본 개념과 주요 장점들에 대해 설명드렸습니다. 다음 강의에서는 OAuth2가 어떻게 동작하는지에 대해 더 자세히 알아보겠습니다.
감사합니다, 다음 강의에서 뵙겠습니다. 안녕히 계세요!