SSO의 정의
SSO(Single Sign-On)는 하나의 계정으로 한 번만 로그인하면 여러 개의 서비스나 시스템에 다시 로그인하지 않고 접근할 수 있게 해주는 인증 방식입니다. 회사에서 사용하는 메일, 그룹웨어, 사내 포털 등을 각각 로그인하지 않고 한 번의 인증으로 모두 이용할 수 있다면 그것이 바로 SSO 덕분입니다. 비유하자면 호텔에서 발급받은 하나의 마스터키로 객실, 헬스장, 조식당을 모두 출입할 수 있는 것과 비슷합니다. 각 장소마다 다른 열쇠가 필요 없이, 프론트에서 한 번 신분을 확인받으면 그 키 하나로 모든 곳을 이용할 수 있는 구조입니다.
동작 원리와 예시
SSO는 보통 별도의 ‘인증 서버(Identity Provider, IdP)’가 사용자의 로그인 정보를 관리하고, 각 서비스(Service Provider, SP)는 이 인증 서버를 신뢰하는 구조로 동작합니다. 사용자가 서비스 A에 접속하면 서비스 A는 자체적으로 로그인 화면을 보여주는 대신 인증 서버로 사용자를 이동시킵니다. 사용자가 인증 서버에서 로그인에 성공하면, 인증 서버는 ‘이 사용자는 인증되었다’는 토큰이나 티켓을 발급합니다. 이후 서비스 B에 접속할 때도 이미 발급된 인증 정보를 확인해 별도 로그인 없이 접근을 허용합니다.
실제 구현에는 SAML, OAuth 2.0, OpenID Connect 같은 표준 프로토콜이 자주 사용됩니다. 예를 들어 로그인 요청 시 서버는 다음과 같은 헤더를 주고받기도 합니다.
Authorization: 'Bearer eyJhbGciOi...'Accept: 'application/json'
여기서 발급된 토큰이 바로 ‘마스터키’ 역할을 하며, 각 서비스는 이 토큰의 유효성만 확인하고 별도의 로그인 절차를 요구하지 않습니다.
실무에서 SSO를 쓰는 이유
실무에서 SSO를 도입하는 가장 큰 이유는 사용자 편의성과 보안 관리 효율성입니다. 사용자 입장에서는 서비스마다 비밀번호를 따로 기억할 필요가 없어 번거로움이 줄고, 관리자 입장에서는 계정 정보를 한 곳에서 통합 관리할 수 있어 퇴사자 계정 삭제나 권한 변경 같은 작업을 훨씬 간편하게 처리할 수 있습니다. 또한 비밀번호를 여러 곳에 나눠서 저장하지 않아도 되므로, 보안 사고가 발생했을 때 영향 범위를 파악하고 대응하기도 수월해집니다. 이런 이유로 구글, 마이크로소프트 같은 대형 플랫폼은 물론 사내 시스템을 여러 개 운영하는 기업에서도 SSO는 표준적인 인증 방식으로 자리 잡고 있습니다.