SSO
From IT Wiki
- Single Sign-On
- 한번의 로그인으로 여러 허용된 자원에 접근할 수 있도록 하는 기술
- 주로 기업에서 그룹웨어, ERP, CRM 등 여러 업무시스템에 대해 한번에 로그인할 수 있도록 하기 위해 사용된다.
- PC에서도 윈도우와 같은 OS에서 사용자 로그인 후 여러 서비스 자원에 접근하는데 SSO와 유사한 메커니즘이 사용된다.
예시
- 주로 대형 회사에서 회사 컴퓨터에서 한번 로그인 하면, 그 이후엔 로그인 없이 여러 업무 도구를 이용할 수 있다.
- 원래는 각 도구마다 로그인이 필요하지만 SSO 시스템에서 인증 토큰을 생성하여 자동 로그인 시켜주는 것
장단점
- 장점
- ID/Password 개별 관리의 위험성 해소
- 사용자 편의성 증가
- 단점
- 구축비용이 비싸고 시스템 복잡도 증가
- Single Point of Failure
구현 방식
위임(Delegation) 방식
- SSO 에이전트가 인증을 대행하는 방식
- 대상 애플리케이션의 인증 방식을 변경하기 어려울 때 많이 사용
- 사용자의 인증 정보를 SSO 에이전트가 관리하며 로그인 대신 수행
전파(Propagation) 방식
- SSO에서 인증을 수행하고, 토큰 발급하고 전달하여 인증 수행
- SSO에서 인증을 받아 대상 애플리케이션으로 전달할 토큰 생성
- 애플리케이션에선 SSO의 토큰을 검증하고 인증된 것으로 처리
혼합 방식
- 대상 애플리케이션에 따라 위임 방식 및 전파 방식을 혼용해서 사용
기반 기술
- 커버로스: 전파방식의 SSO를 구현하기 위한 기반 프로토콜
구현
웹 기반 SSO
- 전파 방식의 경우 쿠키를 통해 토큰을 저장한다.
- 토큰 쿠키가 있을 경우 토큰값을 검증해 로그인을 수행한다.
- 쿠키에 저장된 토큰은 필히 암호화하여야 한다.
- 위임 방식의 경우 저장해둔 ID/비밀번호를 POST로 전달하여 로그인 한다.
- 또는 ID/비밀번호를 대신할 수 있는 토큰을 URL(GET) 방식으로 전달하여 로그인 한다.
단말 프로그램
- 기업용 소프트웨어의 경우 대부분 SSO를 위한 인증 API를 제공한다.
- 소프트웨어에서 인증 기능 커스트마이징이 전혀 되지 않을 경우 SSO 연동이 불가능하다.
- 단말용 소프트웨어 도입시 RFP에 해당 SSO 연동 지원 내용 포함 필요