728x90
반응형
(개념) XML 형식의 보안 관련 메시지를 교환하기 위한 규칙을 정의하는 표준
- 주로 3개 이상의 독립된 엔티티 간 메시지 교환에 사용됨
(특징) 시스템 간에 동일한 규칙을 따르게 하여 복잡한 통합 작업을 단순화
(메시지) XML 형식으로 구성
예) <Response> <Assertion>
(유연성)
- SAML은 유연성을 강조하여 설계됨. 원칙적으로는 SAML로 많은 작업을 할 수 있음, 하지만 그 유연성이 복잡성으로 이어짐
- SAML 사양에는 수많은 예외사항이 있고, 많은 if와 예를 들어가 있어서 엣지 케이스를 추가함
- SAML은 오래됐기 때문에 일부 사람들은 유연성을 활용함
- 실제 운영 환경, 특히 레거시 시스템에서는 SAML이 비정상적인 동작을 하는 경우가 있음
(사용 목적)
- SAML은 주로 Single Sign-On(SSO)에 사용됨
- SAML은 몇 가지 이상한 SSO 유형을 정의하지만, 일반적으로 Web Browser SSO Profile을 사용함
- 최종 사용자는 중앙 집중식 시스템에 먼저 인증한 다음 원하는 소프트웨어 애플리케이션에 액세스함
- 사용자는 애플리케이션에 직접 인증하지 않음
- 예를 들어 Okta를 사용하여 이메일에 액세스한 적이 있다면 Web Browser SSO Profile을 사용한 것임
(SSO 관련 엔터티)
- SSO에는 3가지 주체가 관련됨:
- 사용자: 애플리케이션을 사용하려는 사람
- 서비스 제공자(SP): 애플리케이션 자체
- ID 제공자(IDP): 사용자가 인증에 사용할 중앙 서비스
- 각 고객의 IDP는 데이터베이스로 간주할 수 있음. 사람들에 대한 데이터를 추적함
- 회사는 종종 ID 제공자를 사용하여 직원을 부서에 할당하고 다양한 권한을 부여함
- SAML을 통해 사용자를 로그인할 때마다 IDP에서 정보를 가져와야 함. SSO에서는 주로 IDP에 사용자 ID 확인을 요청
- IDP와 사전 구성된 신뢰 관계가 필요함
- SAML SSO를 사용하는 모든 고객은 애플리케이션에서 자체 설정이 필요
- 하지만, IDP와 직접 메시지를 주고받지는 않음. SAML SSO에서는 서비스 제공자와 ID 제공자가 사용자의 브라우저를 통해 통신함
(엔터티 간 상호작용 방식)
- 일반적인 SAML SSO 프로세스:
- 사용자가 웹 브라우저에서 애플리케이션의 일부에 액세스하려고 함
- 사용자에게 유효한 보안 컨텍스트가 있는지 확인
- 사용자에게 유효한 보안 컨텍스트가 없으므로 로그인 페이지 표시
- 사용자가 일부 정보(예: 이메일 주소)를 입력하면 적절한 로그인 방법을 결정하는 데 사용됨
- 사용자를 IDP의 웹 주소로 리디렉션하고 사용자의 브라우저를 통해 SAML 메시지를 IDP에 전달
- IDP는 사용자에게 자격 증명을 묻는 메시지를 표시. 사용자가 성공적으로 인증됨
- IDP는 사용자의 인증에 대한 정보를 전달하는 SAML 메시지와 함께 사용자를 애플리케이션으로 다시 리디렉션함
- SAML 메시지를 처리하고 사용자에 대한 보안 컨텍스트를 설정해야 한다고 판단함
- 사용자에게 애플리케이션의 원하는 부분에 대한 액세스 권한을 부여함
- ID 공급자에서 SAML SSO 프로세스를 시작할 수도 있음
- 이 경우 인증 요청을 보내지 않고 인증 응답을 받게 됨
- SAML SSO 지원을 구현할 때 IDP에서 시작한 SSO에 대비해야 함
(교환 메시지)
- SAML SSO에서 주로 2가지 메시지가 관심사임
- 서비스 제공자에서 IDP로 가는 메시지를 SAML 요청(request)이라고 함
- IDP에서 서비스 제공자로 돌아오는 메시지를 SAML 응답(response)이라고 함
- SAML 요청은 실제로 그리 복잡하지 않음. XML을 HTTP 리디렉션을 통해 보내는 것으로 충분함
- <AuthnRequest> 태그에 ID를 포함하여 IDP가 원래 요청과 연결된 <Response>를 공유할 수 있도록 함
- <Issuer> 태그로 감싼 데이터도 IDP에 보내서 누구인지 알려줌
- SAML 응답은 더 까다로움. 일반적으로 POST를 통해 전송됨
- <Response>는 개념적으로 몇 개의 <Assertion> 태그를 감쌈
- <Assertion>은 사용자에 대한 클레임(누구인지, IDP로 어떻게 인증했는지 등)을 감쌈
- Assertion을 처리하여 사용자를 로그인할지 여부를 결정함
SAML에 대한 간단한 소개 | GeekNews (hada.io)
728x90
'03.Security' 카테고리의 다른 글
정보보안 - 정보보안/정보보호 인증 - ISMS-P 간편인증 (1) | 2024.08.03 |
---|---|
정보보안 - 정보보안/정보보호 인증 - ISMS-P (2) | 2024.08.03 |
사회공학 - 피싱 (Phishing) - 크라우드 스트라이크 (CrowdStrike) (2) | 2024.07.22 |
디지털 저작권 관리 기술 - AI 워터마킹 (0) | 2024.07.17 |
암호화 알고리즘 - ROT13(Rotate by 13) 암호화 (0) | 2024.07.06 |