외부 OAuth 개요

외부 OAuth 개요 (External OAuth overview)

이 문서는 Snowflake 외부 OAuth(External OAuth)에 대한 개요를 제공해요.

출처: External OAuth overview

본문

개요

외부 OAuth는 Snowflake 외부의 제3자 ID 제공자(IdP)가 인증 서버 역할을 하는 OAuth 구현이에요. Snowflake는 IdP가 발급한 접근 토큰을 신뢰하고, 이 토큰을 사용해 사용자를 대신해 Snowflake에 접근할 수 있게 해줘요.

외부 OAuth를 사용하면 조직은 이미 구축한 ID 관리 인프라(예: Okta, Microsoft Entra ID)를 그대로 사용해 Snowflake 접근을 제어할 수 있어요.

지원되는 ID 제공자

Snowflake 외부 OAuth는 다음을 포함한 여러 ID 제공자를 지원해요:

외부 OAuth 동작 방식

  1. 사용자가 IdP에서 인증해 접근 토큰을 받아요.
  2. 애플리케이션이 이 접근 토큰을 사용해 Snowflake에 연결을 시도해요.
  3. Snowflake는 외부 OAuth 통합에 정의된 IdP(발급자)와 서명 키를 사용해 토큰을 검증해요.
  4. 토큰이 유효하면 Snowflake는 토큰에 매핑된 Snowflake 사용자로 접근을 허용해요.

외부 OAuth 통합 만들기

외부 OAuth를 사용하려면 외부 OAuth 통합(security integration)을 만들어요. 예시:

CREATE SECURITY INTEGRATION my_ext_oauth_integration
  TYPE = EXTERNAL_OAUTH
  ENABLED = TRUE
  EXTERNAL_OAUTH_TYPE = OKTA
  EXTERNAL_OAUTH_ISSUER = 'https://myorg.okta.com'
  EXTERNAL_OAUTH_TOKEN_USER_MAPPING_CLAIM = 'sub'
  EXTERNAL_OAUTH_SNOWFLAKE_USER_MAPPING_ATTRIBUTE = 'login_name';
  • EXTERNAL_OAUTH_TYPE: IdP 유형 (OKTA, AZURE, CUSTOM 등).
  • EXTERNAL_OAUTH_ISSUER: 토큰 발급자 URL.
  • EXTERNAL_OAUTH_TOKEN_USER_MAPPING_CLAIM: 사용자를 식별하는 토큰 클레임.
  • EXTERNAL_OAUTH_SNOWFLAKE_USER_MAPPING_ATTRIBUTE: Snowflake 사용자 속성.

외부 OAuth 통합에 역할 연결

외부 OAuth를 통해 접근하는 사용자에게 부여할 기본 역할을 통합에 지정할 수 있어요. 이렇게 하면 사용자가 로그인할 때 특정 역할로 자동 매핑돼요.

고려 사항

  • 외부 OAuth는 Snowflake 사용자 매핑을 위해 토큰의 클레임을 사용해요.
  • 보안을 위해 토큰 서명 키(공개 키)가 올바르게 구성되어야 해요.
  • 사용자 승인 흐름은 IdP에 따라 다를 수 있어요.

더 알아보기 (Learn more)