외부 OAuth용 커스텀 인증 서버 구성
외부 OAuth용 커스텀 인증 서버 구성 (Configure custom authorization servers for External OAuth)
이 문서는 Snowflake 외부 OAuth를 위해 커스텀 인증 서버(custom authorization server)를 구성하는 방법을 설명해요.
출처: Configure custom authorization servers for External OAuth
본문
개요
Snowflake 외부 OAuth는 Okta나 Microsoft Entra ID 외에도 커스텀 OAuth 2.0 인증 서버를 지원해요. 인증 서버가 표준 JWT 접근 토큰을 발급하고, 공개 키(JWKS)를 제공한다면 Snowflake와 통합할 수 있어요.
요구 사항
커스텀 인증 서버는 다음을 제공해야 해요:
- OAuth 2.0 기반 토큰 엔드포인트 (접근 토큰 발급).
- JWT 형식의 접근 토큰.
- 토큰 서명 검증을 위한 JWKS(JSON Web Key Set) 공개 키.
- 사용자 매핑에 사용할 토큰 클레임.
Snowflake에서 외부 OAuth 통합 만들기
커스텀 인증 서버용 외부 OAuth 통합을 만들어요:
CREATE SECURITY INTEGRATION custom_ext_oauth
TYPE = EXTERNAL_OAUTH
ENABLED = TRUE
EXTERNAL_OAUTH_TYPE = CUSTOM
EXTERNAL_OAUTH_ISSUER = 'https://auth.example.com/issuer'
EXTERNAL_OAUTH_JWS_KEYS_URL = 'https://auth.example.com/jwks'
EXTERNAL_OAUTH_TOKEN_USER_MAPPING_CLAIM = 'sub'
EXTERNAL_OAUTH_SNOWFLAKE_USER_MAPPING_ATTRIBUTE = 'login_name';
EXTERNAL_OAUTH_TYPE = CUSTOM: 커스텀 인증 서버 유형.EXTERNAL_OAUTH_ISSUER: 토큰 발급자(issuer) 식별자. 토큰의iss클레임과 일치해야 해요.EXTERNAL_OAUTH_JWS_KEYS_URL: 토큰 서명 검증에 사용할 공개 키를 제공하는 JWKS URL.EXTERNAL_OAUTH_TOKEN_USER_MAPPING_CLAIM: 토큰에서 사용자를 식별하는 클레임.EXTERNAL_OAUTH_SNOWFLAKE_USER_MAPPING_ATTRIBUTE: Snowflake 사용자 속성.
공개 키 지정
발급자가 여러 서명 키를 지원한다면 EXTERNAL_OAUTH_ANY_CLAIM 또는 특정 키 ID(kid)를 추가로 지정할 수 있어요. 공개 키는 EXTERNAL_OAUTH_JWS_KEYS_URL로 자동 가져오거나 EXTERNAL_OAUTH_JWS_KEY로 명시적으로 지정할 수 있어요.
사용자 및 역할 매핑
토큰의 매핑 클레임 값이 Snowflake 사용자 속성 값과 일치해야 해요. 통합에 기본 역할을 지정해 매핑된 사용자에게 역할을 부여할 수도 있어요.
ALTER SECURITY INTEGRATION custom_ext_oauth
SET EXTERNAL_OAUTH_ISSUE_USER_ROLE_TO = 'ACCOUNTADMIN';
주의 사항
- 발급자 URL과
iss클레임, JWKS URL이 정확해야 해요. - 토큰 서명 알고리즘(RS256 등)이 JWKS 공개 키와 일치해야 해요.
- 사용자 매핑 클레임과 Snowflake 사용자 값의 일치가 중요해요.