FastComments.com

SAML

FastComments는 Flex 및 Pro 요금제 고객을 위해 SAML 2.0 인증을 지원합니다. SAML은 조직의 아이덴티티 제공자(identity provider)를 통해 안전한 싱글 사인온(SSO) 인증을 가능하게 하여 사용자가 기존의 기업 자격 증명으로 FastComments에 접근할 수 있도록 합니다. 이 가이드는 SAML 인증의 설정, 구성 및 문제 해결을 다룹니다.

SAML이란? Internal Link

SAML (Security Assertion Markup Language)은 XML 기반의 개방형 표준으로, 당사자 간, 특히 아이덴티티 제공자(IdP)와 서비스 제공자(SP) 간에 인증 및 권한 부여 데이터를 교환합니다.

SAML 작동 방식

SAML은 사용자가 아이덴티티 제공자와 한 번 인증하면 여러 애플리케이션에 다시 자격 증명을 입력하지 않고도 접근할 수 있도록 싱글 사인온(SSO)을 가능하게 합니다. 사용자가 FastComments에 접근하려고 할 때:

  1. Authentication Request: FastComments는 사용자를 귀하의 아이덴티티 제공자로 리디렉션합니다.
  2. User Authentication: 사용자는 귀하나의 IdP(예: Active Directory, Okta, Azure AD)와 인증합니다.
  3. SAML Response: IdP는 서명된 SAML 어설션을 FastComments에 다시 보냅니다.
  4. User Access: FastComments는 어설션을 검증하고 인증된 사용자에게 접근을 허용합니다.

SAML의 장점

  • Enhanced Security: 중앙 집중식 인증은 비밀번호와 관련된 보안 위험을 감소시킵니다.
  • Improved User Experience: 사용자는 한 번 로그인하고 여러 애플리케이션에 원활하게 접근합니다.
  • Compliance: 접근 제어 및 감사 로그에 대한 규제 요구사항을 충족하는 데 도움이 됩니다.
  • Administrative Control: IT 관리자는 중앙 집중식 사용자 관리를 유지합니다.

SAML 2.0 지원

FastComments는 SAML 표준 중 가장 널리 채택된 버전인 SAML 2.0을 구현합니다. 우리의 구현은 다음을 지원합니다:

  • HTTP-POST and HTTP-Redirect bindings
  • 서명된 SAML 응답 및 어설션
  • 암호화된 어설션(옵션)
  • 다중 서명 및 다이제스트 알고리즘
  • 다양한 이름 식별자 형식

SAML과 SSO의 차이 Internal Link

FastComments는 SSO와 SAML 인증을 모두 제공합니다. 두 방식의 차이를 이해하면 조직에 맞는 올바른 접근 방식을 선택하는 데 도움이 됩니다.

Simple/Secure SSO 소개

FastComments는 사이트를 통해 댓글 위젯에 인증하기 위한 두 가지 SSO 흐름을 제공합니다. 이는 SAML과 다르며 SAML을 필요로 하지 않습니다. 대신 Simple SSO는 댓글 위젯에 객체를 전달하기만 하면 되고, Secure SSO는 여기에 더해 API 키로 페이로드를 해싱합니다.

반면 SAML은 사용자의 권한에 따라 댓글 위젯뿐만 아니라 전체 제품에 대해 사용자를 인증합니다 (사용자가 우리 도메인에 대해 타사 쿠키를 활성화한 경우).

SAML 인증

SAML은 더 강력한 보안 및 통합 기능을 제공하는 엔터프라이즈급 인증 프로토콜입니다:

  • 구현: IdP(Identity Provider) 구성 및 인증서 교환이 필요합니다
  • 보안: 서명된 XML 어설션을 사용하며 암호화를 지원합니다
  • 사용 사례: 기존 SAML 인프라(Active Directory, Okta 등)를 보유한 기업에 이상적입니다
  • 설정 복잡도: 더 복잡합니다 - IdP 구성 및 인증서 관리가 필요합니다
  • 엔터프라이즈 기능: 고급 역할 매핑, 중앙 집중식 사용자 관리, 감사 추적

SAML을 선택해야 하는 경우

다음과 같은 경우 SAML 인증을 고려하세요:

  • 이미 SAML 호환 ID 공급자(Okta, Azure AD, ADFS 등)를 사용 중인 경우
  • 엔터프라이즈급 보안 및 규정 준수가 필요한 경우
  • 중앙 집중식 사용자 관리 및 액세스 제어가 필요한 경우
  • SAML을 인증에 사용하는 여러 애플리케이션을 보유한 경우
  • 상세한 감사 추적 및 보안 보고가 필요한 경우

Simple 또는 Secure SSO를 선택해야 하는 경우

다음과 같은 경우 위젯 중심의 SSO 솔루션으로 충분할 수 있습니다:

  • 자체 인증 시스템을 보유한 경우
  • 최소한의 설정으로 빠른 구현이 필요한 경우
  • 엔터프라이즈 ID 공급자 통합이 필요하지 않은 경우
  • 애플리케이션에서 직접 사용자 데이터를 제어하고 싶은 경우
  • 더 간단한 보안 요구 사항을 가진 경우

Simple 및 Secure SSO는 사용자가 사이트나 앱을 통해 이미 계정을 보유하고 있지만 반드시 SAML을 사용하지는 않는 온라인 포털, 블로그 등에서 일반적으로 사용됩니다.

사용자 역할 및 권한 Internal Link

FastComments는 SAML 사용자 역할을 내부 권한에 매핑하여 조직을 위한 역할 기반 접근 제어를 가능하게 합니다.

FastComments 역할 시스템

FastComments는 역할 기반 권한 시스템을 사용하며, 사용자는 하나 이상의 역할을 가질 수 있고 이 역할이 접근 수준과 기능을 결정합니다.

사용 가능한 FastComments 역할

관리 역할

fc-account-owner

  • 권한: 전체 관리 접근
  • 기능: 모든 기능, 결제 관리, 사용자 관리
  • 사용 사례: 주 계정 관리자 및 소유자

fc-admin-admin

  • 권한: 대부분의 기능에 대한 관리 접근
  • 기능: 사용자 관리, 구성, 검토. 다른 관리자를 관리할 수 있습니다.
  • 사용 사례: 보조 관리자 및 IT 담당자

fc-billing-admin

  • 권한: 결제 및 구독 관리
  • 기능: 결제 수단, 인보이스, 구독 변경
  • 사용 사례: 재무팀 구성원 및 결제 담당자

전문 역할

fc-analytics-admin

  • 권한: 분석 및 보고 접근
  • 기능: 사이트 통계, 사용자 참여 데이터 조회
  • 사용 사례: 마케팅팀 및 데이터 분석가

fc-api-admin

  • 권한: API 접근 및 관리
  • 기능: API 자격 증명, 웹훅 구성
  • 사용 사례: 개발자 및 기술 통합 담당자

fc-moderator

  • 권한: 댓글 검토 기능
  • 기능: 댓글 승인/거부, 스팸 관리
  • 사용 사례: 커뮤니티 검토자 및 콘텐츠 관리자

역할 매핑 구성

SAML 속성 소스

FastComments는 다양한 SAML 속성 이름에서 역할 정보를 받아들여 서로 다른 아이덴티티 제공자와의 호환성을 보장합니다:

표준 속성 이름:

  • roles
  • groups
  • memberOf
  • role
  • group

Microsoft/ADFS 속성:

  • http://schemas.microsoft.com/ws/2008/06/identity/claims/role
  • http://schemas.xmlsoap.org/ws/2005/05/identity/claims/role

역할 형식 지원

배열 형식 (권장):

<saml:Attribute Name="roles">
    <saml:AttributeValue>fc-admin-admin</saml:AttributeValue>
    <saml:AttributeValue>fc-moderator</saml:AttributeValue>
</saml:Attribute>

쉼표로 구분된 형식:

<saml:Attribute Name="roles">
    <saml:AttributeValue>fc-admin-admin,fc-moderator</saml:AttributeValue>
</saml:Attribute>

단일 역할 형식:

<saml:Attribute Name="roles">
    <saml:AttributeValue>fc-admin-admin</saml:AttributeValue>
</saml:Attribute>

아이덴티티 제공자 역할 구성

Microsoft Azure AD

  1. 앱 역할 구성:

    • Azure AD 애플리케이션에서 FastComments 역할 정의
    • 사용자를 적절한 앱 역할에 할당
    • 할당된 역할을 포함하도록 클레임 구성
  2. 속성 매핑:

    Attribute Name: roles
    Source Attribute: user.assignedroles

Okta

  1. 그룹 할당:

    • FastComments 역할 이름과 일치하는 그룹 생성
    • 사용자를 적절한 그룹에 할당
    • 속성 문(attribute statement) 구성
  2. 속성 문:

    Name: roles
    Value: user.groups
    Filter: Starts with "fc-"

Google Workspace

  1. 그룹 매핑:

    • 조직 단위 또는 그룹 생성
    • FastComments 역할 접두사로 그룹 이름 지정
    • 속성 매핑 구성
  2. 커스텀 속성:

    Attribute Name: roles
    Value: Groups or custom schema attribute

기본 사용자 동작

역할이 없는 사용자

SAML 사용자에게 역할이 없거나 인식되지 않는 역할이 있는 경우:

  • 사용자는 표준 댓글 작성자로 생성됩니다
  • 관리 접근 권한이 부여되지 않습니다
  • 자신의 댓글을 작성하고 관리할 수 있습니다
  • 관리자 대시보드 기능에 접근할 수 없습니다

역할 상속

  • 사용자는 여러 역할을 동시에 가질 수 있습니다
  • 권한은 누적됩니다 (가장 높은 권한 수준이 적용됨)
  • IdP에서의 역할 변경은 다음 로그인 시 반영됩니다

SAML 사용자 관리

사용자 생성

사용자가 SAML을 통해 처음 로그인할 때:

  1. 사용자 계정: 이메일을 식별자로 하여 자동 생성됩니다
  2. 역할 할당: SAML 속성을 기반으로 역할이 적용됩니다
  3. 프로필 정보: 제공된 경우 이름/성이 채워집니다
  4. 권한 활성화: 역할이 즉시 활성화됩니다

역할 업데이트

기존 SAML 사용자는 역할 업데이트를 받습니다:

  1. 로그인 트리거: 역할 업데이트는 각 SAML 로그인 시 발생합니다
  2. 즉시 효과: 새 권한이 즉시 적용됩니다
  3. 역할 제거: 제거된 역할은 자동으로 취소됩니다
  4. 감사 추적: 역할 변경은 감사 로그에 기록됩니다

커스텀 역할 매핑

엔터프라이즈 커스터마이징

특별한 요구 사항이 있는 엔터프라이즈 고객을 위해:

  • 커스텀 역할 이름을 FastComments 권한에 매핑할 수 있습니다
  • 복잡한 역할 계층 구조를 구현할 수 있습니다
  • 부서별 접근 제어를 구성할 수 있습니다

커스텀 역할 매핑 구성에 대해서는 FastComments 지원팀에 문의하세요.

역할 검증

FastComments는 수신된 역할을 검증합니다:

  • 인식되지 않는 역할은 무시됩니다 (거부되지 않음)
  • 잘못된 형식의 역할 속성은 문제 해결을 위해 기록됩니다
  • SAML 어설션에 역할 정보가 없는 경우 사용자는 기존 역할을 유지합니다

모범 사례

역할 관리

  1. 최소 권한 원칙: 필요한 최소한의 권한만 할당
  2. 정기 감사: 사용자 역할과 접근 권한을 주기적으로 검토
  3. 명확한 명명: IdP에서 설명적인 그룹 이름 사용
  4. 문서화: 역할 할당에 대한 문서 유지

보안 고려 사항

  1. 역할 속성: SAML 응답에서 역할 속성이 적절히 보호되는지 확인
  2. 속성 검증: 승인된 시스템만 역할을 할당할 수 있는지 확인
  3. 접근 검토: 관리 역할 할당을 정기적으로 검토
  4. 모니터링: 역할 변경 및 관리 작업 모니터링

역할 문제 해결

일반적인 문제

역할이 적용되지 않음:

  • SAML 속성 이름이 지원되는 형식과 일치하는지 확인
  • IdP가 역할 정보를 전송하는지 확인
  • 역할 값이 FastComments 역할 이름과 정확히 일치하는지 확인

접근 거부:

  • 사용자가 IdP에서 적절한 역할이 할당되어 있는지 확인
  • 역할 철자와 대소문자 구분 확인
  • SAML 응답에서 역할이 올바르게 형식화되어 있는지 확인

누락된 권한:

  • 역할 정의와 필요한 권한 검토
  • 충돌하는 역할 할당이 있는지 확인
  • 역할 변경 후 사용자가 로그인했는지 확인

보안 모범 사례 Internal Link

SAML 구현 보안은 조직의 인증 인프라와 사용자 데이터를 보호하는 데 매우 중요합니다.

SAML 보안 기본

디지털 서명

SAML 응답 서명:

  • 모든 SAML 응답은 IdP에 의해 디지털 서명되어야 합니다
  • FastComments는 IdP의 공개 인증서를 사용하여 서명을 검증합니다
  • 인증 assertions의 변조를 방지합니다
  • 응답이 신뢰할 수 있는 IdP에서 왔음을 보장합니다

인증서 검증:

  • 인증서는 구성된 IdP 인증서와 대조하여 검증됩니다
  • 인증서 체인 검증은 신뢰 계층을 보장합니다
  • 만료되었거나 유효하지 않은 인증서는 거부됩니다
  • 인증서 교체는 사전에 계획되고 조정되어야 합니다

Assertion 보안

Audience Restriction:

  • SAML assertions에는 audience restriction (SP Entity ID)가 포함됩니다
  • 다른 서비스 제공자에 대한 assertion 재사용 공격을 방지합니다
  • FastComments는 audience가 테넌트 구성과 일치하는지 검증합니다
  • 다른 애플리케이션을 대상으로 하는 assertions는 거부합니다

시간 기반 검증:

  • Assertions에는 시간 기반 유효성 창이 포함됩니다
  • NotBefore and NotOnOrAfter 조건이 적용됩니다
  • 오래된 assertions의 재사용을 방지합니다
  • 시계 오차 허용 폭은 구성 가능하게 설정되어 있습니다

통신 보안

전송 계층 보안

HTTPS 요구 사항:

  • 모든 SAML 통신은 HTTPS를 통해 이루어집니다
  • TLS 1.2 이상이 필요합니다
  • 인증서 검증은 중간자(man-in-the-middle) 공격을 방지합니다
  • 안전한 통신은 민감한 인증 데이터를 보호합니다

엔드포인트 보안:

  • SAML 엔드포인트는 안전하고 인증된 연결을 사용합니다
  • IdP 및 SP 엔드포인트는 최신 TLS를 지원해야 합니다
  • 약한 암호화 스위트는 거부됩니다
  • 추가 보안을 위해 인증서 핀닝을 구현할 수 있습니다

데이터 보호

민감한 데이터 처리:

  • SAML assertions에는 민감한 사용자 정보가 포함될 수 있습니다
  • 데이터는 전송 중 암호화되며 안전하게 처리됩니다
  • 임시 저장은 최소화되고 안전하게 보호됩니다
  • 사용자 데이터 보관은 개인정보 보호 요구사항을 따릅니다

Assertion Encryption (선택 사항):

  • 추가 보안을 위해 SAML assertions를 암호화할 수 있습니다
  • assertions가 신뢰할 수 없는 네트워크를 통과할 때 유용합니다
  • FastComments에서 개인 키 구성이 필요합니다
  • 대부분의 배포는 대신 TLS 암호화에 의존합니다

인증 보안

Single Sign-On 이점

중앙 집중형 인증:

  • 비밀번호 관련 보안 위험을 줄입니다
  • 일관된 보안 정책을 적용할 수 있게 합니다
  • 액세스 제어의 단일 지점을 제공합니다
  • 보안 표준 준수를 용이하게 합니다

세션 관리:

  • SAML은 안전한 세션 수립을 가능하게 합니다
  • 세션 타임아웃은 중앙에서 관리될 수 있습니다
  • Single logout 기능(IdP가 지원하는 경우 제공)
  • 애플리케이션 전반에서 자격 증명 노출을 줄입니다

다중 요소 인증

IdP MFA Integration:

  • MFA 요구사항은 IdP에 의해 강제됩니다
  • FastComments는 IdP의 보안 정책을 상속합니다
  • 여러 MFA 방법(SMS, 인증기 앱, 하드웨어 토큰)을 지원합니다
  • MFA 정책의 중앙 관리

접근 제어 보안

역할 기반 접근 제어

최소 권한 원칙:

  • 사용자에게 최소한의 필요한 권한만 할당하세요
  • 광범위한 권한 대신 구체적인 역할을 사용하세요
  • 역할 할당을 정기적으로 검토하세요
  • 더 이상 필요하지 않을 때 접근 권한을 제거하세요

역할 검증:

  • SAML 역할 속성은 검증되고 정제됩니다
  • 알 수 없는 역할은 무시됩니다(거부하지 않음)
  • 역할 변경은 로그인 시 즉시 적용됩니다
  • 역할 변경에 대한 감사 로그가 유지됩니다

관리자 접근

관리자 역할 보호:

  • 관리자 역할은 명시적인 할당이 필요합니다
  • 관리자 접근 및 활동을 모니터링하세요
  • 민감한 역할 할당에 대해 승인 워크플로를 구현하세요
  • 관리자 계정에 대한 정기적인 감사를 수행하세요

Identity Provider 보안

IdP 구성 보안

인증서 관리:

  • 강력한 인증서를 사용하세요(RSA-2048 이상)
  • 적절한 인증서 교체 절차를 구현하세요
  • IdP에서 개인 키를 안전하게 저장하세요
  • 인증서 만료 날짜를 모니터링하세요

접근 제어:

  • SAML 애플리케이션 구성을 수정할 수 있는 사람을 제한하세요
  • 구성 변경에 대한 승인 프로세스를 구현하세요
  • 구성 변경 및 접근을 모니터링하세요
  • IdP 구성에 대한 정기적인 보안 검토를 수행하세요

속성 보안

민감 속성 보호:

  • SAML 속성에 포함되는 민감한 데이터를 최소화하세요
  • 민감한 그룹 이름 대신 역할 식별자를 사용하세요
  • 민감한 정보를 포함하는 assertions를 암호화하세요
  • 데이터 최소화 원칙을 따르세요

속성 검증:

  • 모든 수신 SAML 속성을 검증하세요
  • 주입 공격을 방지하기 위해 속성 값을 정제하세요
  • 적절한 곳에 속성 값 제한을 구현하세요
  • 의심스럽거나 형식이 잘못된 속성을 로그로 기록하세요

모니터링 및 감사

인증 모니터링

실패한 인증 추적:

  • 실패한 SAML 인증 시도를 모니터링하세요
  • 비정상적인 인증 패턴에 대해 경고를 발생시키세요
  • 인증서 검증 실패를 추적하세요
  • 구성 관련 오류를 로그로 기록하세요

성공 모니터링:

  • 성공한 인증 비율을 모니터링하세요
  • 사용자 역할 할당 및 변경을 추적하세요
  • 정상 인증 흐름의 타이밍을 확인하세요
  • 예상치 못한 사용자 생성 여부를 모니터링하세요

보안 이벤트 로깅

감사 추적 유지:

  • 모든 SAML 인증 이벤트를 로그로 기록하세요
  • 구성 변경 기록을 유지하세요
  • 관리자 행위 및 접근을 추적하세요
  • 로그는 변조 방지 기능을 갖춘 안전한 저장소에 보관하세요

경고 구성:

  • 보안 관련 이벤트에 대한 경고를 설정하세요
  • 인증서 만료를 모니터링하세요
  • 반복적인 인증 실패에 대해 경고를 발생시키세요
  • 비정상적인 관리자 활동을 통지하세요

규정 준수 고려 사항

데이터 프라이버시

사용자 데이터 보호:

  • GDPR, CCPA 및 관련 개인정보 보호 규정을 준수하세요
  • 개인 데이터 수집 및 처리를 최소화하세요
  • 사용자가 개인정보를 제어할 수 있도록 하세요
  • 데이터 보관 및 삭제 정책을 구현하세요

국경 간 데이터 전송:

  • 데이터 저장 위치 요구사항을 고려하세요
  • 국제 전송 시 적절한 보호 조치를 구현하세요
  • IdP와 FastComments 간의 데이터 흐름을 문서화하세요
  • 현지 개인정보 보호법을 준수하세요

보안 표준

업계 표준 준수:

  • SAML 2.0 보안 모범 사례를 따르세요
  • NIST 인증 가이드라인을 구현하세요
  • SOC 2 및 ISO 27001 요구사항을 고려하세요
  • 정기적인 보안 평가 및 침투 테스트를 수행하세요

사고 대응

보안 사고 절차

침해 대응:

  • 보안 사고를 즉시 격리합니다
  • 영향받은 당사자에게 통지합니다
  • 조사 및 근본 원인 분석을 수행합니다
  • 시정 조치를 시행합니다

인증서 손상:

  • 손상된 인증서를 즉시 폐기합니다
  • 비상 인증서 교체 절차를 수행합니다
  • 사용자 통지 및 재인증 요구사항을 시행합니다
  • 보안 검토 및 강화 조치를 수행합니다

비즈니스 연속성

백업 인증 방법:

  • 대체 인증 방법을 유지하세요
  • 비상 접근 절차를 문서화하세요
  • 백업 인증의 정기적인 테스트를 수행하세요
  • 중단 시 명확하게 소통하세요

재해 복구:

  • 재해 복구를 위해 SAML 구성을 문서화하세요
  • 인증서 및 구성 사본을 보관하세요
  • 복구 절차를 정기적으로 테스트하세요
  • IdP의 재해 복구 계획과 조율하세요

보안 모범 사례 요약

구현 보안

  1. 강력한 인증서 사용: RSA-2048 이상 및 적절한 검증
  2. HTTPS 적용: 모든 통신을 안전하고 암호화된 채널을 통해
  3. 모든 입력 검증: 모든 SAML 속성을 정제하고 검증
  4. 지속적 모니터링: 포괄적인 모니터링 및 경고 시스템 구현
  5. 정기 검토: 주기적인 보안 검토 및 업데이트 수행

운영 보안

  1. 최소 권한 원칙: 최소한의 필요한 권한을 할당
  2. 정기 감사: 접근, 역할 및 구성을 정기적으로 검토
  3. 문서화: 최신 보안 문서를 유지
  4. 교육: 직원이 SAML 보안 요구사항을 이해하도록 보장
  5. 사고 대비: 사고 대응 절차를 준비해 두세요

조직 보안

  1. 변경 관리: 제어된 변경 프로세스를 구현
  2. 직무 분리: 관리 책임을 분담
  3. 정기 업데이트: 모든 시스템과 인증서를 최신 상태로 유지
  4. 공급업체 관리: IdP 및 관련 서비스의 보안을 모니터링
  5. 규정 준수 모니터링: 규정 준수를 지속적으로 보장

SAML 인증은 FastComments 사용자에게 엔터프라이즈급 보안과 원활한 사용자 경험을 제공합니다. 적절한 구성 및 테스트를 통해, SAML은 기존의 ID 인프라와 통합되는 안전한 싱글 사인온을 제공하는 동시에 강력한 보안 통제와 포괄적인 감사 기능을 유지합니다.