- SSO 정리2023년 02월 17일
- starryeye
- 작성자
- 2023.02.17.:20
SSO가 뭔지 알아보기전에..
Client가 특정 서비스를 사용하기 위해서는 필요한게 있다.
바로..
인증 (Authentication)
인가 (Authorization)
두가지 이다. (매번 봐도 헷갈리는 녀석들..)
인증(Authentication)..
유저가 누구인지 확인하는 절차이다.
로그인에 해당한다.
(로그인)
인가(권한, Authorization)..
유저가 요청하는 자원에 대해 권한이 있는지 확인하는 절차이다.
이 유저가 xxx을 할 권한이 있는지 검증 하는 절차에 해당한다.
(로그인을 했어도 Admin 권한이 없으면 못하는게 있지)
(권한 레벨)
여기서... 문제점..
서비스가 굉장히 많다면 각 서비스 마다 인증/권한 을 관리 해야한다...
해결책으로..
SSO (Single Sign On) 에 대해 알아보자..
단일 로그인으로 여러 Application(서비스)을 이용 할 수 있도록 해주는 개념이다.
크게 두가지의 모델이 있다.
1. Delegation Model (인증 대행 방식)
대상 서비스의 인증 방식을 변경하지 않고,
사용자의 인증(Authentication, 로그인) 정보를
Agent가 관리하여 대신 로그인 해주는 방식
Delegation Model 쉽게 표현하자면,
유저가 Target Service 1에 접근하고 싶다고 생각해보자.
유저는 Sign On Agent에 로그인을 하면,
Agent가 대신 Target Service 1에 필요한 로그인 정보를 전달하여
최종적으로 Target Service 1에 인증(Authentication, 로그인) 하게 되는 원리이다.
(Target Service에 로그인 하기 위한 정보를 Agent가 가지고 있는 것)
<특징>
Target Service 들의 인증 방식을 변경하기 어려울 때 사용된다.
-> 기존에 존재하던 Target Service의 인증 방식을 전혀 변경하지 않아도 SSO를 도입할 수 있다.
2. Propagation Model (인증정보 전달)
통합 인증을 수행하는 곳(Authentication Service)에서 인증(Authentication, 로그인)을 해서,
"인증 토큰"이라는 것을 발급 받는다.
그러면, 유저는 원하는 원하는 서비스에 접근할 때 발급 받은 인증 토큰을 전달해서
서비스에 접근 할 수 있다.
Propagation Model <특징>
기존에 Target Service 들이 존재하는 상황에서 SSO를 도입하는데 Propagation Model을 도입한다면..
사용자가 다이렉트로 Target Service에 인증을 하다가 인증 토큰을 전달하는 방식으로 바꾸기 때문에
Target Service의 인증 방식이 바뀌어야하는 상황에 처한다.
Target Service에 인증 토큰을 전달하는 방식은
쿠키, 쿠키/세션의 세션ID, JWT 등으로 자동 전달되게끔 할 수 있다.
(이러한 이점으로, 대부분의 웹 환경에서 채택)
3. 기타 방식들..
- Delegation + Propagation 방식
- Web 기반 One Cookie Domain SSO 방식
- Web 기반 Multi Cookie Domain SSO 방식
- One Token for All Multi Cookie Domain 방식
- One Token for each cookie domain & One Token for Master Agent 방식
reference
https://dataonair.or.kr/db-tech-reference/d-lounge/expert-column/?mod=document&uid=54094
'Web' 카테고리의 다른 글
쉽게 풀어 쓴 OAuth (Federated Identity) (1) 2023.02.18 Cookie/Session & Token (feat. token 주의 사항) (0) 2023.01.31 JWT 정리 (0) 2023.01.29 다음글이전글이전 글이 없습니다.댓글