Search

OAuth, OpenID Connect, SAML

OAuth, OpenID Connect, SAML
OAuth 2.0
OAuth는 다른 앱(예: Google, Facebook, Twitter 등)의 Authoraization을 위한 프로토콜이다.
OAuth는 주로 사용자가 소셜 로그인(예: Google, Facebook, Twitter 등)의 계정을 사용해 특정 애플리케이션에 로그인할 때 사용된다.
그 외에도 Google, Facebook 등이 제공하는 특정 기능에 대한 사용 권한을 OAuth를 통해 얻을 수 있다.
사용자는 애플리케이션에 ID와 비밀번호를 제공하지 않고도 접근할 수 있게 해준다.
현재 대부분의 애플리케이션에서 OAuth 2.0을 사용하고 있다. (OAuth 1.0는 오래된 버전)
액세스 토큰(access token)을 사용하여 리소스에 접근하는 방식이다.

OAuth 2.0 작동 방식

Google 로그인을 통해 Google Drive에 접근 권한을 얻기
1.
애플리케이션에서 사용자가 Google 로그인을 선택
2.
Google 로그인 페이지로 이동하여 로그인 후 Google Drive에 필요한 권한을 요청된다. 여기서 사용자는 권한을 승인한다.
3.
Google이 애플리케이션에 Authorization Code를 보낸다.
4.
애플리케이션이 Authorization Code를 사용해 Google 서버에 Access Token을 요청한다.
5.
Google이 애플리케이션에 Access Token을 반환한다.
6.
애플리케이션이 받은 Access Token을 사용해 Google Drive API에 요청하여 필요한 정보(예: 사용자의 파일 목록)를 가져온다.
OpenID Connect
OpenID Connect는 OAuth 2.0을 기반으로 한 인증 프로토콜이다.
인증(Authentication)을 위해 설계되었으며, 사용자에 대한 신원을 확인하는 데 초점을 맞추고 있다.
OpenID Connect는 ID 토큰(id token)을 사용자 정보를 전달한다. 이를 통해 애플리케이션은 사용자가 누구인지 확인할 수 있다.

OpenID Connect 와 OAuth 차이점

OAuth 2.0
OpenID Connect
주요 토큰
Access Token
ID Token 및 Access Token
목적
권한 부여 (자원 접근)
사용자 인증 (신원 확인)
신원 정보
신원 정보 제공하지 않음
사용자 신원 정보 제공 (이메일, 이름 등)
사용 사례
API 접근 권한 부여 (예: Google Drive)
사용자 로그인 (예: 웹사이트 로그인)
JSON 기반
JSON 기반
개발 연도 (대략)
2012년
2014년
SAML
OAuth와 OpenID Connect보다 오래된 XML 기반의 프로토콜이다.
인증(Authentication)권한 부여(Authorization)를 한다.
주로 기업(Enterprise)SSO(Single Sign-On) 구축에서 사용된다.
사내 여러 애플리케이션(예: 이메일, 클라우드)에 SSO로 한 번의 로그인으로 접근 가능

SAML의 구성 요소

1.
Identity Provider(IdP) - 예시: Google, Microsoft Azure AD, Okta
2.
Service Provider(SP) - 사용자가 실제로 접근하려는 애플리케이션이나 서비스이다. SP는 IdP에서 받은 인증 정보를 이용해 사용자가 접근할 수 있도록 허용
3.
SAML Assertion - IdP가 사용자에 대해 인증한 정보를 포함한 메시지이다.