개념
- 한 번의 로그인 인증으로 여러 개의 서비스를 추가적인 인증 없이 사용할 수 있는 기술
- 인증은 하나의 인증서버에서 수행하고, 그 인증 서버가 서비스를 각각 담당하는 서버에 인증 정보를 알려주는 방식
- 주로 다양한 서비스를 유사한 도메인 혹은 동일한 탑 레벨 도메인(TLD)을 서비스하는 엔터프라이즈 서비스 제공자들이 사용자에게 간편한 로그인을 제공하기 위해 사용
- 하나의 시스템에서 인증을 할 경우, 타 시스템에서는 인증 정보가 있는지 확인하고, 있으면 로그인 처리, 없으면 다시 통합 인증을 할 수 있도록 만드는 것
- 하나의 시스템에서 인증을 할 경우, 타 시스템에서는 인증 정보가 있는지 확인하고, 있으면 로그인 처리를 하도록 하고, 없는 경우 다시 통합 인증을 할 수 있도록 만드는 것
장점
- 로그인 기능 로직을 한 번만 수행함으로써 사용자에게 편리함 제공
- 인증 기능을 모든 서비스마다 구현하지 않아도 되므로 개발 비용 감소
- 로그인 로직이 변경되거나 암호화 방식을 변경해야 할 경우 제품마다 적용할 필요없이 인증 서버만 수정하면 되기 때문에 효율적
- 하나의 서비스에서 로그아웃할 경우 다른 서비스들 역시 로그아웃(세션만료) 시킬 수 있어 보안적인 이점
- 관리자는 하나의 보안 토큰(사용자 이름, 암호 쌍)으로 여러 시스템과 플랫폼, 앱 및 기타 리소스에 대한 사용자 접근을 활성화하거나 비활성화 가능
단점
- 한 번의 인증으로 많은 정보를 제공하기 때문에 해킹의 피해가 늘어날 수 있음
- 아이디의 접속 권한을 잃어버리면 모든 서비스 이용 불가
- 각각 서비스마다 보안 수준이 다르면 보안에 문제 발생 가능성
구성 요소
- 사용자 통합 로그인
- 인증 서버
- 통합 에이전트 : 각 정보 시스템에 대한 정보 관리
- LDAP(Lightweight Directory Access Protocol) : 네트워크 상의 자원을 식별하고 인가된 사용자만 접근하도록 하는 네트워크 디렉토리 서비스
기술 요소
- 인증 : PKI(Public Key Infra structure), 생체 인식, OTP(One Time Password)
- 관리 : LDAP(Lightweight Directory Access Protocol), 쿠키(Cookie)
- 암호화 통신 : SSL(Secure Socket Layer), IPSec(IP Security Protocol)
구현 방식
- 여러 표준, 프레임워트에 의해 구현 가능
- 대표적 3가지 : SAML, OAuth, OIDC
구축 유형
- 인증 위임 모델(Delegation)
- 인증 방식을 변경하기 어려울 경우
- 시스템 접근 시 통합 Agent가 인증 작업을 대행
- SSO 에이전트가 인증을 대행하는 방식
- 대상 애플리케이션의 민증 방식을 변경하기 어려울 때 많이 사용 - 인증 정보 전달 모델(Propagation)
- SSO에서 인증을 수행, 토큰을 발급하고 전달하여 인증 수행-
- SSO에서 인증을 받아 대상 애플리케이션으로 전달할 코드 생ㅅ - 웹 기반의 시스템에 주로 사용
- 미리 인증된 토큰을 받아서 시스템 접근 시, 자동으로 전달
AD(Active Directory)
- Directory Service(= SSO) : 중앙 서버에 공통된 데이터베이스를 생성하여 각 서버와 클라이언트는 해당 데이터베이스를 공유하여 Object를 검색하고, 중앙에서 사용자가 인증 및 권한 부여 처리가 가능하도록 처리해주는 서비스
-> Active Directory는 이것을 가능하게 해주는 중앙 서버에 설치된 데이터베이스 - AD를 배포한다는 것은 SSO 환경을 만든다는 뜻
[참고자료]
https://devbksheen.tistory.com/entry/SSOSingle-Sign-On
https://velog.io/@krafftdj/SSO%EB%9E%80
https://seaforest76.tistory.com/16
https://zakelstorm.tistory.com/85
https://itkjspo56.tistory.com/298
https://dkswnkk.tistory.com/581
https://sangbeomkim.tistory.com/159
https://wildeveloperetrain.tistory.com/167
https://toma0912.tistory.com/75
https://icutor.tistory.com/entry/SSO-%EC%9D%B8%EC%A6%9D
'CS > WEB' 카테고리의 다른 글
HTTP와 HTTPS 개념, 차이점 (0) | 2022.10.25 |
---|---|
URL vs URI vs URN (0) | 2022.10.24 |
OpenID, OIDC(OpenID Connect)란? (0) | 2022.10.24 |
Authentication(인증) vs Authorization (인가) (0) | 2022.10.24 |
OAuth란? (OAuth2.0) (0) | 2022.10.24 |