본문 바로가기
🗂️CS & Other

[SSO] SSO(Single Sign-On) 개념 정리

by inbeom 2023. 10. 20.
728x90
SSO는 사용자가 여러 애플리케이션 또는 서비스에 대해 하나의 인증 정보로 로그인할 수 있는 인증 메커니즘으로 보안 강화 및 인증, 권한 부여 솔루션 등으로 활용된다.

 

특징 및 장점

단일 인증 정보:

  • 사용자는 SSO시스템을 통해 단일 인증 정보(id,pw)를 입력하여 여러 서비스에 접근할 수 있다.

사용자 경험 향상:

  • 여러 번의 로그인 절차를 거치지 않고도 여러 서비스에 쉽게 액세스할 수 있다.

보안 강화:

  • 하나의 강력한 인증 수단을 사용하므로, 다양한 애플리케이션에서 사용자 인증 정보를 관리하는 데 필요한 보안 수준을 높일 수 있다.

관리 용이성:

  • 사용자 인증 정보를 중앙 집중화하여 관리자가 액세스 권한을 효과적으로 관리할 수 있다.

 

단점

의존성: SSO 시스템이 다운될 경우, 여러 서비스에 대한 액세스가 제한될 수 있다.

보안 위험: SSO 시스템이 침해당하면 여러 서비스에 대한 액세스가 위협받을 수 있다.

구현 복잡성: 초기 설정 및 구현에는 일정한 노력과 전문 지식이 필요할 수 있다.

 

 

작동 방식

SSO 로그인은 크게 3단계의 프로세스를 가진다.

 

1. 사용자가 SSO 서비스에 로그인

  • 사용자는 각각의 애플리케이션에 로그인하는 것이 아닌 하나의 SSO 서비스에 로그인 한다.

2. 서비스에서 인증토큰을 생성하여 사용자에게 발급

  • 계정 정보가 일치하면 SAML(Security Assertion Makup Language) 표준을 따르는 인증토큰을 생성하여 사용자의 브라우저 또는 SSO 서버에 저장한다.

3. 인증 토큰을 로그인 하려는 앱에 전달

  • 이제 SSO에 연결되어 있는 모든 앱에서는 로그인할 때 사용자의 인증토큰을 앱에 전달하기만 하면 로그인이 가능하다.

*SSO는 데이터베이스 자체를 가지고 있는 것이 아닌 기존 사용자 정보를 가지고 있는 데이터베이스의 ID와 일치하는지 여부를 확인할 수 있는 중개자이다.

 

 

적용 방법

SSO 서비스를 적용하기 위한 과정.

 

1. SSO 제공자 및 서비스 제공자 선택:

  • SSO를 구현하기 위해 SSO 제공자(Okta, Azure AD 등)와 SSO를 적용할 서비스 제공자를 선택한다.
  • SSO 제공자는 사용자의 자격 증명을 인증하고 서비스 제공자에게 제공한다.

2. SSO 제공자에 애플리케이션 등록:

  • SSO 제공자의 관리 대시보드에서 애플리케이션을 등록하여 SSO 제공자가 해당 애플리케이션(서비스 제공자)에 대한 인증을 관리할 수 있게 한다. 
  • 이 과정에서 메타데이터(XML)를 받는다.

3. 서비스 제공자에 SAML 라이브러리 추가:

  • 애플리케이션(서비스 제공자)에 SAML 라이브러리를 추가한다.
  • SAML 라이브러리: OpenSAML, OneLogin, Shibboleth 등

4. SAML 메타데이터 설정:

  • 서비스 제공자는 SSO 제공자에게서 받은 메타데이터(xml)를 사용해 연동하여 상호 작용할 수 있도록 설정한다.

5. SSO 연동 코드 작성:

  • 서비스 제공자(애플리케이션)에서 SAML 프로토콜을 사용하여 SSO 제공자와 통신하는 코드를 작성한다.
  • 사용자의 로그인 요청을 SSO 제공자로 보내고, SSO 제공자가 제공한 응답을 확인하여 사용자 인증을 하도록 로직을 구성.

6. 사용자 정보 및 로그아웃 관리

  • SSO 제공자로부터 받은 사용자 정보를 기반으로 애플리케이션 내에서 필요한 작업 수행.
  • 로그아웃 동작도 SSO 제공자와 서비스 제공자 간의 조정 필요.

 

 

 

 

 

reference.

https://aws.amazon.com/ko/what-is/sso/

https://www.cloudflare.com/ko-kr/learning/access-management/what-is-sso/

https://velog.io/@duck-ach/SSO-SSOSingle-Sign-On%EC%97%90-%EB%8C%80%ED%95%B4%EC%84%9C

728x90