[CS]서버 인증_SSO

김피자·2023년 4월 7일
0

CS

목록 보기
21/22

오늘은 SSO 인증에 대해서 알아보자.


SSO

통합인증(Single Sign-On : SSO)은 SSO는 한 번의 사용자 인증으로 다수의 애플리케이션 및 웹사이트에 대한 사용자 로그인을 허용하는 인증 솔루션이다.

많은 기업들이 대형화되고 여러 사이트들을 통합 관리하게 되면서 SSO를 사용하고 있다.(ex) 통합 로그인)
SSO를 사용하면 개인 입장에서는 사이트마다 로그인을 안해서 좋고, 기업 입장에서는 회원에 대한 통합 관리가 가능하다는 장점이 있다.

인증은 하나의 서버에서 수행하고, 그 인증 서버가 서비스를 담당하는 타겟 서버에 인증 정보를 알려주는 방식이다.


위에서도 말했지만 SSO를 이용하면 사용자는 로그인의 번거로움에서 해방되고 기업 입장에서는 회원 관리가 편해진다.


구축 유형

SSO는 서비스의 특성에 따라 두 가지 모델을 혼용하여 구성할 수 있다.

1. 인증 대행 모델 (Delegation Model)

SSO 에이전트 대행

  • 대상 서비스의 인증 방식을 변경하기 어려울 때 사용한다.
  • SSO Agent가 사용자 인증 정보를 대신 관리하고 있다가 대상 시스템(Target Service)으로 전달해주는 방식이다.

2. 인증 정보 전달 모델 (Propagation Model)

  • 웹 기반 시스템에 주로 사용

유저가 서비스에 접근할 때 발급받은 토큰을 서비스에 같이 전달하고, 서비스는 토큰 정보를 통해 사용자를 인식한다.

  • SSO 통합 인증에 로그인 하면, "인증 토큰"을 발급 받고 이 "인증 토큰"으로 개별 서비스에서 인증을 수행하게 된다.
    ex) 카카오, 구글 로그인 등

SSO 장점

  • SSO는 인증 절차를 거치지 않고 1개의 계정만으로 다양한 시스템 및 서비스에 접속할 수 있어 편의성이 높고 관리 비용 절감 효과가 있다.
  • 같은 아이디마다 암호를 재 입력하는 시간을 줄인다.
  • 암호를 재발급 헬프데스크 비용을 줄인다.

SSO 단점

  • 한 번의 인증으로 많은 정보를 제공하기 때문에 해킹의 피가가 늘어날 수 있다.
  • 아이디 접속 권한을 잃어버리면 모든 서비스를 사용할 수 없다.
  • 각각의 서비스마다 보안 수준이 다르면 보안 문제가 생길 수 있다.

Token SSO

이전 글에서는 로그인 시 웹 서버로부터 Session ID를 쿠키로 받고, 그 쿠키를 로그인할 때 사용하는 방식에 대해 알아보았다.

하지만 이 방법은 매 요청마다 서버가 Session 정보를 확인해야하는 부담과 서버가 Session 정보를 DB 등에 저장해야한다는 단점이 있다.

반면 토큰 방식은 Session 방식과 달리 서버가 로그인한 사용자의 세션 정보를 따로 보관하지 않는다.
한 번 인증 토큰이 클라이언트에 발급되면, 이후 요청부터 클라이언트는 그 토큰을 포함하고 서버가 클라이언트의 요청에 포함된 토큰을 그때 그때 확인하는 방식이다.


SSO에 대해 적으면서 "인증 토큰"이 나왔는데 이 인증 토큰의 대표적인 기술로는 JWT(JSON Web Token)가 있다.
이건 또 다음에 알아보자.

결론

SSO를 사용하면 하나의 계정으로 모든 서비스를 이용할 수 있다.
예를 들면 카카오톡, 카카오택시, 카카오웹툰 등 처럼

이 서비스들은 DB가 각각 분리되어있는데 어떻게 회원을 공유하고 있을까?
이것도 다음에 알아보자^__^


출처
https://post.naver.com/viewer/postView.naver?volumeNo=30925125&memberNo=15488377
https://blueyikim.tistory.com/252
https://bluehorn07.github.io/2021/05/02/SSO.html
https://blog.bespinglobal.com/post/server-%ec%84%9c%eb%b2%84-%ec%9d%b8%ec%a6%9d-%ec%9d%b4%ed%95%b4%ed%95%98%ea%b8%b0-2%eb%b6%80-sso/

profile
제로부터시작하는코딩생활

0개의 댓글