CREATE SECURITY INTEGRATION (SAML2)¶
계정에 새 SAML2 보안 통합을 만들거나 기존 통합을 바꿉니다. SAML2 보안 통합에서는 Snowflake와 서드 파티 ID 공급자(IdP) 간의 인터페이스를 만들어 Single Sign-On(SSO) 워크플로를 제공합니다.
다른 유형의 보안 통합(예 SCIM) 생성에 대한 자세한 내용은 CREATE SECURITY INTEGRATION 섹션을 참조하십시오.
구문¶
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>' ]
필수 매개 변수¶
- 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 공급자로의 발신 요청에서- ForceAuthnSAML 매개 변수를- 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'
- 통합에 대한 설명을 지정합니다. - 기본값: 값 없음 
액세스 제어 요구 사항¶
이 작업을 실행하는 데 사용되는 역할 에는 최소한 다음 권한 이 있어야 합니다.
| 권한 | 오브젝트 | 참고 | 
|---|---|---|
| CREATE INTEGRATION | 계정 | Only the ACCOUNTADMIN role has this privilege by default. The privilege can be granted to additional roles as needed. | 
지정된 권한 세트로 사용자 지정 역할을 만드는 방법에 대한 지침은 사용자 지정 역할 만들기 섹션을 참조하십시오.
보안 오브젝트 에 대해 SQL 작업을 수행하기 위한 역할과 권한 부여에 대한 일반적인 정보는 액세스 제어의 개요 섹션을 참조하십시오.
사용법 노트¶
- 메타데이터 관련: - 주의 - 고객은 Snowflake 서비스를 사용할 때 개인 데이터(사용자 오브젝트 제외), 민감한 데이터, 수출 통제 대상 데이터 또는 기타 규제 데이터가 메타데이터로 입력되지 않도록 해야 합니다. 자세한 내용은 Snowflake의 메타데이터 필드 섹션을 참조하십시오. 
- OR REPLACE및- IF NOT EXISTS절은 상호 배타적입니다. 두 문자를 같은 문에 함께 사용할 수 없습니다.
- 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
    ;
DESCRIBE INTEGRATION 을 사용하여 통합 설정 보기:
DESC SECURITY INTEGRATION my_idp;