
1. SSO 개념 및 도입 환경
SSO(Single Sign On)는 하나의 아이디로 여러 사이트를 이용할 수 있는 시스템으로 여러개의 사이트를 운영하는 대기업이나 인터넷 관련 기업이 회원을 통합 관리할 필요성이 생김에 따라 개발된 방식이다.
2. SSO 이슈
- 여러 사용자 DB를 어떤 방식으로 통합할 것인가?
- 어떤 인증 방식을 통해 사용자를 확인할 것인가?
- 인증받은 사용자는 어떤 접근 권한을 가지며 그 접근 권한에 따른 개인화는 어떻게 구현할 것인가?
- 보안 관련 문제는 어떻게 처리할 것인가?
3. SSO 도입 장점
- 관리의 투명성과 신뢰성 확보
- 저비용 고효율성
4. SSO 종류
- Delegation 방식 : 대상 애플리케이션의 인증 방식을 변경하기 어려울 때 많이 사용한다. 대상 어플리케이션의 인증방식을 전혀 변경하지 않고, 사용자의 대상 애플리케이션 인증 정보를 에이전트가 관리해 사용자 대신 로그온 해주는 방식이다.
- Propagation 방식 : 통합 인증을 수행하는 곳에서 인증을 받아 대상 어플리케이션으로 전달할 토큰을 발급 받는다. 대상 어플리케이션에 사용자가 접근할 때 토큰을 자동으로 전달해 대상 어플리케이션이 사용자를 확인할 수 있도록 하는 방식이다. 웹 환경에서 쿠키라는 기술을 이용해 토큰을 자동으로 대상 어플리케이션에 전달할 수 있다. 이러한 웹 환경의 이점으로 웹 환경에서의 SSO는 대부분이 이 모델을 채택하고 있다.
- Delegation & Propagation 방식 : 웹 환경이라고 하더라도 Propagation 방식이 모두 적용될 수 없다. 특히 웹 어플리케이션의 변경이 전혀 불가능하고 사용자 통합이 어려운 경우 Delegation 방식을 사용하게 된다. 또한 대상 어플리케이션들이 많이 있고 어플리케이션의 특성들이 다양한 경우 각 어플리케이션에 Delegation 방식과 Propagation 방식을 혼용해서 전체 시스템의 SSO를 구성한다.
- Web 기반 One Cookie Domain SSO : SSO 대상 서비스와 에플리케이션들이 하나의 Cookie Domain안에 존재할 때 사용된다. 일반적인 기업 내부의 컴퓨팅 환경이다. 통합인증을 받은 사용자는 코큰을 발급받게 되고, 이 토큰은 Cookie Domain에 Cookie로 설정되어 Cookie Domain 내의 다른 서비스로 접근할 때 자동으로 토큰을 서비스에 제공하게 된다. 서비스에서 동작되는 SSO 에이전트는 토큰으로부터 사용자 신원을 확인하고 요청된 자원에 대한 접근을 허가해준다.
5. Cookie를 통한 SSO 구현 시 Cookie 보안 방법
- Data Confidentiality : 토큰은 주요 암호 알고리즘(AES, SEED)과 128bit 이상의 키로 암호화 되어야 한다.
- Data Integrity : 토큰은 MAC 등을 포함해 데이터의 무결성을 보장해야 한다.
- Replay Attack Protection : 사용자 주소 제한이나 유효시간 제한 같은 보안 기술을 사용해서 토큰을 네트워크에 노출 시키지 않는다.