• 티스토리 홈
starryeye
  • 프로필사진
    starryeye
    • 분류 전체보기 (189)
      • C++ (17)
      • Java (24)
      • OOP (5)
      • Spring Reactive Stack (12)
        • Reactive Streams (3)
        • Netty (4)
        • Reactor (1)
        • Webflux (3)
        • DB, Cache 연동 (1)
      • Spring (90)
        • Core (17)
        • MVC (33)
        • Client (2)
        • Security (4)
        • DB, Cache 연동 (33)
      • DataBase (12)
        • RDBMS (2)
        • NoSQL (10)
      • Message Broker (6)
      • Web (4)
      • Network (4)
      • 대규모 시스템 설계 (15)
  • 방문자 수
    • 전체:
    • 오늘:
    • 어제:
  • 최근 댓글
      등록된 댓글이 없습니다.
    • 최근 공지
        등록된 공지가 없습니다.
      # Home
      # 공지사항
      #
      # 태그
      # 검색결과
      # 방명록
      • 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
        다음글
        다음 글이 없습니다.
        이전글
        이전 글이 없습니다.
        댓글
      조회된 결과가 없습니다.
      스킨 업데이트 안내
      현재 이용하고 계신 스킨의 버전보다 더 높은 최신 버전이 감지 되었습니다. 최신버전 스킨 파일을 다운로드 받을 수 있는 페이지로 이동하시겠습니까?
      ("아니오" 를 선택할 시 30일 동안 최신 버전이 감지되어도 모달 창이 표시되지 않습니다.)
      목차
      표시할 목차가 없습니다.
        • 안녕하세요
        • 감사해요
        • 잘있어요

        티스토리툴바