새소식

2. 웹개발/IT 정보

[IT 정보] SSO - Single Sign-On

  • -

SSO - Single Sign-On 


Web 로그인 인증방식 중의 하나이며,  한 번의 로그인으로 다양한 어플리케이션을 재 로그인 없이 이용할 수 있는 통합인증을 의미한다. 이 로그인 인증방식은 이미 우리가 실생활에서 굉장히 많이 접하고 있는 로그인 방식이다.

 


- SSO의 필요성

 

실생활에서의 예를 들어보자. 나는 카카오톡, 페이스북, 넷플릭스 세가지 어플리케이션을 주로 이용하고 있다. 이 세 개의 어플리케이션을 이용하기 위해선 각각의 계정이 필요하며 사용할 때 로그인을 요구한다. 각각의 사용자 정보를 저장하는 방식이 다르기 때문에 각각의 계정으로 해당하는 어플리케이션에만 로그인할 수 있다.

 

하지만 이렇게 독립된 어플리케이션이 아닌 하나의 회사에서 제공하는 서비스를 이용한다면 굳이 하나의 회사에서 사용자 정보를 다르게 저장할 필요가 있을까? 그렇기 때문에 G-mail, Google Drive, Google Hangout과 같이 구글에서 제공하는 서비스에는 각각의 계정이 필요 없을뿐더러 각각의 계정을 사용하게 되면 사용자와 서비스를 제공하는 입장 모두 불편하게 된다.

사용자는 아이디와 비밀번호 3쌍을 기억해야하며, 구글을 로그인 화면 3개, 데이터베이스 3개, 프로세스 3개를 각각 구현해야 하는 비 효율적인 구조를 가지게 된다.

 


- SSO란 무엇인가?

 

위와 같은 불편함을 해소할 수 있는 방식이 바로 SSO이며, 위에서도 한 번 설명한 것과 같이 한 번의 로그인으로 다양한 어플리케이션을 이용하는 통합 인증 방식이다. 즉, 로그인/인증 부분을 공통으로 묶어서 로그인 화면 1개, 데이터베이스 1개, 프로세스 1개로 구조를 가진다 생각하면 된다.

위의 그림은 중간에 각자의 로그인 방식이 있던 구조에서 각자의 로그인을 하나로 묶어 IdP로 공통서비스를 두었고, 공통으로 지닌 IdP를 각각의 로그인이 필요한 G-mail, Google Driver, Google Hangout이 이 서비스를 바라보며 기능을 구현하면 하나의 로그인으로 3개의 어플리케이션 서비스를 이용이 가능한 것이다.

 

더보기

SP(Service Provider) : 서비스, 어플리케이션 등 다양하게 불리고 있으며, 인증을 거쳐야만 사용할 수 있는 서비스

IdP(Identity Provider) : SP를 사용하기 위해 인증을 할 수 있도록 공통 인증 관련 부분만 모아서 구성한 서비스


- SSO 동작 방식

1. 인증 위임 모델(Delegation)

 

SSO 에이전트가 인증을 대행하는 방식이다. 이 방식은 대상 어플리케이션의 인증 방식을 변경하기 어려울 때 사용하며, 사용자의 인증 정보를 SSO 에이전트가 관리하며 로그인 대신 수행한다.

 

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

 

SSO에서 인증을 수행, 토큰을 발급하고 전달하여 인증을 한다. 이 방식은 SSO에서 인증을 받아 대상 어플리케이션으로 전달할 토큰 생성하고, 어플리케이션에서 SSO의 토큰 검증을 인증된 것으로 처리한다.

 


- SSO를 구현하기 위한 기술 요소

 

SSO를 구현하기 위해 3가지

  • 인증 서버 필요
  • 다양한 서비스들과 어떠한 인증 관련으로 연계할지 설계
  • 인증 서버에서 인증을 성공적으로 수행했다는 "증거"를 다른 서비스들이 어떻게 받아들일 것인지 기술 필요

 

위의 세가지는 기본으로 가져가야 할 구현 기술요소이며 인증 정보 전달 모델(Propagation)을 구현하기 위해서는 토큰이 필요하다. 최초 인증이 성공한 사용자에게 증거로 인증 서버가 발급하는 JWT토큰을 주로 이용한다.

 

이전에는 로그인한 사용자에게 Web 서버와 Session을 맺고 Session ID 정보를 쿠키로 받아 증거로 사용했지만, 모든 HTTP요청마다 헤더에 Session ID 쿠키를 넣고 웹 서버에 요청하게 되면 매번 요청마다 Session 정보를 확인해야 하고, 저장소로 사용됨으로써 서버에 부하가 걸리기 때문에 토큰을 많이 사용하는 추세이다.

 


- 마무리

 

사내 서비스와 연계되고 있는 기업용 legacy 소프트웨어를 살펴보다 ERP, HR, SSO와 연계가 이루어져 있다고 하여 찾아본 정보를 정리하게 되었다. 지금까지는 좁은 시야 덕분에 하나의 서비스에 로그인 인증을 구현하였는데 여러 통합인증 방식을 알게 되었고 실생활에서 사용하고 있는 SSO 방식을 너무 당연하게 받아들여 기술적으로 살펴볼 생각을 못하고 있었다. 당연히 알고 있어야 할 지식일 수도 있지만 새롭게 알게 되어 의미 있는 시간이었던 거 같다.

 

 

- 참고

 

SSO란 무엇인가! 이해해봅시다

서론 안녕하세요. 이번 포스팅에서는 Web에서의 인증 방식의 하나인 SSO(Single Sign On)가 무엇인지, 어떤 불편함을 해소 하기 위한 기술인지 설명드리려고 합니다. 세세하고 딱딱한 기술적인 사항을

haneepark.github.io

 

SSO(Single Sign-On) 통합인증 이란?

서론 현재 일하고 있는 곳에서는 내부망에서 다양한 시스템들을 운영하고 있습니다. 여기서 주목한 점은 한 번의 로그인으로 내부의 모든 시스템을 재 로그인 없이 이용할 수 있는 방식인 SSO(Sin

dkswnkk.tistory.com

 

Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.