프로그래밍/J2EE
[정보] SSO 구현 방식
투칼론
2019. 1. 28. 12:04
반응형
1. 개요
SSO(Single Sign On)는 사용자가 하나의 ID/Password로 여러 응용시스템을 접근할 수 있는 기술로써 여러 개의 사이트를 운영하는 대기업이나 인터넷 관련 기업이 각각의 회원을 통합 관리할 필요성이 생김에 따라 개발된 사용자 인증 방식 중 하나이다.
2. SSO 종류 (크게 2가지 유형)
- 인증 대행(Delegation) 방식 : SSO 에이전트가 대행해줌
- 인증 정보 전달(Propagation) 방식 : SSO 시스템과 신뢰관계를 토대로 사용자를 인증한 사실(예, 토큰)을 전달받아 SSO를 구현.
3. 인증 대행(Delegation) 방식
- 대상 애플리케이션의 인증 방식을 변경하기 어려울 때 사용
- SSO 에이전트에서 대상 시스템의 인증 정보(예, ID/패스워드)를 보관하고 있다가, 대상 시스템으로 전달해주는 방식(즉, 대행)
4. 인증 정보 전달(Propagation) 방식
- 통합 인증 서버(SSO 서버)에서 로그인 정보를 확인하여, 대상 시스템으로 전달할 토큰(token)을 발급 받음
- 웹 환경에서는 주로 이 방식으로 SSO 를 구현함
- 웹환경에서는 쿠키(Cookie)를 통해 토큰 정보를 전달
- 같은 도메인(서브 도메인 포함) 내에 있다면, 쿠키를 공유할 수 있으므로 One Cookie Domain SSO를 이용하여 손쉽게 SSO를 구현가능 함
- 쿠키를 이용 시에는 보안을 위해 128비트 암호화 알고리즘이나 유효시간 제한 등의 방법을 사용해야 함
- 도메인이 다른 경우(예, aaa.com, bbb.com)는 쿠키를 공유할 수 없으므로, URL 인자에 ID/패스워드를 암호화 하여 전송하여 구현 함(예, aaa.com?/login.jsp?암호화된ID패스워드 )
5. 인증 대행(Delegation)과 인증 정보 전달(Propagation) 혼용 방식
대상 시스템의 인증 관련 로직을 분석 후에, 필요하다면 2가지 방식을 혼용하여 구성할 수 있음