CREATE SECURITY INTEGRATION
CREATE SECURITY INTEGRATION (OIDC)
CREATE SECURITY INTEGRATION (OIDC) 명령은 계정에 새 OIDC 보안 통합을 만들거나 기존 통합을 교체하는 명령이에요. OIDC 보안 통합은 Snowflake와 OpenID Connect ID 공급자(IdP) 사이에 인터페이스를 만들어 SSO(단일 로그온) 워크플로우를 제공합니다.
본문
계정에 새 OIDC 보안 통합을 만들거나 기존 통합을 교체하는 명령입니다. Preview Feature — Open — 모든 계정에서 사용할 수 있어요. OIDC 보안 통합은 Snowflake와 OpenID Connect ID 공급자(IdP) 사이에 인터페이스를 만들어 SSO(단일 로그온) 워크플로우를 제공합니다.
다른 유형의 보안 통합(예: SAML2) 만들기에 대한 정보는 CREATE SECURITY INTEGRATION 문서를 참고하세요. 개념 정보와 구성 워크스루는 Configuring OpenID Connect (OIDC) federated authentication 문서를 참고하세요.
관련 명령: ALTER SECURITY INTEGRATION (OIDC), DROP INTEGRATION, SHOW INTEGRATIONS, DESCRIBE INTEGRATION
Syntax
필수 파라미터는 OIDC_PROVIDER 값에 따라 달라져요.
사용자 정의 공급자:
CREATE [ OR REPLACE ] SECURITY INTEGRATION [ IF NOT EXISTS ]
<name>
TYPE = OIDC
[ ENABLED = { TRUE | FALSE } ]
OIDC_PROVIDER = 'CUSTOM'
OIDC_ISSUER = '<string_literal>'
OIDC_CLIENT_ID = '<string_literal>'
OIDC_CLIENT_SECRET = '<string_literal>'
OIDC_TOKEN_USER_MAPPING_CLAIM = '<string_literal>'
OIDC_SNOWFLAKE_USER_MAPPING_ATTRIBUTE = { 'LOGIN_NAME' | 'EMAIL_ADDRESS' }
[ OIDC_LOGIN_PAGE_LABEL = '<string_literal>' ]
[ OIDC_ENABLE_SSO_LOGIN_PAGE = { TRUE | FALSE } ]
[ OIDC_SCOPES = ( '<string_literal>' [ , '<string_literal>' , ... ] ) ]
[ OIDC_AUTHORIZATION_ENDPOINT = '<string_literal>' ]
[ OIDC_TOKEN_ENDPOINT = '<string_literal>' ]
[ OIDC_JWKS_URI = '<string_literal>' ]
[ OIDC_USERINFO_ENDPOINT = '<string_literal>' ]
[ ALLOWED_USER_DOMAINS = ( '<string_literal>' [ , '<string_literal>' , ... ] ) ]
[ ALLOWED_EMAIL_PATTERNS = ( '<string_literal>' [ , '<string_literal>' , ... ] ) ]
[ COMMENT = '<string_literal>' ]
관리형 공급자(Google):
CREATE [ OR REPLACE ] SECURITY INTEGRATION [ IF NOT EXISTS ]
<name>
TYPE = OIDC
[ ENABLED = { TRUE | FALSE } ]
OIDC_PROVIDER = 'GOOGLE'
OIDC_ALLOWED_GOOGLE_HOSTED_DOMAINS = ( '<string_literal>' [ , '<string_literal>' , ... ] )
[ OIDC_ENABLE_SSO_LOGIN_PAGE = { TRUE | FALSE } ]
[ ALLOWED_USER_DOMAINS = ( '<string_literal>' [ , '<string_literal>' , ... ] ) ]
[ ALLOWED_EMAIL_PATTERNS = ( '<string_literal>' [ , '<string_literal>' , ... ] ) ]
[ COMMENT = '<string_literal>' ]
관리형 공급자(Microsoft):
CREATE [ OR REPLACE ] SECURITY INTEGRATION [ IF NOT EXISTS ]
<name>
TYPE = OIDC
[ ENABLED = { TRUE | FALSE } ]
OIDC_PROVIDER = 'MICROSOFT'
OIDC_ALLOWED_MSFT_TENANTS = ( '<string_literal>' [ , '<string_literal>' , ... ] )
[ OIDC_ENABLE_SSO_LOGIN_PAGE = { TRUE | FALSE } ]
[ ALLOWED_USER_DOMAINS = ( '<string_literal>' [ , '<string_literal>' , ... ] ) ]
[ ALLOWED_EMAIL_PATTERNS = ( '<string_literal>' [ , '<string_literal>' , ... ] ) ]
[ COMMENT = '<string_literal>' ]
Required parameters (필수 파라미터)
name— 통합의 식별자(이름)를 지정하는 문자열이에요. 계정 내에서 고유해야 합니다. 또한 식별자는 알파벳 문자로 시작해야 하고, 전체 식별자 문자열을 큰따옴표로 감싸지 않는 한 공백이나 특수 문자를 포함할 수 없어요 (예:"My object"). 큰따옴표로 감싼 식별자는 대소문자를 구분합니다. 자세한 내용은 Identifier requirements 문서를 참고하세요.TYPE = OIDC— 통합 유형을 지정해요.OIDC_PROVIDER— ID 공급자 유형이에요. 유효한 값:CUSTOM,GOOGLE,MICROSOFT. 기본값: CUSTOM. 생성 후 변경할 수 없으며(불변), 공급자를 바꾸려면 통합을 삭제·재생성해야 해요. 대소문자를 구분하지 않습니다.
Required parameters (custom providers only)
OIDC_PROVIDER='CUSTOM'일 때 다음 파라미터가 필요합니다. 관리형 공급자(GOOGLE, MICROSOFT)에서는 거부됩니다. 관리형 공급자의 경우 Snowflake는 사용자 매핑을 email 클레임 → EMAIL_ADDRESS로 고정하므로 매핑 파라미터를 설정할 수 없어요.
OIDC_ISSUER = '<string_literal>'— IdP 발급자 URL이에요. HTTPS여야 합니다. 토큰 검증과 엔드포인트 디스커버리로 사용됩니다. 생성 후 불변입니다.OIDC_CLIENT_ID = '<string_literal>'— IdP에 등록된 OAuth 2.0 클라이언트 ID예요. 생성 후 불변입니다.OIDC_CLIENT_SECRET = '<string_literal>'— IdP에 등록된 OAuth 2.0 클라이언트 시크릿이에요. 저장 시 암호화됩니다.DESCRIBE INTEGRATION으로 반환되지 않으며,ALTER SECURITY INTEGRATION (OIDC)으로 교체할 수 있습니다.OIDC_TOKEN_USER_MAPPING_CLAIM = '<string_literal>'— Snowflake 사용자를 식별하는 데 사용되는 ID 토큰 클레임이에요. 단일 클레임 이름(예:'email') 또는 순서가 있는 클레임 이름 목록(예:('email', 'sub'))을 지정합니다. 사용자 정의 클레임 이름도 허용됩니다. 문자열 값 클레임만 지원됩니다.OIDC_SNOWFLAKE_USER_MAPPING_ATTRIBUTE = { 'LOGIN_NAME' | 'EMAIL_ADDRESS' }— 토큰 클레임 값과 대조할 Snowflake 사용자 속성이에요.EMAIL_ADDRESS의 경우 추가 규칙이 적용됩니다.
Required parameters (managed providers only)
각 관리형 공급자는 통합을 통해 어떤 ID 공급자 조직이 로그인할 수 있는지 제한하는 허용 목록을 요구해요.
OIDC_ALLOWED_GOOGLE_HOSTED_DOMAINS— 이 통합을 통해 로그인할 수 있는 Google Workspace 호스트 도메인으로, ID 토큰의hd클레임과 대조됩니다.OIDC_PROVIDER='GOOGLE'일 때 필수입니다. 각 항목은 호스트 도메인(예:'mycompany.com')이거나hd클레임이 없는 개인 또는 비관리 Google 계정을 허용하는 리터럴'personal'입니다. 대소문자를 구분하지 않으며 목록은 비어 있을 수 없습니다.OIDC_ALLOWED_MSFT_TENANTS— 이 통합을 통해 로그인할 수 있는 Microsoft Entra ID 테넌트로, ID 토큰의tid클레임과 대조됩니다.OIDC_PROVIDER='MICROSOFT'일 때 필수입니다. 각 항목은 테넌트 UUID(예:'a1b2c3d4-e5f6-4789-a012-3456789abcde')이거나 개인 Microsoft 계정을 허용하는 리터럴'personal'입니다. 대소문자를 구분하지 않으며 목록은 비어 있을 수 없습니다.
Optional parameters (선택 파라미터)
ENABLED = { TRUE | FALSE }— 통합이 활성인지 여부예요. 로그인 페이지에 통합을 표시하려면TRUE로 설정합니다(OIDC_ENABLE_SSO_LOGIN_PAGE와 허용 목록에 따름). 기본값: TRUEOIDC_SCOPES— 요청할 OAuth 스코프예요.openid를 포함해야 합니다. 기본값:('openid', 'profile', 'email')— 사용자 정의 공급자만 가능하며 관리형 공급자는 이 옵션을 거부합니다.OIDC_AUTHORIZATION_ENDPOINT— IdP 권한 부여 엔드포인트 URL이에요. 제공되지 않으면 발급자 메타데이터에서 디스커버리됩니다. HTTPS여야 합니다. 생성 후 불변. 사용자 정의 공급자만 가능.OIDC_TOKEN_ENDPOINT— IdP 토큰 엔드포인트 URL이에요. 제공되지 않으면 발급자 메타데이터에서 디스커버리됩니다. HTTPS여야 합니다. 생성 후 불변. 사용자 정의 공급자만 가능.OIDC_JWKS_URI— ID 토큰 서명 검증용 IdP JWKS(JSON Web Key Set) 엔드포인트 URL이에요. 제공되지 않으면 발급자 메타데이터에서 디스커버리됩니다. HTTPS여야 합니다. 생성 후 불변. 사용자 정의 공급자만 가능.OIDC_USERINFO_ENDPOINT— IdP UserInfo 엔드포인트 URL이에요. 향후 호환성을 위해 예약되었습니다. Snowflake는 현재 릴리스에서 인증 중 이 엔드포인트를 호출하지 않아요. 사용자 정의 공급자만 가능.OIDC_LOGIN_PAGE_LABEL— 이 IdP에 대해 Snowflake 로그인 페이지에 표시되는 레이블이에요(예: "Sign in with Okta"). 제공되지 않으면 통합 이름이 레이블로 사용됩니다. 사용자 정의 공급자만 가능. 관리형 공급자(GOOGLE,MICROSOFT)의 경우 Snowflake가 공식 공급자 로고와 기본 레이블을 표시해요.OIDC_ENABLE_SSO_LOGIN_PAGE = { TRUE | FALSE }— 이 통합을 Snowflake 로그인 페이지에 표시할지 여부예요.FALSE면 통합은 존재하고 활성화되어 있지만 "Sign in with X" 버튼으로 렌더링되지 않습니다. 기본값: TRUEALLOWED_USER_DOMAINS— 이메일 도메인이 지정된 도메인 중 하나와 정확히 일치하는 사용자만 인증을 제한해요(예:('mycompany.com', 'subsidiary.com')). 대소문자를 구분하지 않으며 정확히 일치해야 합니다. 이 파라미터는 여러 IdP를 사용하는 구성에서 사용자를 IdP와 연결하는 데 사용할 수 있어요.ALLOWED_EMAIL_PATTERNS— 이메일이 지정된 정규식 패턴 중 하나와 일치하는 사용자만 인증을 제한해요. 패턴은 JavaPattern.find()의미 체계를 사용하며, 전체 문자열 일치를 위해^...$로 앵커링합니다.ENABLE_IDENTIFIER_FIRST_LOGIN계정 파라미터가 활성화되어 있어야 합니다.COMMENT = '<string_literal>'— 통합에 대한 주석을 지정해요. 기본값: 값 없음
Read-only properties
DESCRIBE INTEGRATION이 반환하지만 CREATE 또는 ALTER 명령에서 설정할 수 없는 속성이 있어요.
Access control requirements (접근 제어 요구 사항)
이 작업을 실행하는 데 사용되는 역할은 최소한 다음 권한을 보유해야 해요.