웹개발기초

SSO - SAML 2.0 인증이란?

코딩하는 공부방 2024. 6. 2. 16:17

안녕하세요
기업에서 인증 로그인할 때 자주 사용하는
SSO 인증 중에 SAML 2.0 인증 관련해서
내용 정리해서 알려드릴게요
들어와 👊🏻

 


SSO(Single Sign-On)이란?

SSO(Single Sign-On; 통합인증)는 하나의 로그인 인증정보로 여러 애플리케이션에 걸쳐 사용할 수 있는 중앙집중식 세션 및 사용자 인증 서비스입니다.

<사진1>SSO 인증

과거에는 위에 왼쪽 그림처럼 각 애플리케이션별로 별도의 로그인 및 인증 과정을 거쳤다면, 최근에는 SSO를 도입함으로써, 하나의 ID로 한 번의 인증을 거쳐 여러 애플리케이션을 사용할 수 있게 되었다.

ID 및 PW의 개별 관리의 위험성 해소 ⇒ 중앙집중 관리를 통한 효율적 관리 가능 ⇒ 운용비용 감소 서비스별로 ID 및 PW를 달리 하여 각 서버별로 관리하게 되면, 각각의 서버에 보안 솔루션이 각각 적용되어야 하므로, 관리하기가 까다롭고 신경써야 할 것이 많아지게 됩니다.
User(사용자)의 편리성 증가됩니다. Admin뿐만 아니라, User 역시 한 ID 및 PW만 기억하고, 한 번의 인증으로 여러 서비스를 이용할 수 있기 때문에 번거로움이 크게 줄어듭니다.


SAML이란 무엇입니까?

SAML(Security Assertion Markup Language)은 외부 애플리케이션 및 서비스에 사용자가 자신이 누구인지 알려주는 표준화된 방법입니다. SAML은 사용자를 한 번 인증한 다음 해당 인증을 여러 애플리케이션에 전달하는 방법은 제공하여 SSO(Single Sign-ON) 기술을 가능하게 합니다. SAML의 최신 버전은 SAML 2.0입니다.

1 . 통합된 로그인 경험(Single Sign-ON, SSO)

SAML 2.0을 사용하면 사용자들이 여러 애플리케이션에 접속할 때 매번 로그인할 필요가 없습니다. 한 번의 로그인으로 모든 애플리케이션에 접근할 수 있게 되어 편리함을 제공합니다.
사용자 경험 개선을 할 수 있고, 로그인 절차를 간소화 및 시간절약을 할 수 있습니다.

2.  강화된 보안

SAML 2.0은 강력한 암호화와 보안 프로토콜을 사용하여 데이터와 인증 정보를 보호합니다. 이를 통해 중간자 공격, 피싱 등의 보안 위협을 줄 일 수 있습니다. 이를 통해 데이터 보안 강화 비밀번호 유출 위험을 감소시킬 수 있습니다.

3. 사용자 생산성 향상

SAML 2.0을 사용하면 사용자가 여러 애플리케이션에 쉽게 접근할 수 있어, 업무 효율성이 높아집니다. 이는 생상성 향상으로 이어집니다.

SAML 3가지 역할

User : 인증을 원하는 사용자
Identity Provider(IdP) : 인증 정보 제공자 (고객사 인증 시스템)
Service Provider(SP) : 서비스 제공자 (모두싸인)

1) IdP(Identity Provider)

ID 공급자(Idp)는 디지털 ID를 생성, 저장 및 관리하는 시스템입니다. 쉽게 말해 사용자 관리를 한다고 생각하면됩니다.
사용자를 직접 인증하는 시스템입니다. 서비스 공급자(SP - 앱, 웹사이트 또는 기타 디지털 서비스)에 인증 서비스를 제공합니다.
직접 구축도 가능하고, Okta, MS Azure AD, Google 등 IdP제공 플랫폼 이용 가능합니다.

2) SP(Service Provider)

IdP에서 얘기한 타사 서비스 공급자입니다. 사용자가 원하는 서비스에 접속할 수 있도록 도와주는 개체입니다. 서비스를 제공합니다.
쉽게 얘기하면 SaaS 클라우드 서비스가 하나하나를 각각의 SP라고 이해하면 됩니다. (Ex, Notion, Slack, CRM - Salesforce 등)

3) SAML Assertion

SAML 2.0 기반으로 Idp와 SP에서 주고받는 XML 문서입니다. (메타데이터 XML)

🔑 구글 로그인을 통해 서비스를 이용 → 구글은 IdP, SaaS 서비스(Notion, Slack 등)는 SP

인증 플로우 (프로세스)

<사진2> SAML 인증 플로우

  1. 서비스 제공자인 SAML은 서버의 자원에 접속하려고 시도, 서비스 제공자는 이미 인증됐는지를 확인, 그렇지 않는 경우 서비스 공급자는 인증 프로세스를 시작, 이미 인증됐다면 바로 7단계(Request target resource)
  2. 서비스 공급자가 적절한 ID 공급자를 결정 및 해당 공급자를 리다이렉션(지금 사례의 경우 SSO 서비스)(Redirect to SSO Service)
  3. 브라우저가 SSO 서비스에 인증 요청, 서비스는 사용자 자신을 식별 (Request SSO Service)
  4. SSO 서비스는 서비스 공급자가 SAMLResponse 매개 변수에 필요로 하는 인증 정보를 포함하는 XHTML 문서를 반환(Respond with Xhtml and XML form)
  5. SAMLResponse 매개 변수가 서비스 제공자에게 전달(Request assertion consumer Service)
  6. 서비스 공급자는 이 응답을 처리하고 사용자를 위해 보안 컨텍스트를 작성(Redirect to target resource)
  7. 이 정보를 이용해 관심있는 리소스를 다시 요청(Requset target resource)
  8. 마침내 리소스 반환(Respond with requested resource)

 

 

SAML에 대해 알아야 할 것

SAML(Security Assertion Markup Language)은 네트워크를 통해 여러 컴퓨터에서 보안 자격 증명을 공유할 수 있도록

www.itworld.co.kr

 

Just-in-Time Provisioning for SAML

General Information We use three kinds of cookies on our websites: required, functional, and advertising. You can choose whether functional and advertising cookies apply. Click on the different cookie categories to find out more about each category and to

help.salesforce.com