SSO는
이름 그대로 단일 로그인, 즉 한번의 로그인으로 여러개의 애플리케이션들을 이용할 수 있게해주는 서비스 입니다.
한번의 로그인으로 구글 관련 서비스를 모두 이용할수 있는것이다.
장점
ID/Password 개별 관리의 위험성 해소
사용자 편의성 증가
단점
구축비용이 비싸고 시스템 복잡도 증가
Single Point of Failure
구현 방식
위임(Delegation) 방식
SSO 에이전트가 인증을 대행하는 방식
- 대상 애플리케이션의 인증 방식을 변경하기 어려울 때 많이 사용
- 사용자의 인증 정보를 SSO 에이전트가 관리하며 로그인 대신 수행
이건 앞단에 SSO 서버를 두고 리버스 프록시 형태로 서비스를 제공한다.
사용자의 인증 정보를 Agent가 관리하여 대신 로그인 해주는 방식이다.
EX ) ID / password로 로그인하면 에이전트가 해당 정보를 가지고 로그인 수행해준다.
전파(Propagation) 방식
SSO에서 인증을 수행하고, 토큰 발급하고 전달하여 인증 수행
위임(Delegation) 방식
SSO 에이전트가 인증을 대행하는 방식
- SSO에서 인증을 받아 대상 애플리케이션으로 전달할 토큰 생성
- 애플리케이션에선 SSO의 토큰을 검증하고 인증된 것으로 처리
JWT 토큰처럼 토큰을 발급받아 서비스를 사용한다.
웹 기반 SSO
- 전파 방식의 경우 쿠키를 통해 토큰을 저장한다.
- 토큰 쿠키가 있을 경우 토큰값을 검증해 로그인을 수행한다.
- 쿠키에 저장된 토큰은 필히 암호화하여야 한다.
- 위임 방식의 경우 저장해둔 ID/비밀번호를 POST로 전달하여 로그인 한다.
- 또는 ID/비밀번호를 대신할 수 있는 토큰을 URL(GET) 방식으로 전달하여 로그인 한다.
출처
https://gruuuuu.github.io/security/ssofriends/
'혼자공부한거' 카테고리의 다른 글
키클락 취약점 살펴보기 (CVE-2024-8698) (1) | 2024.12.01 |
---|---|
JWT 토큰 (0) | 2024.05.24 |
[스프링부트] 스프링부트 CRUD deleteMapping 사용하기 (0) | 2021.08.11 |