내가 보려고 기록하는것

SSO, OAuth, SAML, OIDC

디리릭 2023. 4. 27. 01:31
728x90

 

 

로그인 기능을 구현하기위해 찾아보다 잘 모르는 부분이 있어 정리하고자 한다. 

우선 내가 하고자 했던 로그인 기능은 아래와 같다. 

회원 가입 기능 없이 구글 계정이나 Okta 계정으로 로그인할 수 있는 기능을 구현하고자 했다.

이렇게 서드파티 로그인을 OAuth라고 하는것 까진 알았었다. 

그런데 다른 문서들을 보면 SSO, SAML, OIDC 용어가 자주 보여 어떤것들인지 찾아봤다. 

 

SSO(Single Sign-On)

SSO는 사용자가 한번의 로그인(하나의 자격 증)으로 여러 어플리케이션이나 서비스에 대한 로그인을 대체할 수 있는 사용자 인증 도구이다. 대표적인 예시로 구글 로그인을 통해 구글메일, 슬랙, Zoom 등을 사용하는 것을 들 수 있다. 

 

SSO의 유형은 아래와 같다. 

  • SAML (Security Access Markup Language)
  • OAuth (Open Authorization)
  • OIDC (OpenID Connect)

 

SAML (Security Access Markup Language)

SAML은 식별 정보 교환을 가능하게 하는 인증 프로세스 중 하나이며 사용자를 위한 프로세스이다. 즉, 네트워크를 통해 여러 컴퓨터에서 자격증명을 공유할 수 있는 공개 표준이다. 보통 SAML은 회사 내부망에 연결을 위한 로그인의 인증방식으로 사용된다. 그래서 SAML은 마치 집 열쇠와 같은 것이다. SAML 인증을 통해 회사 내부망과 연결되어 업무 관련 서비스를 사용하거나 데이터를 조회할 수 있으니 말이다.

 

OAuth (Open Authorization)

OAuth는 앱 간에 식별 정보를 전송하고 기계 코드로 암호화하는 권한 부여 프로세스이다. 사용자의 권한을 인증하는 프로세스여서  이는 어플리케이션을 위한 프로세스이다. 토큰 인증 방식을 사용한다. OAuth는 할 수 있는 일과 못하는 일을 나눌 수 있도록 한다. 

 

OIDC(OpenID Connect)

예를 들어 사용자가 Facebook 또는 Google 계정을 사용하여 서비스에 로그인할 수 있는 것이다. 마치 OAuth와 비슷한 것 처럼 보인다. OIDC는 OAuth 2.0기반이기 때문에 비슷하나 OIDC은 인증에 초점 되어 있다. 이는 주로 모바일이나 브라우저에서 많이 사용한다. 

 

 

참조 : 

https://www.okta.com/kr/identity-101/saml-vs-oauth/

https://www.okta.com/blog/2021/02/single-sign-on-sso/

https://www.itworld.co.kr/news

728x90