SAML의 정의와 원리
Security Assertion Markup Language의 줄임말인 SAML은 아이덴티티 공급업체(IdP)에서 서비스 공급업체(SP)로 권한 인증 자격 증명을 전달할 때 사용되는 개방형 표준입니다. 쉽게 말해서 애플리케이션간 커뮤니케이션이 안전하게 이루어지므로 사용자가 한 개의 자격 증명 세트만으로도 액세스할 수 있습니다.
SAML의 용도와 원리, 그리고 SAML을 사용하는 기업의 이점에 대해 자세히 알아보기에 앞서, 이러한 프로세스를 지원하는 SAML 공급업체의 유형부터 살펴보겠습니다. 공급업체의 유형은 다음과 같습니다.
SAML 공급업체 유형
SAML을 사용하려면 다음과 같이 아이덴티티 공급업체와 서비스 공급업체가 있어야 합니다.
- 사용자를 인증하는 아이덴티티 공급업체: 아이덴티티 공급업체의 시스템은 사용자 신원을 확인한 후 해당 데이터(및 사용자의 액세스 권한)를 서비스 공급업체에게 전송합니다. Okta, Microsoft Active Directory(AD) 및 Microsoft Azure가 이러한 아이덴티티 공급업체에 해당합니다.
- 사용자의 권한을 인증하는 서비스 공급업체: 서비스 공급업체의 시스템은 아이덴티티 공급업체의 인증 데이터를 사용해 서비스에 대한 액세스를 허용합니다. Salesforce, Box 등이 여기에 해당합니다.
따라서 SAML은 사용자의 아이덴티티에 대한 인증과 서비스를 사용할 수 있는 권한 인증을 서로 연결해주는 역할을 합니다. 다시 말해서 IdP와 SP가 서로 통신하는 데 유용한 언어입니다. 따라서 고용 회사(IdP)와 SaaS 회사(SP)가 모두 SAML을 구현하면 사용자를 원활하게 인증할 수 있습니다.
SAML의 용도
SAML은 서비스나 웹사이트에 대한 사용자 로그인 방식을 완전히 바꿔놓고 있지만 초기 개발 목적은 아이덴티티 공급업체, 서비스 공급업체, 엔드 유저 등 모든 당사자들의 페더레이션 인증 및 권한 인증 프로세스를 간소화하는 데 있습니다.
SAML은 로그인을 시도할 때마다 사용자 이름과 비밀번호 같은 자격 증명을 요구하지 않아도 사용자 신원과 권한 수준을 확인하여 액세스를 허용하거나 거부할 수 있다는 점에서 매우 유용합니다. 또한 아이덴티티 공급업체와 서비스 공급업체가 서로 분리되어 있기 때문에 기업이 사용자 관리를 중앙화하여 각종 소프트웨어 솔루션에 대한 액세스를 제공하는 데도 효과적입니다.
SAML은 SSO(Single Sign-On)를 활성화하는 데 주로 사용되어 아이덴티티 공급업체와 서비스 공급업체 사이에서 사용자를 인증합니다. 예를 들어 SAML이 구성된 애플리케이션을 배포하는 기업의 직원들은 한 가지 자격 증명 세트만 사용해 단일 대시보드에 로그인하여 모든 생산성 툴이나 커뮤니케이션 툴에 직접 액세스할 수 있습니다.
SAML의 원리
SAML은 XML(Extensible Markup Language)을 사용해 아이덴티티 공급업체와 서비스 공급업체 사이에서 통신합니다. 이때 SAML 어설션이 필요합니다. SAML 어설션이란 아이덴티티 공급업체가 사용자 권한 인증을 위해 서비스 공급업체에게 전송하는 XML 문서를 말합니다.
SAML 어설션에는 다음과 같이 세 가지 유형이 있습니다.
- 인증 어설션은 사용자의 아이덴티티를 검증한 후 로그인 시각과 사용한 인증 프로토콜(Kerberos, 다중 요소 인증 등)을 제공합니다.
- 속성 어설션은 SAML 속성을 서비스 공급업체에게 전달합니다. 여기에서 SAML 속성이란 사용자에 관한 정보를 제공하는 데이터를 말합니다.
- 권한 인증 어설션은 서비스를 이용할 수 있는 권한 보유 여부와 권한 인증 수준을, 혹은 비밀번호 실패나 액세스 권한 부재로 인한 아이덴티티 공급업체의 요청 거부 여부를 확인합니다.
즉, SAML은 아이덴티티 공급업체와 서비스 공급업체 사이에서 사용자 정보, 로그인 및 속성 정보를 전달합니다. 예를 들어 사용자가 SSO를 사용해 로그인하면 IdP가 SAML 속성을 SP에게 전달하기 때문에 사용자는 한 번만 로그인하면 됩니다.
그럼 이 SAML이 일상 생활에서 어떻게 적용되는지 살펴보겠습니다. 사용자가 새로운 회사에 입사하면 이메일 주소와 함께 대시보드에 대한 액세스 권한을 받게 됩니다. 이때 Okta와 같은 아이덴티티 공급업체를 통해 대시보드에 로그인하면 Slack이나 Salesforce 같은 외부 서비스 공급업체를 나타내는 아이콘이 표시됩니다. 그런 다음 해당 아이콘을 클릭하면 자격 증명을 다시 입력하지 않아도 해당 서비스에 자동으로 로그인됩니다.
그렇다고 해도 실제로 사용자가 웹사이트, 애플리케이션, 온라인 서비스에 액세스할 때 이용할 수 있는 SAML 프로세스에는 두 가지 유형이 있습니다.
서비스 공급업체가 시작하는 SAML 프로세스
사용자가 로그인 페이지나 모바일 앱을 통해 SAML 지원 서비스에 로그인하려고 시도할 경우 이 프로세스가 시작됩니다. 이때는 사용자에게 로그인을 요구하지 않고 사용자를 아이덴티티 공급업체로 리디렉션하여 인증을 처리합니다. 아이덴티티가 확인되면 사이트나 앱에 대한 액세스가 허용됩니다.
아이덴티티 공급업체가 시작하는 SAML 프로세스
사용자가 아이덴티티 공급업체에 로그인하여 데이터베이스에서 서비스 애플리케이션을 실행할 경우 이 프로세스가 시작됩니다. 이때 서비스 공급업체 계정을 이미 가지고 있으면 액세스가 자동으로 허용됩니다. 그렇지 않으면 아이덴티티 공급업체가 SAML을 사용해 해당 서비스에 대한 인증 계정을 새로 생성할 수 있습니다.
SAML의 이점
SAML은 사용자와 기업 모두에게 다양한 이점을 제공합니다. 특히 다수의 웹 앱을 사용하면서 발생할 수 있는 문제가 줄어듭니다. 이 외에도 다음과 같은 이점이 있습니다.
사용자 경험 개선
SAML은 애플리케이션과 서비스에 더욱 손쉽게 로그인하는 것은 물론이고 사용자 생산성을 개선하는 데도 효과적입니다. 사용자가 직무를 수행하는 데 필요한 툴에 언제든지 로그인할 수 있기 때문입니다.
자격 증명 분실 감소
이곳저곳 로그인을 반복하다 보면 비밀번호를 쉽게 잊을 수 있으며, 심지어 비밀번호를 종이에 적어 두어 자격 증명의 도난 위험이 증가하기도 합니다. 하지만 SAML을 사용하면 하나의 사용자 이름과 비밀번호만 알고 있으면 됩니다.
보안 강화
SAML은 안전한 아이덴티티 공급업체를 통해 단일 인증 지점을 제공하여 사용자의 아이덴티티 정보를 서비스 공급업체에게 전송합니다. 이로써 자격 증명이 직접 전송되므로 피싱이나 아이덴티티 탈취가 가능성이 최소화됩니다.
비용 절감
SAML을 구현하면 티켓 제출이나 비밀번호 리셋의 필요성이 사라져 관리 시간이 대폭 줄어듭니다. 또한 개발 비용(전용 인증 방식과 주로 연관이 있음)을 최소화하는 데도 효과적입니다.
사용자 관리 간소화
직원들이 다수의 애플리케이션을 사용하기 시작하면서 IT 부서는 업무 변경이나 직원 퇴사 시 액세스 권한을 관리하는 데 어려움을 겪을 수 있습니다. SAML에서는 각 사용자를 단일 디렉터리에서 관리하기 때문에 사용자 관리가 용이합니다.
SAML을 대체할 수 있는 솔루션
SAML이 아이덴티티 페더레이션 측면에서 다양한 이점을 제공하는 것은 사실이지만, 이 외에도 사용자 아이덴티티를 안전하게 관리하고 승인하는 데 유용한 대안적 표준이 있습니다.
OpenID: OpenID는 사용자가 로그인 정보를 추가로 입력하지 않아도 여러 웹사이트와 앱에 액세스할 수 있는 오픈 소스 아이덴티티 표준입니다. 예를 들어 Google, YouTube 또는 Facebook 자격 증명을 사용해 웹사이트에 로그인했다면 OpenID를 경험한 셈입니다.
OAuth: OAuth(OpenAuth의 줄임말)는 Google과 Twitter가 웹사이트 간 로그인을 간소화할 목적으로 공동 개발한 표준입니다. 이 표준은 애플리케이션 사이에서 정보를 공유하는 방식이 SAML과 비슷합니다(Facebook과 Google은 이전에 사용했을 가능성이 높은 OAuth 공급업체입니다). 하지만 JSON 토큰을 사용해 사용자를 인증한다는 점에서 다르며, 따라서 모바일에 더 적합합니다.
웹 서비스 페더레이션: 웹 서비스 페더레이션은 인증을 서비스 공급업체에서 아이덴티티 공급업체로 페더레이션하는 데 사용됩니다. 이 표준은 흔히 개발자가 좀 더 쉽게 구현할 수 있는 것으로 알려져 있으며, 클라우드 공급업체보다는 AD처럼 인기 있는 아이덴티티 공급업체에서 효과적으로 지원됩니다.
SAML 시작하기
SAML은 자격 증명 사용을 제한하고 아이덴티티를 중앙에서 감사 및 관리할 수 있게 해주는 사이버 보안 전략의 핵심 요소입니다. 또한 사용자가 강력한 보안을 유지하면서 원하는 웹 앱에 손쉽게 액세스할 수 있다는 이점도 있습니다.
적합한 아이덴티티 공급업체와 함께라면 SAML도 쉽게 시작할 수 있습니다. Okta의 경우 SAML 검증 툴을 비롯해 각종 오픈 소스 SAML 툴킷을 여러 가지 프로그래밍 언어로 제공합니다.
SAML이 기업과 직원에게 제공하는 이점에 대해 자세히 알고 싶다면 다음 리소스를 확인해보세요.