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 공급자로의 발신 요청에서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
;
DESCRIBE INTEGRATION 을 사용하여 통합 설정 보기:
DESC SECURITY INTEGRATION my_idp;