CREATE SECURITY INTEGRATION

CREATE SECURITY INTEGRATION (OIDC)

CREATE SECURITY INTEGRATION (OIDC) 명령은 계정에 새 OIDC 보안 통합을 만들거나 기존 통합을 교체하는 명령이에요. OIDC 보안 통합은 Snowflake와 OpenID Connect ID 공급자(IdP) 사이에 인터페이스를 만들어 SSO(단일 로그온) 워크플로우를 제공합니다.

출처: CREATE SECURITY INTEGRATION (OIDC)

본문

계정에 새 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와 허용 목록에 따름). 기본값: TRUE
  • OIDC_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" 버튼으로 렌더링되지 않습니다. 기본값: TRUE
  • ALLOWED_USER_DOMAINS — 이메일 도메인이 지정된 도메인 중 하나와 정확히 일치하는 사용자만 인증을 제한해요(예: ('mycompany.com', 'subsidiary.com')). 대소문자를 구분하지 않으며 정확히 일치해야 합니다. 이 파라미터는 여러 IdP를 사용하는 구성에서 사용자를 IdP와 연결하는 데 사용할 수 있어요.
  • ALLOWED_EMAIL_PATTERNS — 이메일이 지정된 정규식 패턴 중 하나와 일치하는 사용자만 인증을 제한해요. 패턴은 Java Pattern.find() 의미 체계를 사용하며, 전체 문자열 일치를 위해 ^...$로 앵커링합니다. ENABLE_IDENTIFIER_FIRST_LOGIN 계정 파라미터가 활성화되어 있어야 합니다.
  • COMMENT = '<string_literal>' — 통합에 대한 주석을 지정해요. 기본값: 값 없음

Read-only properties

DESCRIBE INTEGRATION이 반환하지만 CREATE 또는 ALTER 명령에서 설정할 수 없는 속성이 있어요.

Access control requirements (접근 제어 요구 사항)

이 작업을 실행하는 데 사용되는 역할은 최소한 다음 권한을 보유해야 해요.

더 알아보기 (Learn more)