프로그래밍/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가지 방식을 혼용하여 구성할 수 있음


'프로그래밍 > J2EE' 카테고리의 다른 글

[Tips] JDBC 쿼리(Query) 타임아웃 설정  (0) 2021.09.03
[정보] HttpServletResponse 객체  (0) 2021.02.08
[정보] HttpServletRequest 객체  (0) 2021.02.08
[개요] REST 이해  (0) 2018.01.27
[정보] PreparedStatement 예제  (0) 2016.10.07