로그인 기능을 구현하기위해 찾아보다 잘 모르는 부분이 있어 정리하고자 한다.
우선 내가 하고자 했던 로그인 기능은 아래와 같다.
회원 가입 기능 없이 구글 계정이나 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/
'내가 보려고 기록하는것' 카테고리의 다른 글
github workflow 작성하기 (pull request CI) (0) | 2023.08.10 |
---|---|
chatGPT 쿼리 튜닝 꽤나 잘해준다. (0) | 2023.05.24 |
VScode Auto fix eslint on save (0) | 2023.04.18 |
Web server failed to start. Port 8080 was already in use 에러 (0) | 2023.03.17 |
어플에 광고 붙이기 (admob) (0) | 2023.02.02 |