본문 바로가기

IT

SAML, OAuth 2.0 (OpenID Connect) 주요 차이점

반응형

SAML과 OAuth 2.0은 모두 인증 및 권한 부여를 처리하는 방법이나, 둘의 목적과 사용 방법엔 약간의 차이가 있다.

SAML (Security Assertion Markup Language)

 SAML은 이름에서도 알 수 있듯이 XML 기반의 표준이다. SAML은 주로 '싱글 사인온'(SSO) 서비스에서 사용되며, 이는 사용자가 한 번 로그인하면 여러 다른 시스템이나 서비스에도 자동으로 로그인할 수 있는 방식을 말한다.

SAML의 동작 원리를 간단히 설명하면 다음과 같다.

 

 1. 사용자가 서비스 제공자(SP, Service Provider)에 접근

 2. SP는 사용자를 신원 제공자(IDP, Identity Provider)로 리디렉션

 3. IDP는 사용자를 인증하고, SAML 응답(즉, XML 형식의 문서)을 생성하여 SP로 전송

 4. SP는 이 응답을 검증하고 사용자를 인증

OAuth 2.0

 OAuth 2.0은 어플리케이션 간에 권한을 부여하는 프레임워크로 주로 '타사 애플리케이션'이 사용자의 동의를 얻어 사용자 대신에 서비스에 접근할 수 있게 하는 데 사용된다.

예를 들어, 페이스북이나 구글 계정을 사용하여 다른 웹사이트에 로그인하는 경우가 OAuth를 사용하는 경우이며, 사용자는 직접적인 로그인 정보를 타사에 제공하지 않지만, 페이스북이나 구글 같은 신뢰할 수 있는 서비스를 통해 인증을 진행하고, Access Token을 제공받아 권한을 획득할 수 있다.

 

주요 차이점

결국 두 기술은 모두 사용자의 데이터를 보호하면서, 사용자가 여러 서비스를 쉽게 사용할 수 있도록 돕는 방법을 제공하는데, SAML은 사용자가 여러 서비스에 한 번에 로그인할 수 있도록 돕는 반면, OAuth 2.0은 사용자가 한 서비스(예: 페이스북 또는 구글)를 통해 다른 서비스에 로그인할 수 있도록 하는 개념이다.

 

정리하자면, 


OAuth 2.0은 서드파티 애플리케이션(예를 들어, 모바일 앱)이 사용자를 대신해 특정 리소스에 접근할 수 있는 방법을 제공하여 사용자에 대한 인증보단 "권한 부여(authorization)"에 초점을 맞추고 있는 반면,

SAML은 사용자가 여러 서비스(일반적으로 기업의 내부 시스템)를 동일한 인증 정보로 접근할 수 있게 하는 '싱글 사인온(SSO)' 문제에 초점을 맞추고 있다.


예를 들어, 기업 환경에서는 여러 내부 시스템을 동일한 인증 정보로 접근하도록 하기 위해 SAML 기반의 SSO가 널리 사용될 수있고, 사용자가 소셜 미디어 계정으로 다른 서비스에 로그인하거나, 모바일 앱이 사용자의 소셜 미디어 데이터에 접근하는 것을 허용하려는 경우에는 OAuth 2.0이 더 적합할 수 있다.


위와 같이 "Google 계정으로 로그인"과 같은 기능은 대부분 OAuth 2.0에 기반하며, 실제로는 OpenID Connect 기술이 추가로 사용될 가능성이 높다.

즉,  OAuth 2.0은 주로 권한 부여에 중점을 둔 프로토콜이지만, 그 자체로는 사용자의 인증 정보를 제공하지 않으며, OAuth 2.0은 서드파티 애플리케이션에 리소스에 대한 접근 권한을 부여하는 역할을 하는 것이며, 사용자의 인증 정보는 추가적인 프로토콜인 OpenID Connect를 통해 제공될 수 있다.

 

반응형

'IT' 카테고리의 다른 글

JSON (JavaScript Object Notation), JWT (JSON Web Tokens)란?  (0) 2023.07.05
OpenID Connect, SAML 차이점  (0) 2023.07.05
웹사이트 접속 과정 (HTTPS, 인증)  (0) 2023.07.04
TCP/IP, UDP 차이점  (0) 2023.07.04
VMware Cloud on AWS  (0) 2023.07.04