-
1. SSO란 무엇인가?
싱글 사인온, 단일 계정 로그인, 단일 인증이라고 한다.
한번의 로그인으로 여러 허용된 자원에 접근할 수 있도록 하는 기술
Single Sing-ON 의 약자로서 여러 개의 사이트에서 한번의 로그인으로 여러가지 다른 사이트들을 자동적으로 접속하여 이용하는 방법을 말한다. 일반적으로 서로 다른 시스템 및 사이트에서 각각의 사용자 정보를 관리하게 되는데, 필요에 따라서 사용자 정보를 연동하여 사용해야 하는 경우도 생기게 됩니다. 이 때, 하나의 사용자 정보를 기반으로 여러 시스템을 하나의 통합 인증을 사용하게 하는 것을 말합니다. 즉 하나의 시스템에서 인증을 할 경우 타 시스템에서는 인증 정보가 있는지 확인하고 있으면, 로그인 처리를 하도록 하고, 없는 경우, 다시 통합 인증을 할 수 있도록 만드는 것을 의미합니다. 아래의 도식화된 이미지를 참조하시면 됩니다.
예를 들어 어느 컴퓨터에 로그인한 후 그룹웨어 등의
응용 프로그램을 사용할 때에 또 로그인, 다른 서버상의 응용 프로그램을 사용할 때에도 다시 로그인이 필요한 상황이라면, 사용자는 여러 개의 아이디와 비밀번호를 관리해야 한다. 통합인증을 도입한 환경에서는 사용자는 하나의 아이디와 비밀번호로 모든 기능을 사용할 수 있다.
즉, 하나의 아이디 및 패스워드를 통해 여러 시스템에 접근할 수 있는 통합 로그인(인증) 솔루션이라고 생각하시면 됩니다.
예시
1. 대형 회사에서 회사 컴퓨터에서 한번 로그인 하면, 그 이후엔 로그인 없이 여러 업무 도구를 이용할 수 있다.
2. 원래는 각 도구마다 로그인이 필요하지만 SSO 시스템에서 인증 토큰을 생성하여 자동 로그인 시켜주는 것
2. 등장배경최근 회사들이 그룹화 되거나 대형화가 되어서 여러 사이트들을 통합 관리하는 경우 SSO를 사용합니다.
이 때, 통합 인증 SSO를 사용할 시, 관리자는 보다 수월하게 관리 대상(사용자 및 고객)을 관리할 수 있게 됩니다.
- 기술적 측면 : 기업 내 다양한 정보 시스템의 구축에 따른 복잡성 증가, PKI, 생체 인식 등 다양한 인증 기술의 활성화
- 관리적 측면 : 중앙 관리를 통한 업무 단순화 및 표준화 실현, 중앙 집중적인 사용자 관리를 통한 보안 기능 강화
3. SSO의 구성 요소
(1) 사용자 통합 로그인 (2) 인증 서버 (3) 통합 에이전트 : 각 정보 시스템에 대한 정보 관리
(4) LDAP(Lightweight Directory Access Protocol) : 네트워크 상의 자원을 식별하고 인가된 사용자만 접근하도록 하는 네트워크 디렉토리 서비스
4. SSO의 기술 요소
- 인증 : PKI(Public Key Infra structure), 생체 인식, OTP(Ont Time Password)
- 관리 : LDAP(Lightweight Directory Access Protocol), 쿠키(Cookie)
- 암호화 통신 : SSL(Secure Socket Layer), IPSec(IP Security Protocol)
5. SSO의 구축 유형
1) 인증 대행 모델(Delegation)
- 인증 방식을 변경하기 어려울 경우, 많이 사용
- 시스템 접근 시, 통합 Agent가 인증 작업을 대행
2) 인증 정보 전달 모델(Propagation)
- 웹 기반의 시스템에 주로 사용
- 미리 인증된 토큰(Cookie 기능 이용)을 받아서 각 시스템 접근 시, 자동으로 전달
6. Cookie를 이용한 SSO 구현 시, Cookie 보안 방법
- 데이터 기밀 유지(Data Confidentiality) : 토큰은 주요 암호 알고리즘(AES, SEED)과 128bit 이상의 키로 암호화 되어야 합니다.
- 데이터 무결성(Data Integrity) : 토큰은 MAC 등을 포함해 데이터의 무결성을 보장해야 합니다.
- 사용자 주소 제한이나 유효 시간 제한 같은 보안 기술을 사용하여, 토큰을 네트워크에 노출시키지 않아야 합니다.
7. 장점
- 다른 아이디와 암호 조합으로 인한 암호 피곤을 줄인다.
- 같은 아이디마다 암호를 다시 입력하는 시간을 줄인다.
- 암호를 답해줘야 하는 헬프데스크 비용을 줄인다.
- 사용자의 편의성을 증가시킨다.
8. 단점
- 구축비용이 비싸고 시스템 복잡도가 증가한다.
참고 사이트 :
http://blog.naver.com/PostView.nhn?blogId=xcripts&logNo=70121445000
'코딩 지식' 카테고리의 다른 글
컨트롤러 클래스 없이 view 컨트롤러 추가(addViewControllers 메서드) (0) 2021.12.01 애슬론(Echelon) v1.5는 (0) 2021.12.01 리눅스란? (리눅스의 장단점) (0) 2021.11.30 리눅스 명령어 (0) 2021.11.30 <form:form> 태그 사용법 (0) 2021.11.30