Snowflake용 ID 공급자(IdP) 구성하기
Snowflake용 ID 공급자(IdP) 구성하기
Snowflake 사용자에게 연합 인증을 제공하기 위해 Okta, AD FS, 또는 다른(즉 커스텀) SAML 2.0 호환 서비스/애플리케이션 중 무엇을 선택하느냐에 따라 IdP 구성 작업이 달라요.
출처: Snowflake 문서
본문
참고(Note): 이 페이지는 SAML 2.0 IdP 설정을 다뤄요. OpenID Connect(OIDC)는 커스텀 OAuth 애플리케이션 등록과 클라이언트 자격 증명 획득을 포함해 IdP에서 Snowflake 등록(커스텀 제공자)을 참고해요.
중요(Important): IdP를 구성하기 전에 완전히 구성된 후의 연합 인증 관리 방법과 사용자가 연합 인증을 통해 Snowflake에 접근하는 방법을 고려해요. 예를 들어 사용자가 공개 URL을 통해 접근할지, 아니면 Snowflake 서비스에 대한 개인 연결과 연결된 URL을 통해 접근할지 결정해요. 자세히 알아보려면 연합 인증 관리/사용을 참고해요.
Okta 설정
Okta를 연합 인증의 IdP로 사용하려면 Okta에서 다음 작업을 수행해야 해요.
- 회사 또는 조직의 Okta 계정을 만들어요.
- 관리자 권한이 있는 사용자로 Okta 계정에 로그인하고 Snowflake에 접근해야 할 각 사람에 대한 사용자를 만들어요. 사용자를 만들 때 각 사용자의 이메일 주소를 포함해야 해요. 이메일 주소는 Okta의 사용자를 Snowflake의 해당 사용자와 매핑하는 데 필요해요.
참고(Note): Okta에 입력하는 이메일 주소가 Snowflake의 사용자 객체
login_name값과 SAMLNameID속성에 매핑되도록 해요.
- Okta에 Snowflake 애플리케이션을 만들어요.
- 애플리케이션의 Label 필드에 임의의 이름을 지정할 수 있어요.
- 애플리케이션의 SubDomain 필드에 Snowflake 계정의 계정 식별자를 입력해요. 개인 연결을 사용하는 경우 계정 식별자에
privatelink를 추가해요. 예를 들어 Snowflake 계정에 접근하는 URL이https://myorg-myaccount.privatelink.snowflakecomputing.com이면myorg-myaccount.privatelink를 입력해요. - Snowflake 계정 이름에 밑줄이 포함되고 식별자의 계정 이름 형식을 사용한다면 밑줄을 하이픈으로 변환해야 해요. Okta는 URL에서 밑줄을 지원하지 않기 때문이에요(예:
myorg-myaccount-name).
- 만든 Okta 사용자를 Okta의 Snowflake 애플리케이션에 할당해요.
IdP 정보 얻기
서비스 제공자인 Snowflake는 둘 사이의 관계를 수립하기 위해 IdP에 대한 정보가 필요해요. SAML 2.0 연합 인증 구성에서 설명하는 것처럼 Snowflake를 구성할 때 이 정보가 필요해요.
IdP에 대한 정보를 제공하는 선호 방법은 메타데이터 URL을 얻는 것이며, Snowflake는 이를 사용해 필요한 모든 정보를 동적으로 얻을 수 있어요. Snowflake에서 여러 파라미터로 이 정보를 수동으로 정의할 수도 있지만, 그 과정은 오류가 발생하기 쉽고 인증서 회전을 포함해 IdP 구성 설정이 변경되면 파라미터를 수동으로 업데이트해야 해요.
메타데이터 URL 얻기(권장)
- Snowflake용으로 만든 통합으로 이동해 Sign On 탭을 선택해요.
- Sign on methods 섹션의 SAML 2.0 타일에서 Metadata URL을 복사해요.
SSO URL과 인증서 얻기
- Snowflake용으로 만든 통합으로 이동해 Sign On 탭을 선택해요.
- View Setup Instructions을 선택해요.
- 설정 지침에서 필요한 정보를 수집해요.
- SSO URL(IdP URL 엔드포인트, Snowflake가 SAML 요청을 보낼 위치)
- 인증서(IdP와 Snowflake 간 통신 검증에 사용)
AD FS 설정
AD FS를 연합 인증의 IdP로 사용하려면 AD FS에서 다음 작업을 수행해야 해요.
전제 조건
- Windows Server 2012 R2에 AD FS 3.0이 설치·작동하는지 확인해요.
- Snowflake에 접근해야 할 각 사람에 대해 AD FS에 사용자가 존재하는지 확인해요. 사용자를 만들 때 각 사용자의 이메일 주소를 포함해야 해요. 이메일 주소는 AD FS의 사용자를 Snowflake의 해당 사용자와 연결하는 데 필요해요.
참고(Note): 다른 버전의 AD FS와 Windows Server도 사용할 수 있지만, 구성 지침이 다를 수 있어요.
Snowflake용 신뢰 당사자 트러스트 추가
AD FS 관리 콘솔에서 Add Relying Party Trust Wizard를 사용해 AD FS 구성 데이터베이스에 새 신뢰 당사자 트러스트를 추가해요.
- 메시지가 표시되면 Enter data about the relying party manually 라디오 버튼을 선택해요.
- 다음 화면에서 신뢰 당사자의 표시 이름(예: "Snowflake")을 입력해요.
- 다음 화면에서 AD FS profile 라디오 버튼을 선택해요.
- 다음 화면(선택적 토큰 암호화 인증서 지정용)을 건너뛰어요.
- 다음 화면에서:
- Enable support for the SAML 2.0 WebSSO protocol 체크박스를 선택해요.
- Relying party SAML 2.0 SSO service URL 필드에 Snowflake 계정의 SSO URL을 입력하고 끝에
/fed/login을 추가해요. 예를 들어 개인 연결로 Account Name URL을 사용하려면https://<orgname>-<account_name>.privatelink.snowflakecomputing.com/fed/login을 입력해요. 가능한 URL 형식 목록은 URL로 연결을 참고해요. 연합 인증용 보안 통합을 만들 때 그 URL 파라미터가 이 필드에 사용된 형식과 일치하는지 확인해요.
- 다음 화면의 Relying party trust identifier 필드에 이전 단계에서 지정한 Snowflake 계정의 URL을 입력해요.
- 다음 화면에서 I do not want to configure multi-factor authentication settings for this relying party trust at this time 라디오 버튼을 선택해요.
- 다음 화면에서 Permit all users to access this relying party 라디오 버튼을 선택해요.
- 다음 화면에서 신뢰 당사자 트러스트 구성을 검토해요. 또한 Advanced 탭에서 SHA-256이 보안 해시 알고리즘으로 선택되어 있는지 확인해요.
- 다음 화면에서 Open the Edit Claim Rules dialog for this relying party trust when the wizard closes를 선택하고 Close를 클릭해 마법사 구성을 마쳐요.
Snowflake 신뢰 당사자 트러스트에 대한 클레임 규칙 정의
마법사를 닫으면 Edit Claim Rules for *snowflake_trust_name* 창이 자동으로 열려요. 이 창은 AD FS 관리 콘솔에서 다음과 같이 클릭해서도 열 수 있어요.
AD FS » Trust Relationships » Relying Party Trusts » *snowflake_trust_name* » Edit Claim Rules…
창에서:
- LDAP 속성을 클레임으로 보내는 규칙을 만들어요.
- Add Rules를 클릭하고 Send LDAP Attributes as Claim을 선택해요.
- Edit Rule 대화상자에서:
- 규칙의 이름(예: "Get Attributes")을 입력해요.
- Attribute store를 Active Directory로 설정해요.
- 규칙에 LDAP 속성 두 개를 추가해요.
- Outgoing Claim Type이 E-Mail Address인 E-Mail-Addresses
- Outgoing Claim Type이 Name인 Display-Name
- OK 버튼을 클릭해 규칙을 만들어요.
- 들어오는 클레임을 변환하는 규칙을 만들어요.
- Add Rules를 클릭하고 Transform an Incoming Claim을 선택해요.
- Add Transform Claim Rule Wizard 대화상자에서:
- 클레임 규칙의 이름(예: "Name ID Transform")을 입력해요.
- Incoming claim type을 E-Mail Address로 설정해요.
- Outgoing claim type을 Name ID로 설정해요.
- Outgoing name ID format을 Email로 설정해요.
- Pass through all claim values 라디오 버튼을 선택해요.
- Finish 버튼을 클릭해 규칙을 만들어요.
- OK 버튼을 클릭해 Snowflake 신뢰 당사자 트러스트에 대한 클레임 규칙 추가를 마쳐요.
중요(Important): 규칙의 값을 정확히 위에 설명한 대로 입력해야 해요. 또한 만든 규칙이 다음 순서로 나열되어 있는지 확인해요.
- LDAP Attributes
- Incoming Claim Transform
규칙에 오타가 있거나 올바른 순서로 나열되지 않으면 규칙이 올바르게 작동하지 않아요.
전역 로그아웃 활성화 — 선택 사항
AD FS에서 Snowflake에 대한 전역 로그아웃을 활성화하려면 AD FS 관리 콘솔에서 다음을 클릭해요.
AD FS » Trust Relationships » Relying Party Trusts » <snowflake_trust_name> » Properties
Properties 대화상자에서:
- Endpoints 탭으로 이동해 Add SAML… 버튼을 클릭해요.
- Edit Endpoint 대화상자에서:
- Endpoint type을 SAML Logout으로 설정해요.
- Binding을 POST 또는 REDIRECT로 설정해요.
- Trusted URL을 1단계에서 지정한 값으로 설정해요.
- Response URL은 비워둬요.
- OK 버튼을 클릭해 변경 사항을 저장해요.
IdP 정보 얻기
서비스 제공자인 Snowflake는 둘 사이의 관계를 수립하기 위해 IdP에 대한 정보가 필요해요. SAML 2.0 연합 인증 구성에서 설명하는 것처럼 Snowflake를 구성할 때 이 정보가 필요해요.
IdP에 대한 정보를 제공하는 선호 방법은 메타데이터 URL을 얻는 것이며, Snowflake는 이를 사용해 필요한 모든 정보를 동적으로 얻을 수 있어요. Snowflake에서 여러 파라미터로 이 정보를 수동으로 정의할 수도 있지만, 그 과정은 오류가 발생하기 쉽고 인증서 회전을 포함해 IdP 구성 설정이 변경되면 파라미터를 수동으로 업데이트해야 해요.
메타데이터 URL 얻기(권장)
- Snowflake용으로 만든 통합으로 이동해 Sign On 탭을 선택해요.
- Endpoints 탭을 선택해요.
- Federation metadata document 필드를 찾아 URL을 복사해요. 이것이 메타데이터 URL이에요.
SSO URL과 인증서 얻기
AD FS 설정을 완료하려면 AD FS에서 SSO URL과 인증서를 얻어요. 이 두 값을 다음 단계인 SAML 2.0 연합 인증 구성에서 사용할 거예요.
- SSO URL — Snowflake가 SAML 요청을 보낼 AD FS URL 엔드포인트예요. 일반적으로 AD FS의 Login URL로, 대개 AD FS 서버의 IP 주소 또는 정규화된 도메인 이름(즉 FQDN)에 끝에
/adfs/ls를 추가한 것이에요. - 인증서 — AD FS와 Snowflake 간 통신 검증에 사용돼요. AD FS 관리 콘솔에서 다운로드해요.
- 콘솔에서 AD FS » Service » Certificates를 클릭해요.
- Certificates 페이지에서 Token-signing 항목을 마우스 오른쪽 클릭하고 **View Certificate…**를 클릭해요.
- Certificate 대화상자에서 Details 탭을 선택해요.
- **Copy to File…**를 클릭해 Certificate Export Wizard를 열어요.
- 내보내기 파일 형식으로 **Base-64 encoded X.509 (.CER)**을 선택하고 Next를 클릭해요.
- 로컬 환경의 디렉터리에 파일을 저장해요.
- 파일을 열고 다음 줄 사이에 있는 단일 줄로 구성된 인증서를 복사해요.
-----BEGIN CERTIFICATE-----
<certificate>
-----END CERTIFICATE-----
커스텀 IdP 설정
SAML 2.0 호환 서비스 또는 애플리케이션을 연합 인증의 IdP로 사용하려면 다음 작업을 수행해야 해요.
- 서비스/애플리케이션 인터페이스에서 Snowflake용 커스텀 SHA-256 애플리케이션을 정의해요. 커스텀 애플리케이션을 정의하는 지침은 IdP 역할을 하는 서비스/애플리케이션별로 다르다.
- 인터페이스에서 Snowflake에 접근해야 할 각 사람에 대한 사용자를 만들어요. 사용자를 만들 때 각 사용자의 이메일 주소를 포함해야 해요. 이메일 주소는 IdP의 사용자를 Snowflake의 해당 사용자와 연결하는 데 필요해요.
- 커스텀 IdP에서 SSO URL과 인증서를 얻어요. SSO URL 값과 인증서는 다음 단계인 SAML 2.0 연합 인증 구성에서 필요해요.
- SSO URL(IdP URL 엔드포인트, Snowflake가 SAML 요청을 보낼 위치)
- 인증서(IdP와 Snowflake 간 통신 검증에 사용)
중요(Important): 커스텀 ID 공급자를 구성할 때 필드 값은 대소문자를 구분하는 경우가 많아요. 오류 메시지나 오류 코드가 나타나면 구성 과정에서 입력한 값의 대소문자를 다시 확인해요.
다음 단계
위 단계를 완료한 후에는 Snowflake가 연합 인증을 사용하도록 구성해 커스텀 IdP 설정을 완료해야 해요.
더 알아보기 (Learn more)
- SAML 2.0 연합 인증 구성 — Snowflake 측 구성
- 연합 인증 관리/사용 — 연합 인증 사용 관리
- 계정 식별자 — 계정 식별자 형식