SAML 인증에 대한 개발자 안내서 [3 Online Tools]

오늘날의 세계에서는 암호 관리를 단순화하는 것이 필수적입니다. 기업이 디지털화에서 도약함에 따라 직원들은 그 어느 때보다 협업, 메시징 및 스토리지 도구를 더 많이 사용하고 있습니다.

이는 개발자에게 어려운 과제가 됩니다. 직원에게 클라우드에 저장된 내부 애플리케이션 및 데이터에 대한 보안 액세스를 제공하려면 어떻게 해야 합니까? 많은 사람들에게 답은 SAML 인증입니다!

SAML이란 무엇입니까?

Security Assertion Markup Language 또는 SAML은 인증 프로세스를 단순화하는 개방형 표준입니다. 인증 대상 엔터티와 웹 서비스 또는 애플리케이션 간의 통신을 표준화하는 XML(Extensible Markup Language)을 기반으로 합니다. 즉, SAML을 사용하면 단일 로그인을 사용하여 여러 다른 애플리케이션에 로그인할 수 있습니다.

한편, 서비스 제공자는 사용자에게 권한을 부여하기 위해 ID 제공자(IdP) 인증이 필요합니다. 예를 들어 Salesforce는 사용자 인증을 위해 ID 공급자에 의존하는 서비스 공급자입니다.

반면에 ID 제공자는 최종 사용자가 자신임을 인증하고 해당 데이터를 서비스에 대한 사용자의 액세스 권한과 함께 서비스 제공자에게 보냅니다. 한 가지 예는 ID 솔루션을 제공하는 리더 중 하나인 AuthO입니다.

SAML 싱글 사인온은 어떻습니까?

SAML의 주요 역할 중 하나는 SSO를 활성화하는 것입니다. SAML 이전에는 SSO가 가능했지만 쿠키에 의존하고 동일한 도메인에서만 실행 가능했습니다.

SAML은 사용자가 단일 로그인 및 자격 증명 집합으로 여러 애플리케이션에 액세스할 수 있도록 하여 SSO(Single Sign-On)를 활성화합니다. SAML은 새로운 것은 아니지만 2002년부터 사용되었으며 많은 새로운 애플리케이션과 SaaS 회사에서 SSO에 SAML을 사용하고 있습니다. 최신 버전인 SAML 2.0은 웹 기반 교차 도메인 SSO를 가능하게 하며 리소스 인증을 위한 표준입니다.

SAML 인증의 이점은 무엇입니까?

SAML은 보안, 사용자 및 기타 서비스 공급자(SP)에게 많은 이점을 제공합니다.

  랜섬웨어에서 살아남고 싶으십니까? PC를 보호하는 방법은 다음과 같습니다.

단순성: 사용자는 IdP에 한 번만 로그인하면 모든 애플리케이션에 원활하고 안전하게 액세스할 수 있습니다.

보안 강화: 많은 SP는 로그인 시 보안 사용자 인증을 구현하고 시행할 시간이나 리소스가 없습니다. 일반적으로 IdP는 사용자 ID를 인증하는 데 더 적합합니다. IdP에 인증을 반환함으로써 SAML은 MFA와 같은 여러 보안 계층을 적용할 수 있는 보안 인증을 활성화합니다.

향상된 사용자 경험: SAML을 사용하면 사용자가 여러 사용자 이름과 비밀번호를 기억해야 하는 번거로움에 작별을 고할 수 있습니다.

관리 오버헤드 감소: 서비스 제공업체는 비밀번호를 저장하지 않고도 플랫폼 보안을 개선할 수 있습니다. 잊어버린 암호 문제를 처리할 필요가 없습니다. 헬프 데스크는 비용을 절감하고 기술 팀이 다른 긴급 요청을 처리할 수 있도록 합니다.

Auth0이란 무엇이며 SAML 인증과 어떻게 연결되나요?

Auth0는 사용자 인증 및 권한 부여 서비스를 제공하는 플랫폼입니다. IdP 및 SP 둘 다일 수 있습니다. Auth0은 SAML과 통합할 수 있는 범용 로그인을 제공합니다. 개발자는 종종 SAML과 함께 Auth0을 사용하여 여러 IdP를 사용하여 위험을 분산합니다.

Auth0은 거의 모든 주요 언어 및 API와 함께 사용할 수 있습니다. 또한 소셜 공급자, 데이터베이스 및 LDAP 디렉토리와 통합될 수 있습니다.

SAML SSO 흐름

SAML의 주요 역할 중 하나는 SSO(Single Sign-On)를 활성화하는 것입니다. SAML 이전에는 SSO가 가능했지만 쿠키에 의존하고 동일한 도메인에서만 실행 가능했습니다.

SAML은 사용자가 단일 로그인 및 자격 증명으로 여러 애플리케이션에 액세스할 수 있도록 하여 SSO를 활성화합니다. SAML은 새로운 것이 아니며 2002년부터 존재했으며 많은 새로운 애플리케이션과 SaaS 회사에서 SSO에 SAML을 사용하고 있습니다. 최신 버전인 SAML 2.0은 웹 기반 교차 도메인 SSO를 가능하게 하며 리소스 인증을 위한 표준입니다.

구체적으로 말하면 사용자가 다른 응용 프로그램을 사용할 때 사용자에게 한 번만 인증을 요청하는 것과 관련이 있습니다. 예를 들어 Gmail, Youtube, Google Apps 등의 서로 다른 서비스 간에 공유되는 Google 인증을 생각할 수 있습니다.

  Linux에서 Angry IP 스캐너를 사용하여 IP 주소를 스캔하는 방법

이 작동 모드에서 Google은 서비스에 대한 ID 제공자(IdP)입니다. 이러한 서비스를 “서비스 제공자”(SP)라고 합니다.

입증

외부 응용 프로그램에 연결할 때 알 수 없는 사용자를 회사 IdP로 보냅니다. 이 IdP는 HTTPS에서 액세스할 수 있는 웹 서비스입니다. 내부 또는 외부에서 호스팅할 수 있습니다.

내부 인증

그런 다음 사용자는 IdP에게 자신의 신원을 증명합니다. 이 단계는 명시적 인증(로그인/비밀번호) 또는 기존 토큰의 전파에 의해 수행될 수 있습니다.

주장의 생성

그런 다음 IdP는 요청된 서비스에 대해서만 주어진 시간 동안 유효한 일종의 사용자 ID 카드인 “토큰”을 생성합니다. 이 토큰에서 특히 다음을 찾을 수 있습니다.

  • 사용자의 ID: 로그인, 이메일 또는 기타 필드
  • 선택적 추가 속성: 성, 이름, 언어 등
  • 토큰의 유효 기간
  • IdP의 토큰 서명

IdP에서 SP로 전송

가장 실용적인 모드에서 어설션은 IdP에서 SP로 직접 전달되지 않고 사용자 자신을 통해 전달됩니다. HTTP 바운스 메커니즘을 통해 IdP는 클라이언트 브라우저에 서비스 제공자에게 전송할 토큰을 제공합니다. 도도부현이 제공하는 신분증과 비교할 수 있어 모든 기관에 제출할 수 있습니다.

SP의 토큰 소비

서비스 제공자는 사용자로부터 토큰을 받습니다. SP는 이 IdP를 신뢰하도록 선택했습니다. 또한 서명과 토큰의 무결성, 유효 기간을 확인합니다. 테스트가 결정적이면 SP는 사용자에게 세션을 엽니다.

출처: 위키피디아

SAML 인증 대 사용자 인증

종종 SAML 인증은 권한 부여와 혼동됩니다. 명확성을 위해 인증과 권한 부여의 개념을 구별하는 것이 중요합니다.

인증: 사용자의 신원을 확인하는 것입니다. 기본적으로 그들이 말하는 사람인지 확인됩니다. 한 가지 예는 이메일과 비밀번호를 사용하여 시스템에 액세스하는 것입니다. 단일 세션 또는 다른 플랫폼에 대한 로그인입니다.

권한 부여: 사용자가 계정의 리소스에 액세스하기 위해 타사 도구에 부여하는 권한입니다. 사용자의 승인으로 인증 프로토콜은 자격 증명에 액세스하지 않고 토큰을 교환합니다. 일반적으로 플랫폼(예: Facebook)이 Google 계정의 특정 정보에 액세스하도록 허용할 때 이 작업을 수행합니다.

SAML의 필수 용어

SAML 주장

SAML 어설션은 일반적으로 ID 제공자가 서비스 제공자에게 전달합니다. 어설션에는 서비스 제공자가 액세스 제어 결정을 내리는 데 사용하는 명령문이 포함됩니다. SAML은 세 가지 유형의 선언을 제공합니다.

  • 인증 문은 서비스 제공자가 인증 방법을 사용하여 주어진 시간에 ID 제공자에게 실제로 인증되었음을 주장합니다.
  • 속성 선언은 주제가 특정 속성과 연관되어 있음을 주장합니다. 속성은 단순히 이름-값 쌍입니다. 신뢰 당사자는 속성을 사용하여 액세스 제어 결정을 내립니다.
  • 승인된 결정 진술은 주체가 자원에 대한 증거를 제시함으로써 자원에 대해 행동할 수 있다고 주장합니다. SAML에서 권한 결정 상태의 표현은 의도적으로 제한됩니다.
  Linux에 0 AD를 설치하는 방법

주장 소비자 서비스

어설션 소비자 서비스 또는 ACS는 ID 공급자가 사용자 인증 응답 후 리디렉션하는 지점입니다. ID 공급자가 리디렉션하는 지점은 개인 정보를 전송하는 HTTPS 끝점입니다.

기본 릴레이 상태

SAML 메시지가 인증된 후 사용자가 리디렉션되는 기본 URL입니다. 기본 릴레이 상태는 IdP와 SP 간의 메시지를 조정하는 데 사용됩니다.

SAML은 널리 사용되는 프로토콜이며 종종 SAML 주장을 디코딩해야 합니다. 다음은 SAML 메시지 및 어설션을 인코딩, 디코딩 및 형식화하기 위한 최고의 SAML 도구입니다.

#1. SAML도구

SAMltool OneDesign의 온라인 SAML 도구 및 툴킷 모음입니다. 여기에는 SAML 메시지 인코딩 및 디코딩, 주장 암호화 및 암호 해독, SAML 메시지 및 주장 서명 및 검증을 위한 다양한 도구가 포함됩니다. SAMLtool은 또한 이러한 도구를 여러 CMS와 통합할 수 있는 여러 플러그인을 제공합니다.

#2. Samtool.io

Auth0 제공, samltool.io 또한 요청이 포함된 원시 XML 또는 URL을 간단히 붙여넣어 SAML 메시지 및 주장을 디코딩, 검사 및 확인하는 온라인 도구입니다.

#삼. SAM 디코더

SAM 디코더 PingIdentity에서 제공하는 SAML 디코딩을 위한 간단한 온라인 도구입니다. SAM 디코더는 SAML 메시지, 주장 및 메타데이터를 디코딩, 확장 및 형식화하는 데 사용할 수 있습니다.

마지막 단어

SAML 표준은 마크업 언어를 기반으로 하는 중앙 인증 인스턴스를 구현하는 데 매우 유용합니다. 중요한 이점 중 하나는 높은 효율성과 높은 보안 표준을 제공한다는 것입니다.

특히 개별 애플리케이션이 사용자 데이터를 저장하거나 동기화할 필요가 없어 보안 유출 가능성을 최소화했다. 이러한 방식으로 주요 목표 중 하나가 달성되는데, 이는 높은 수준의 보안과 가능한 최상의 사용 용이성을 조화시키는 것입니다.

또한 최고의 사용자 인증 플랫폼을 살펴볼 수도 있습니다.