외부 OAuth 개요
외부 OAuth 개요 (External OAuth overview)
이 문서는 Snowflake 외부 OAuth(External OAuth)에 대한 개요를 제공해요.
본문
개요
외부 OAuth는 Snowflake 외부의 제3자 ID 제공자(IdP)가 인증 서버 역할을 하는 OAuth 구현이에요. Snowflake는 IdP가 발급한 접근 토큰을 신뢰하고, 이 토큰을 사용해 사용자를 대신해 Snowflake에 접근할 수 있게 해줘요.
외부 OAuth를 사용하면 조직은 이미 구축한 ID 관리 인프라(예: Okta, Microsoft Entra ID)를 그대로 사용해 Snowflake 접근을 제어할 수 있어요.
지원되는 ID 제공자
Snowflake 외부 OAuth는 다음을 포함한 여러 ID 제공자를 지원해요:
외부 OAuth 동작 방식
- 사용자가 IdP에서 인증해 접근 토큰을 받아요.
- 애플리케이션이 이 접근 토큰을 사용해 Snowflake에 연결을 시도해요.
- Snowflake는 외부 OAuth 통합에 정의된 IdP(발급자)와 서명 키를 사용해 토큰을 검증해요.
- 토큰이 유효하면 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에 따라 다를 수 있어요.