OAuth, OpenID Connect, SAML의 특징 및 차이점

OAuth, OpenID Connect, SAML의 특징 및 차이점

OAuth, OpenID Connect, SAML의 특징 및 차이점

데이터 공격 방법이 많듯이 데이터를 안전하게 보호할 방법도 많습니다. MFA (Multi-factor Authentication, 다중 요소 인증)에서부터 SSO (Single Sign-On), 온프레미스 (On-premise) 방화벽에 이르기까지 다채로운 옵션이 제공됩니다. 개발자와 IT 전문가들에게는 페더레이션된 아이덴티티를 안전하게 보호할 수 있는 표준을 선정하는 것이 중요합니다.

세 가지 표준이 각각 페더레이션 프로세스를 구조화하기 때문에 많은 이들이 아직도 OAuth 2.0과 OpenID Connect, SAML(Security Assertion Markup Language)을 구분하는 데 어려움을 겪고 있습니다. 이 글에서는 세 가지 표준의 의미와 차이점, 그리고 기업에서 각 표준을 사용하는 목적에 대해 자세히 알아보겠습니다.

또한 SAML과 OAuth의 비교에 관한 글을 통해 두 인증 프로세스의 정의 및 차이점도 확인하실 수 있습니다.

각 표준의 차이점

세 가지 표준의 가장 큰 차이점은 OAuth 2.0이 애플리케이션이나 파일과 같이 보호를 받는 리소스에 대한 권한 인증을 제어하는 프레임워크인 반면 OpenID Connect와 SAML은 페더레이션 인증에 관한 업계 표준이라는 데 있습니다. 따라서 OAuth 2.0은 근본적으로 나머지 두 표준과 다른 상황에서 사용되지만(아래 예시 참조), OpenID Connect나 SAML과 함께 사용되기도 합니다.

기업은 OpenID Connect나 SAML 중 하나를 사용하여 사용자 인증을 달성하고 SSO(Single Sign-On)를 구축할 수 있습니다. 두 표준 모두 로그인을 처리하지만 장단점이 다릅니다.

  • OpenID Connect는 OAuth 2.0 프로토콜을 기반으로 개발되어 ID 토큰이라고 불리는 JWT(JSON Web Token)를 사용해 범위, 엔드포인트 탐색 등 OAuth 2.0에서 선택 영역을 표준화합니다. 특히 사용자 인증에 초점을 맞추기 때문에 일반 웹사이트 및 모바일 앱에서 사용자 로그인을 활성화하는 데 널리 사용됩니다.
  • SAML은 OAuth와 관련이 없으며, JWT와 달리 메시지 교환을 통해 XML SAML 형식으로 인증합니다. 이 표준은 기업 사용자가 단일 로그인을 사용해 다수의 애플리케이션에 로그인하는 데 주로 사용됩니다.

OAuth 2.0, OpenID Connect, SAML의 비교

중요한 것은 이것이 기업에서 사용해야 하는 구조에 대한 문제가 아니라 각 표준의 배포 시기에 대한 문제라는 것입니다. 강력한 인증 솔루션이라면 세 가지 구조를 보호가 필요한 운영에 따라 각각 다른 목적으로 사용합니다. 

OAuth 2.0: 예를 들어 새로운 애플리케이션에 가입하면서 Facebook이나 휴대전화 연락처를 통해 새로운 연락처를 자동으로 제공하는 데 동의했다면 OAuth 2.0을 사용했을 가능성이 높습니다. 이 표준은 안전한 위임 액세스를 제공하기 때문입니다. 다시 말해서 애플리케이션이 자격 증명을 공유하지 않고도 사용자를 대신해 서버에서 리소스에 액세스할 수 있습니다. 이것이 가능한 이유는 아이덴티티 공급업체(IdP)가 사용자의 승인을 받아 타사 애플리케이션에 토큰을 발행할 수 있기 때문입니다.

OpenID Connect: Google을 사용해 YouTube 등의 애플리케이션에 로그인하거나, Facebook을 사용해 온라인 쇼핑 카트에 로그인한다면 이러한 인증 옵션에 대해 잘 알고 있는 셈입니다. OpenID Connect는 사용자 인증에 사용되는 개방형 표준입니다. IdP가 이 표준을 사용하는 이유는 사용자가 IdP에 로그인한 후 다시 로그인하거나 로그인 정보를 공유하지 않고도 다른 웹사이트와 앱에 액세스할 수 있기 때문입니다. 

SAML: SAML 인증은 다른 곳보다 업무 환경에서 경험했을 가능성이 높습니다. 예를 들어 기업 인트라넷이나 IdP에 로그인한 후 자격 증명을 다시 입력하지 않고도 Salesforce, Box 또는 Workday와 같은 별도의 서비스에 액세스할 수 있기 때문입니다. SAML는 IdP와 서비스 공급업체 사이에서 인증 및 권한 인증 데이터를 교환하는 데 사용되는 XML 기반 표준으로, 사용자의 아이덴티티와 권한을 확인한 후 서비스에 대한 액세스를 허용하거나 거부합니다.

기업은 OAuth 2.0, OpenID, SAML 등의 웹 프레임워크와 프로토콜을 사용해 페더레이션된 아이덴티티를 구조화하여 안전하게 보호합니다. 각 표준의 사용 시점을 파악하는 것은 조직의 데이터를 철저히 보호하기 위한 핵심 단계입니다.