- SSO(Single sign-on)가 무엇인지 이해한다.
- SSO와 OAuth, SAML의 관계를 이해한다.
SSO란#
- SSO: 하나의 자격 증명으로 여러 애플리케이션과 웹사이트에 인증할 수 있는 인증 방법이다.
- 예시: 구글 로그인으로 Gmail, YouTube 등 인증 가능
- 일반적인 SSO 흐름
- 사용자가 접근하려는 애플리케이션 또는 웹사이트(SP)를 접속한다.
- SP는 사용자 인증 요청의 일부로 사용자에 대한 일부 정보(이메일 등)가 포함된 토큰을 SSO 시스템과 같은 IdP에 보낸다.
- IdP는 사용자가 이미 인증되었는지 확인하며, 인증된 경우 사용자에게 SP 애플리케이션에 대한 액세스 권한을 부여하고 5단계로 건너뛴다.
- 사용자가 로그인하지 않은 경우, IdP에서 요구하는 자격 증명을 제공하여 로그인하라는 메시지가 표시된다.
- IdP가 제공한 자격 증명의 유효성 검증을 성공하면, 인증을 성공했음을 나타내는 토큰을 SP로 다시 보낸다.
- 이 토큰은 사용자의 브라우저를 통해 SP로 전달된다.
- SP가 수신한 토큰은 SP와 IdP 간에 설정한 신뢰 관계에 따라 유효성이 검사된다.
- 사용자에게 서비스 제공업체에 대한 액세스 권한이 부여된다.

SAML 와 OAuth#
- SSO 서비스를 사용하여 SP에 로그인하면 사용자는 식별을 위한 인증 토큰이 생성된다.
- SAML은 인증 토큰을 작성하는데 사용되는 언어이다.
- SAML 표준은 XML을 사용하여 인증 및 권한 부여를 할 수 있다.
- OAuth는 IdP 접근 권한을 부여할 때 사용하는 프로토콜이다.
- SAML과 OAuth는 별도의 프로토콜이고, SSO를 구현할 때 사용할 수 있다.
참고 자료#
comments powered by