요즘 엔터프라이즈 환경에서 기본 중 기본이다. 한 번의 로그인으로 동일한 세션 중에 여러 애플리케이션/서비스에 접근할 수 있게 해주는 인증 체계이다. 사용자는 하나의 사용자 이름과 비밀번호로 여러 서비스에 접속할 수 있으며, 반복적인 로그인 절차를 생략하여 사용자 편의성을 높이고, 중앙 집중식 계정 관리로 보안성을 향상할 수 있다. (개인이 개별 애플리케이션 로그인 인증정보를 기억할 필요가 없어짐 → 사이버 보안에 필요한 관리 작업이 줄어듦)
예시
Google 계정 로그인 한 번으로 Gmail, Google Drive 등 구글의 여러 서비스에 접속하는 것
각 서비스가 직접 사용자 인증을 하지 않고, SSO Agent가 사용자의 인증 요청을 중앙의 IdP(인증 제공자)에 전달하고, IdP의 응답을 서비스에 대신 전달하는 방식이다.

예시
사용자가 회사 인트라넷에서 사내 게시판 애플리케이션에 접속하려고 한다.
게시판 애플리케이션은 자체적으로 사용자의 로그인 정보를 확인하지 않고, “이 사용자가 인증된 적 있는지?”를 SSO Agent에게 묻는다.
SSO Agent는 해당 요청을 받아 중앙 IdP(Identity Provider)에 전달한다.
IdP는 사용자의 자격 증명(아이디/비밀번호, MFA 등)을 검증한다.
- 사용자가 이미 로그인해 세션이 있으면, 그 결과를 재사용한다.
- 로그인하지 않았다면, 로그인 화면으로 리다이렉트한다.
IdP가 인증을 완료하면, “이 사용자는 인증됨”이라는 결과를 SSO Agent에게 보낸다.
SSO Agent는 이 인증 결과를 받아서 게시판 애플리케이션에 전달한다.
게시판 애플리케이션은 IdP가 보증한 인증 결과를 신뢰하고, 사용자가 정상적으로 접근할 수 있도록 한다.
SSO 시스템과 신뢰 관계를 토대로 사용자를 인증한 사실을 전달 받아 SSO를 구현하는 방식이다.

예시
사용자가 서비스 제공업체 중 하나 또는 중앙 포털(예: 회사 인트라넷 또는 대학생 포털)에 SSO 로그인 자격 증명을 사용하여 로그인한다.
사용자가 성공적으로 인증되면 SSO 솔루션은 사용자 ID에 대한 특정 정보(사용자 이름, 이메일 주소 등)가 포함된 세션 인증 토큰을 생성한다. 이 토큰은 사용자의 웹 브라우저 또는 SSO 시스템에 저장된다.
사용자가 다른 신뢰할 수 있는 서비스 제공업체에 액세스하려고 하면 애플리케이션은 SSO 시스템을 통해 사용자가 세션에 대해 이미 인증되었는지 확인한다. 사용자가 인증을 받은 경우 SSO 솔루션은 디지털 인증서로 인증 토큰에 서명하여 사용자를 검증하고 사용자에게 애플리케이션에 대한 액세스 권한을 부여한다. 그렇지 않은 경우에는 사용자에게 로그인 자격 증명을 다시 입력하라는 메시지가 표시된다.
1. SSO가 보안에 도움이 되는 이유
2. SSO의 보안 Risk
출처
https://www.ibm.com/kr-ko/think/topics/single-sign-on
https://itwiki.kr/w/SSO
https://co-no.tistory.com/entry/%EC%84%9C%EB%B2%84-%EA%B3%B5%ED%86%B5-SSOSingle-Sign-On-%EC%9D%B4%EB%9E%80