외부 OAuth용 Okta 구성
외부 OAuth용 Okta 구성 (Configure Okta for External OAuth)
이 문서는 Snowflake 외부 OAuth를 위해 Okta를 구성하는 방법을 설명해요.
본문
개요
Okta는 널리 사용되는 ID 제공자(IdP)예요. Snowflake 외부 OAuth를 Okta와 통합하면 Okta를 통해 인증된 사용자가 Snowflake에 접근할 수 있어요.
사전 요구 사항
- Okta 조직과 관리자 계정.
- Okta에서 OAuth용 애플리케이션 또는 API 인증 구성.
- Snowflake에서 외부 OAuth 통합을 만들 권한.
Okta에서 애플리케이션 만들기
- Okta 관리 콘솔에서 애플리케이션(application)을 만듭니다.
- OAuth 2.0 기능을 구성하고, 접근 토큰 발급을 위한 키/client를 설정합니다.
- 발급자(issuer) URL과 서명 키 정보를 확인합니다.
Okta에서 커스텀 클레임 추가
Snowflake 사용자를 식별하기 위해 Okta JWT에 사용자 매핑 클레임을 추가해야 해요. Okta의 Profile Editor 또는 인증 서버에서 커스텀 클레임을 정의해 접근 토큰에 Snowflake 로그인 이름을 포함시킵니다.
Snowflake에서 외부 OAuth 통합 만들기
Okta와 함께 사용할 외부 OAuth 통합을 만들어요:
CREATE SECURITY INTEGRATION okta_oauth
TYPE = EXTERNAL_OAUTH
ENABLED = TRUE
EXTERNAL_OAUTH_TYPE = OKTA
EXTERNAL_OAUTH_ISSUER = 'https://myorg.okta.com/oauth2/default'
EXTERNAL_OAUTH_TOKEN_USER_MAPPING_CLAIM = 'sub'
EXTERNAL_OAUTH_SNOWFLAKE_USER_MAPPING_ATTRIBUTE = 'login_name';
EXTERNAL_OAUTH_ISSUER: Okta 인증 서버의 발급자 URL.EXTERNAL_OAUTH_TOKEN_USER_MAPPING_CLAIM: Okta 토큰에서 사용자를 식별하는 클레임 (예:sub또는email).EXTERNAL_OAUTH_SNOWFLAKE_USER_MAPPING_ATTRIBUTE: Snowflake 사용자 속성 (예:login_name).
필요한 경우 발급자 URL이 .well-known/openid-configuration을 통해 검증 가능한지 확인하세요.
Okta 공개 키 설정
Snowflake가 Okta의 토큰 서명을 검증하려면 Okta의 공개 키(JWKS)가 필요해요. 통합 구성 시 Okta 인증 서버의 JWKS URI를 사용하거나 공개 키를 명시적으로 지정해요.
사용자 매핑
Okta 토큰의 클레임 값이 Snowflake 사용자의 해당 속성 값과 일치해야 해요. 예를 들어 매핑 클레임이 email이고 Snowflake 사용자 속성이 login_name이라면, Okta 사용자의 이메일이 Snowflake 로그인 이름과 일치해야 해요.
역할 매핑
외부 OAuth 통합에 기본 역할을 지정해 토큰 인증 사용자에게 역할을 자동 부여할 수 있어요:
ALTER SECURITY INTEGRATION okta_oauth
SET EXTERNAL_OAUTH_SNOWFLAKE_USER_MAPPING_ATTRIBUTE = 'login_name'
EXTERNAL_OAUTH_ISSUE_USER_ROLE_TO = 'ACCOUNTADMIN';
고려 사항
- Okta와 Snowflake 사용자 이름이 일치하도록 동기화가 필요해요.
- 토큰 만료 시간과 갱신 방식을 고려해야 해요.
- 보안을 위해 Okta 쪽의 서명 키와 인증 서버 설정을 정기적으로 확인하세요.