[Snowflake] Federated Authentication

차지예·2026년 6월 6일

Snowflake

목록 보기
22/49
post-thumbnail

1. 개념

  • Federated authentication은 안전한 SSO(Single Sign-On) 로 Snowflake에 연결하게 해준다.
  • SSO를 사용하면 사용자는 Snowflake에 직접 인증하지 않고 제3자 IdP로 인증한다.
  • Snowflake는 인증 책임을 SAML 2.0 호환 외부 IdP에 위임할 수 있다.

2. 핵심 구성 요소 (⭐ 중요)

구성 요소역할
SP (Service Provider)연합 환경에서 Snowflake가 SP 역할을 한다.
IdP (Identity Provider)사용자 자격 증명·프로필 정보를 생성·관리하고, SP에 대한 SSO 접근을 위해 사용자를 인증하는 외부의 독립 주체

3. 로그인 흐름

[Snowflake Interface] SSO 버튼 클릭
                ↓
[IdP] IdP 자격 증명 입력 → Snowflake 애플리케이션 클릭
                ↓
[Snowflake Interface] 로그인 성공
  • 사용자가 IdP(Okta, Entra ID 또는 커스텀 IdP)로 인증에 성공하면, IdP가 Snowflake에 SAML 응답을 보내 세션을 시작한다.

4. 지원 IdP

  • 강의 자료: Okta와 ADFS IdP에 네이티브 지원 (Image 1)
  • 공식 문서(현행): Okta와 Microsoft Entra ID가 Snowflake에 네이티브 지원을 제공한다.
  • 공통: 대부분의 SAML 2.0 호환 벤더를 IdP로 지원한다.
  • Okta/Entra ID 외의 IdP를 쓰려면 IdP에 Snowflake용 커스텀 애플리케이션을 정의해야 한다.

⚠️ 강의는 "Okta + ADFS"라고 하나, 현행 공식 문서는 네이티브 지원을 "Okta + Entra ID"로 명시. 시험에서는 Okta가 핵심, ADFS/Entra ID 표현은 자료에 따라 갈릴 수 있으니 둘 다 인지.

5. 설정 방법 (⭐⭐ — 구버전 vs 신버전)

[구버전 — Deprecated] 계정 파라미터 2개

파라미터역할
SAML_IDENTITY_PROVIDERFederated Auth 설정 중 IdP를 지정 (certificate, ssoUrl, type, label)
SSO_LOGIN_PAGESnowflake 메인 로그인 페이지에서 SP-initiated SSO 버튼 활성화 (= TRUE)
ALTER ACCOUNT SET SAML_IDENTITY_PROVIDER = '{...}';
ALTER ACCOUNT SET SSO_LOGIN_PAGE = TRUE;

[신버전 — 권장] Security Integration

  • SAML2 security integration이 더 이상 사용되지 않는(deprecated) SAML_IDENTITY_PROVIDER 계정 파라미터를 대체한다.
  • ACCOUNTADMIN 역할로 CREATE SECURITY INTEGRATION 명령을 실행한다.
CREATE SECURITY INTEGRATION <name>
  TYPE = SAML2
  ENABLED = { TRUE | FALSE }
  SAML2_ISSUER = '<string_literal>'
  SAML2_SSO_URL = '<string_literal>'
  SAML2_PROVIDER = '<string_literal>'
  SAML2_X509_CERT = '<string_literal>';

마이그레이션 (구 → 신)

  • 기존 단일 IdP 환경이 deprecated된 SAML_IDENTITY_PROVIDER 파라미터를 쓴다면, SYSTEM$MIGRATE_SAML_IDP_REGISTRATION 함수로 SAML security integration으로 마이그레이션해야 한다.
SYSTEM$MIGRATE_SAML_IDP_REGISTRATION('<integration_name>', '<issuer>')
  • 이 함수는 SAML_IDENTITY_PROVIDER 파라미터의 데이터를 사용해 새 security integration을 생성한다. 해당 파라미터가 없으면 함수는 실패한다.
  • 단, Snowflake는 구 파라미터를 사용하는 구현이 있는 한 계속 지원한다.

6. SP-initiated vs IdP-initiated (공식 문서 보강)

  • IdP-initiated SSO는 Snowflake 측 구성이 필요 없으며, 사용자에게 접근 방법(예: 내부 포털)만 알려주면 된다.
  • SAML2_ENABLE_SP_INITIATED 속성이 Snowflake-initiated(SP-initiated) SSO를 활성화한다.
  • SAML2_SP_INITIATED_LOGIN_PAGE_LABEL 속성은 IdP를 식별하는 문자열을 정의하며, 이 문자열이 Snowflake 로그인 페이지에 표시된다.

7. 핵심 요약 (필수 암기)

  • ✅ Snowflake = SP, 외부 = IdP, 프로토콜 = SAML 2.0
  • ✅ 네이티브 IdP = Okta (+ Entra ID / ADFS)
  • ✅ 구버전 설정 = SAML_IDENTITY_PROVIDER + SSO_LOGIN_PAGE (둘 다 ALTER ACCOUNT, deprecated)
  • ✅ 신버전 설정 = CREATE SECURITY INTEGRATION TYPE = SAML2 (ACCOUNTADMIN, 권장)
  • ✅ 마이그레이션 함수 = SYSTEM$MIGRATE_SAML_IDP_REGISTRATION
  • SSO_LOGIN_PAGE = TRUE → 로그인 페이지에 SSO 버튼 활성화

0개의 댓글