CREATE SECURITY INTEGRATION (SAML2)

계정에 새 SAML2 보안 통합을 만들거나 기존 통합을 바꿉니다. SAML2 보안 통합에서는 Snowflake와 서드 파티 ID 공급자(IdP) 간의 인터페이스를 만들어 Single Sign-On(SSO) 워크플로를 제공합니다.

다른 유형의 보안 통합(예 SCIM) 생성에 대한 자세한 내용은 CREATE SECURITY INTEGRATION 섹션을 참조하십시오.

참고 항목:

ALTER SECURITY INTEGRATION (SAML2) , DROP INTEGRATION , SHOW INTEGRATIONS

구문

CREATE [ OR REPLACE ] SECURITY INTEGRATION [ IF NOT EXISTS ]
    <name>
    TYPE = SAML2
    ENABLED = { TRUE | FALSE }
    SAML2_ISSUER = '<string_literal>'
    SAML2_SSO_URL = '<string_literal>'
    SAML2_PROVIDER = '<string_literal>'
    SAML2_X509_CERT = '<string_literal>'
    [ ALLOWED_USER_DOMAINS = ( '<string_literal>' [ , '<string_literal>' , ... ] ) ]
    [ ALLOWED_EMAIL_PATTERNS = ( '<string_literal>' [ , '<string_literal>' , ... ] ) ]
    [ SAML2_SP_INITIATED_LOGIN_PAGE_LABEL = '<string_literal>' ]
    [ SAML2_ENABLE_SP_INITIATED = TRUE | FALSE ]
    [ SAML2_SNOWFLAKE_X509_CERT = '<string_literal>' ]
    [ SAML2_SIGN_REQUEST = TRUE | FALSE ]
    [ SAML2_REQUESTED_NAMEID_FORMAT = '<string_literal>' ]
    [ SAML2_POST_LOGOUT_REDIRECT_URL = '<string_literal>' ]
    [ SAML2_FORCE_AUTHN = TRUE | FALSE ]
    [ SAML2_SNOWFLAKE_ISSUER_URL = '<string_literal>' ]
    [ SAML2_SNOWFLAKE_ACS_URL = '<string_literal>' ]
    [ COMMENT = '<string_literal>' ]
Copy

필수 매개 변수

name

통합에 대한 식별자(즉, 이름)를 지정하는 문자열로, 계정에서 고유해야 합니다.

또한, 식별자는 알파벳 문자로 시작해야 하며 전체 식별자 문자열을 큰따옴표(예: "My object")로 묶지 않는 한 공백이나 특수 문자를 포함할 수 없습니다. 큰따옴표로 묶인 식별자도 대/소문자를 구분합니다.

자세한 내용은 식별자 요구 사항 섹션을 참조하십시오.

TYPE = SAML2

통합 유형 지정:

  • SAML2: Snowflake와 ID 공급자 사이에 보안 인터페이스를 만듭니다.

ENABLED = { TRUE | FALSE }

통합 작업을 시작할지 일시 중단할지 여부를 지정하는 부울입니다.

  • TRUE 로 지정하면 파이프 정의에 지정된 매개 변수를 기반으로 통합을 실행할 수 있습니다.

  • FALSE 로 지정하면 유지 관리를 위해 통합이 일시 중단됩니다. Snowflake와 서드 파티 서비스 간의 통합이 작동하지 않습니다.

SAML2_ISSUER = 'string_literal'

EntityID/IdP 발급자를 포함하는 문자열입니다.

SAML2_SSO_URL = 'string_literal'

Snowflake(서비스 공급자)가 SAML AuthnRequest 메시지와 함께 사용자를 리디렉션해야 하는 IdP SSO URL을 포함한 문자열입니다.

SAML2_PROVIDER = 'string_literal'

IdP를 설명하는 문자열입니다.

OKTA, ADFS, Custom 중 하나입니다.

SAML2_X509_CERT = 'string_literal'

선행 -----BEGIN CERTIFICATE----- 및 종료 -----END CERTIFICATE----- 마커가 없는 한 줄에서 Base64로 인코딩된 IdP 서명 인증서입니다.

선택적 매개 변수

ALLOWED_USER_DOMAINS = ( 'string_literal' [ , 'string_literal' , ... ] )

SAML2 보안 통합으로 인증할 수 있는 이메일 도메인 목록입니다. 예: ALLOWED_USER_DOMAINS = ("example.com", "example2.com", ...).

This parameter can be used to associate a user with an IdP for configurations that use multiple IdPs. For details, see 페더레이션 인증을 위해 여러 ID 공급자 사용하기.

ALLOWED_EMAIL_PATTERNS = ( 'string_literal' [ , 'string_literal' , ... ] )

SAML2 보안 통합으로 인증하기 위해 이메일 주소를 대조하는 정규식 목록입니다. 예: ALLOWED_EMAIL_PATTERNS = ("^(.+dev)@example.com$", "^(.+dev)@example2.com$", ... ).

This parameter can be used to associate a user with an IdP for configurations that use multiple IdPs. For details, see 페더레이션 인증을 위해 여러 ID 공급자 사용하기.

SAML2_SP_INITIATED_LOGIN_PAGE_LABEL = 'string_literal'

로그인 페이지에서 Log In With 버튼 뒤에 표시할 레이블을 포함한 문자열입니다.

SAML2_ENABLE_SP_INITIATED = { TRUE | FALSE }

Log In With 버튼을 로그인 페이지에 표시할지 여부를 나타내는 부울입니다.

  • TRUE 로 지정하면 로그인 페이지에 Log in With 버튼이 표시됩니다.

  • FALSE 로 지정하면 로그인 페이지에 Log in With 버튼이 표시되지 않습니다.

SAML2_SNOWFLAKE_X509_CERT = 'string_literal'

Snowflake에서 생성되어 SAML 어설션 암호화서명된 SAML 요청 전송 에 사용되는 Base64 인코딩 자체 서명 인증서입니다.

인증서 값에 액세스하려면 Snowflake 계정에서 이러한 기능(암호화된 SAML 어설션 또는 서명된 SAML 응답) 중 하나 이상을 활성화해야 합니다.

SAML2_SIGN_REQUEST = { TRUE | FALSE }

SAML 요청이 서명되었는지 여부를 나타내는 부울입니다.

  • TRUE 로 지정하면 SAML 요청을 서명할 수 있습니다.

  • FALSE 로 지정하면 SAML 요청을 서명할 수 없습니다.

SAML2_REQUESTED_NAMEID_FORMAT = 'string_literal'

Snowflake는 SAML NameID 형식을 통해 Snowflake에 유효한 인증을 보장하는 IdP의 SAML 어설션에서 사용자(즉, SAML Subject) 의 식별 특성에 대한 기대치를 설정할 수 있습니다. 값을 지정하지 않을 경우 Snowflake는 인증 요청의 urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress 값을 IdP로 보냅니다.

선택 사항입니다.

SAML NameID 형식을 지정하려면 다음 값 중 하나를 사용하십시오.

  • urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified

  • urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress

  • urn:oasis:names:tc:SAML:1.1:nameid-format:X509SubjectName

  • urn:oasis:names:tc:SAML:1.1:nameid-format:WindowsDomainQualifiedName

  • urn:oasis:names:tc:SAML:2.0:nameid-format:kerberos

  • urn:oasis:names:tc:SAML:2.0:nameid-format:persistent

  • urn:oasis:names:tc:SAML:2.0:nameid-format:transient

SAML2_POST_LOGOUT_REDIRECT_URL = 'string_literal'

Classic Console 에서 Log Out 버튼을 클릭한 후 Snowflake가 사용자를 리디렉션하는 대상이 되는 엔드포인트입니다.

Snowflake는 지정된 엔드포인트로 리디렉션할 때 Snowflake 세션을 종료합니다.

SAML2_FORCE_AUTHN = { TRUE | FALSE }

초기 인증 흐름 중에 사용자가 Snowflake에 액세스하려면 다시 인증할 수밖에 없도록 해야 할지 여부를 나타내는 부울입니다. TRUE 로 설정할 때, Snowflake는 Snowflake에서 ID 공급자로의 발신 요청에서 ForceAuthn SAML 매개 변수를 TRUE 로 설정합니다.

  • TRUE 로 설정하면 ID 공급자와의 유효한 세션이 있는 경우에도 사용자가 다시 인증해야 Snowflake에 액세스할 수 있습니다.

  • FALSE 로 설정하면 사용자가 다시 인증하지 않고도 Snowflake에 액세스할 수 있습니다.

기본값: FALSE.

SAML2_SNOWFLAKE_ISSUER_URL = 'string_literal'

Snowflake 서비스 공급자의 EntityID / Issuer 를 포함하는 문자열입니다.

잘못된 값을 지정하면 Snowflake가 사용하도록 허용되는 값을 나타내는 오류 메시지를 반환합니다.

이 속성의 값은 IdP에 지정된 Snowflake 계정 URL과 일치해야 합니다. 기본값은 레거시 URL 이므로, IdP에서 다른 URL 형식 을 정의하는 경우 보안 통합 생성 시 이 속성을 적절하게 설정해야 합니다. 자세한 내용은 SAML2 보안 통합 만들기 섹션을 참조하십시오.

SAML2_SNOWFLAKE_ACS_URL = 'string_literal'

IdP가 SAML 인증 응답을 Snowflake로 다시 보낼 Snowflake Assertion Consumer Service URL을 포함한 문자열입니다. 이 속성은 IdP로 SAML SSO 작업을 시작할 때 Snowflake에서 생성된 SAML 인증 요청에서 설정됩니다.

잘못된 값을 지정하면 Snowflake가 사용하도록 허용되는 값을 나타내는 오류 메시지를 반환합니다.

이 속성의 값은 IdP에 지정된 Snowflake 계정 URL과 일치해야 합니다. 기본값은 레거시 URL 이므로, IdP에서 다른 URL 형식 을 정의하는 경우 보안 통합 생성 시 이 속성을 적절하게 설정해야 합니다. 자세한 내용은 SAML2 보안 통합 만들기 섹션을 참조하십시오.

기본값: https://<계정_로케이터>.<리전>.snowflakecomputing.com/fed/login

COMMENT = 'string_literal'

통합에 대한 설명을 지정합니다.

기본값: 값 없음

액세스 제어 요구 사항

이 SQL 명령을 실행하는 데 사용되는 역할 에는 최소한 다음 권한 이 있어야 합니다.

권한

오브젝트

참고

CREATE INTEGRATION

계정

Only the ACCOUNTADMIN role has this privilege by default. The privilege can be granted to additional roles as needed.

지정된 권한 세트로 사용자 지정 역할을 만드는 방법에 대한 지침은 사용자 지정 역할 만들기 섹션을 참조하십시오.

보안 오브젝트 에 대해 SQL 작업을 수행하기 위한 역할과 권한 부여에 대한 일반적인 정보는 액세스 제어의 개요 섹션을 참조하십시오.

사용법 노트

  • 메타데이터 관련:

    주의

    고객은 Snowflake 서비스를 사용할 때 개인 데이터(사용자 오브젝트 제외), 민감한 데이터, 수출 통제 대상 데이터 또는 기타 규제 데이터가 메타데이터로 입력되지 않도록 해야 합니다. 자세한 내용은 Snowflake의 메타데이터 필드 섹션을 참조하십시오.

  • CREATE OR REPLACE <오브젝트> 문은 원자성입니다. 즉, 오브젝트가 바뀔 때 단일 트랜잭션으로 이전 오브젝트가 삭제되고 새 오브젝트가 생성됩니다.

다음은 두 가지 선택적 설정을 사용하여 Microsoft Active Directory Federation Services(AD FS) 보안 통합을 만드는 예입니다.

CREATE SECURITY INTEGRATION my_idp
    TYPE = saml2
    ENABLED = true
    SAML2_ISSUER = 'https://example.com'
    SAML2_SSO_URL = 'http://myssoprovider.com'
    SAML2_PROVIDER = 'ADFS'
    SAML2_X509_CERT = 'my_x509_cert'
    SAML2_SP_INITIATED_LOGIN_PAGE_LABEL = 'my_idp'
    SAML2_ENABLE_SP_INITIATED = false
    ;
Copy

DESCRIBE INTEGRATION 을 사용하여 통합 설정 보기:

DESC SECURITY INTEGRATION my_idp;
Copy