# OAuth, OpenID Connect 및 SAML 의 차이점

INFO

인증 서버를 개발하면서 OpenID Connect 와 OAuth 에 대해 자료를 정리하고 있습니다.
참고하기 위해 okta (opens new window)문서 (opens new window)를 번역해보았습니다.

데이터를 공격하는 방법만큼 데이터를 안전하게 유지하는 방법도 많습니다. 다중 요소 인증(Multi Facto Auth)에서 단일 로그온 및 내부 방화벽에 이르기까지 다양한 옵션을 사용할 수 있습니다. 개발자와 IT 전문가의 경우, 데이터 및 ID 보안을 유지하는 방법을 빨리 선택해야 합니다. 연합 ID를 안전하게 유지하기 위해 구현하기 위해 어떤 표준을 선택해야 할까요?

결정이 항상 간단한 것은 아닙니다. 많은 사람들이 OAuth 2.0, OpenID Connect 와 SAML 의 서로 다른 페더레이션 구조 때문에 이것들을 구별하는데 어려움을 겪고 있습니다. 이 문서에서는 이러한 표준의 의미와 차이점을, 그리고 언제 무엇을 사용하면 좋을지 알아봅니다.

SAML 과 OAuth 를 더 심도있게 분석한 다른 기사 (opens new window)도 있으니 관심있으면 살펴보세요.

# 표준간의 차이점

이러한 세가지 표준들의 가장 중요한 차이점은, OpenID Connect 와 SAML 이 연합 인증(federated authentication)을 위한 업계 표준인데 반해 OAuth 2.0 은 보호된 리소스(어플리케이션이나 파일들)에 대한 권한을 인가(authorization)하기 위한 프레임워크라는 점입니다.

OpenID Connect 또는 SAML 을 독립적으로 사용함으로써 기업은 사용자 인증을 구현하고 SSO(Single Sign-On)을 배포할 수 있습니다.

  • OpenID Connect 는 OAuth 2.0 프로토콜을 기반으로 하며, ID Token 이라고 하는 JSON Web Token(JWT)을 사용하여 OAuth 2.0 이 기본으로 제공하지 않는 부분인 scopes 나 Endpoint Discovery 와 같은 영역을 표준화합니다. OpenID Connect는 특히 사용자 인증에 집중하고 있으며 웹사이트나 모바일 앱의 사용자 로그인을 구현하기 위해 널리 사용됩니다.
  • SAML은 OAuth 와 독립적이며 인증을 위해 JWT 가 아닌 XML SAML 포맷의 메시지를 교환하는 방식을 사용합니다. 엔터프라이즈 고객이 단일 로그인을 사용하여 여러개의 어플리케이션에 로그인할 수 있도록 지원하는 데 보다 일반적으로 사용됩니다.

# OAuth 2.0 vs OpenID Connect vs SAML

조직이 어떤 구조를 사용해야하는가? 하는 질문이 아니라 각각의 표준이 어떤 용도로 사용되는가? 라는 점을 기억하세요. 강력한 ID 솔루션은 기업이 보호해야하는 운영 유형에 따라 이 세가지 구조를 사용하여 서로 다른 목표를 달성합니다.

이러한 사용 사례는 다음과 같습니다.

OAuth 2.0:
새 애플리케이션에 가입하고 Facebook이나 전화 연락처를 통해 새 연락처를 자동으로 수집할 수 있도록 동의한 적이 있다면, 아마도 OAuth 2.0을 사용한 것입니다. 이 표준은 안전한 위임 액세스를 제공합니다. 즉, 응용프로그램이 자격 증명을 공유하지 않고도 사용자를 대신하여 서버에서 작업을 수행하거나 리소스에 액세스할 수 있습니다. ID 제공자(IdP)가 사용자의 승인으로 타사 응용 프로그램에 토큰을 발급하도록 허용함으로써 이 작업을 수행할 수 있습니다.

OpenID Connect:
Google을 사용하여 YouTube 같은 어플리케이션에 로그인했거나, Facebook 을 이용해서 온라인 쇼핑 서비스에 로그인했다면 이 인증 옵션에 익숙한 것입니다. OpenID Connect는 조직에서 사용자를 인증하는 데 사용하는 개방형 표준입니다. IdP는 사용자가 로그인 정보를 공유하지 않고도 IdP에 로그인한 다음 다른 웹 사이트와 앱에 액세스할 수 있도록 이 기능을 사용합니다.

SAML:
아마도 업무 환경에서 SAML 인증을 경험한 적이 더 많을 것입니다. 회사 인트라넷 또는 IdP에 로그인한 다음 자격 증명을 다시 입력하지 않고도 Salesforce, Box 또는 Workday와 같은 수많은 추가 서비스에 액세스할 수 있습니다. SAML은 IdP와 서비스 공급자 간에 인증 및 인증 데이터를 교환하여 사용자의 ID와 사용 권한을 확인한 다음 서비스에 대한 액세스를 허용하거나 거부하기 위한 XML 기반 표준입니다.

엔터프라이즈 서비스는 OAuth 2.0, OpenID 및 SAML과 같은 웹 프레임워크와 프로토콜에 의존하여 구조와 보안을 연합 인증(Federated Identity)으로 구현합니다. 각 표준을 언제 사용해야 하는지 아는 것이 조직의 데이터를 보호하는 데 있어 중요합니다.