Salesforce Bulk API용 Openflow Connector: Salesforce 설정

Salesforce Bulk API용 Openflow Connector: Salesforce 설정

이 페이지에서는 Salesforce Bulk API용 Openflow Connector가 Salesforce에 연결할 수 있도록 Salesforce 쪽을 준비하는 방법을 설명해요. 인증서 생성, 외부 클라이언트 앱 생성, 사용자 권한 부여까지 차례로 다룹니다.

출처: Snowflake 문서

본문

Note

이 커넥터는 Snowflake Connector Terms에 의해 규율됩니다.

이 토픽은 Salesforce Bulk API용 Openflow Connector를 위해 Salesforce를 설정하는 단계를 설명합니다.

커넥터는 OAuth 2.0 JWT Bearer Flow로 Salesforce에 인증합니다. 이를 위해서는 인증서 키 페어 생성, Salesforce에 외부 클라이언트 앱 구성, 그리고 앱을 사용할 사용자 인가가 필요합니다.

Important

Salesforce는 Connected Apps를 폐기(deprecate)하고 External Client Apps를 도입했습니다. 기존 Connected App이 있다면 Snowflake는 새 External Client App을 만드는 것을 권장합니다.

인증서 생성

Salesforce에서 외부 클라이언트 앱을 구성하려면 개인 키와 공개 인증서가 필요합니다. 개인 키는 커넥터가 JWT 토큰을 서명하는 데 사용되고, 공개 인증서는 Salesforce의 외부 클라이언트 앱에 업로드되어 Salesforce가 서명을 검증할 수 있게 합니다.

  1. 개인 키를 생성합니다. 개인 키를 보호할 비밀번호를 묻습니다.
openssl genpkey -algorithm RSA -out private.key -aes256

비밀번호를 기록해 두세요. Snowflake에서 커넥터 파라미터를 구성할 때 필요합니다.

  1. 개인 키에서 자체 서명 인증서를 만듭니다.
openssl req -new -x509 -key private.key -out public.crt -days 365

회사 CA가 서명한 인증서를 받으려면 Certificate Signing Request(CSR)를 생성할 수도 있습니다.

Note

키 페어 인증에 사용하는 공개 키와 개인 키 파일의 보관·교체는 조직의 보안 정책에 따라 직접 책임져야 합니다.

Salesforce에 외부 클라이언트 앱 생성

JWT Bearer Flow로 Salesforce에 외부 클라이언트 앱을 생성하세요. 커넥터는 이 특정 OAuth 흐름으로 인증해야 합니다. 다른 OAuth 흐름(예: Authorization Code Flow)을 사용하면 invalid_grant 오류가 발생합니다.

  1. 관리자로 Salesforce에 로그인합니다.

  2. Setup » Apps » App Manager로 이동한 뒤 New External Client App을 선택합니다.

  3. 필수 필드를 채웁니다:

  • External Client App Name: 예: Openflow connector for Salesforce Bulk API.

  • Contact Email: 예: [email protected].

  1. API (Enable OAuth Settings) 섹션에서 Enable OAuth 체크박스를 선택합니다.

  2. 유효한 Callback URL을 제공합니다(예: https://www.google.com/).

Note

콜백 URL은 Salesforce가 요구하지만 JWT Bearer Flow에서는 사용되지 않습니다. 어떤 유효한 URL이든 제공하면 됩니다.

  1. 애플리케이션에 원하는 OAuth Scopes를 제공합니다. 커넥터가 제대로 동작하려면 다음 스코프가 필요합니다:
  • Manage user data via APIs (api)

  • Perform requests at any time (refresh_token, offline_access)

  1. Flow Enablement에서 Enable JWT Bearer Flow 체크박스를 선택하고 이전 단계에서 만든 public.crt 파일을 업로드합니다.

Important

반드시 Enable JWT Bearer Flow를 구체적으로 선택해야 합니다. 특별한 이유가 없다면 다른 흐름은 활성화하지 마세요. 여기 업로드하는 인증서는 커넥터 파라미터로 구성하는 개인 키(private.key)와 짝을 이루어야 합니다.

  1. Create를 클릭해 애플리케이션 생성 과정을 완료합니다.

  2. Settings 탭으로 이동해 OAuth Settings 섹션을 펼치고 Consumer Key and Secret을 클릭해 애플리케이션의 자격 증명을 확인합니다.

  3. Snowflake에서 커넥터를 구성할 때 사용할 Consumer Key와 Consumer Secret 값을 기록해 두세요. Consumer Key는 커넥터 구성에서 OAuth2 Client ID 파라미터로 사용됩니다.

사용자에 대한 클라이언트 앱 승인

커넥터는 특정 사용자(커넥터 파라미터에 구성된 OAuth2 Subject)를 대신해 Salesforce API와 상호작용합니다. 적절한 프로필이나 권한 집합을 할당해 이 사용자가 외부 클라이언트 앱을 사용하도록 인가해야 합니다.

이 단계를 완료하지 않으면, JWT Bearer Flow가 올바르게 구성되어 있어도 커넥터는 인증 시도 시 권한 오류를 받습니다.

  1. 클라이언트 애플리케이션의 Policies 탭으로 이동합니다.

  2. Edit를 클릭합니다.

  3. OAuth Policies 섹션을 펼치고 Permitted Users를 Admin approved users are pre-authorized로 변경합니다.

  4. App Policies 섹션을 펼치고 커넥터가 사용하려는 Salesforce 사용자에게 할당된 프로필 또는 권한 집합을 선택합니다. 예를 들어 사용자가 System Administrator 프로필을 가진다면 그 프로필을 선택합니다.

Note

커넥터 구성에서 OAuth2 Subject로 지정된 사용자는 여기 선택된 프로필 또는 권한 집합 중 하나 이상에 속해야 합니다. 사용자가 인가되지 않으면 커넥터를 검증하거나 실행할 때 권한 오류가 발생합니다.

  1. Save를 클릭합니다.

자격 증명 일치 확인

Snowflake 설정으로 진행하기 전에 다음 자격 증명이 모두 같은 외부 클라이언트 앱과 키 페어에 속하는지 확인하세요:

  • Consumer Key(Client ID)는 방금 만든 외부 클라이언트 앱에서 가져온 것입니다.

  • 개인 키(private.key)는 같은 외부 클라이언트 앱에 업로드한 인증서(public.crt)와 짝을 이룹니다.

  • OAuth2 Subject(사용자)는 프로필 또는 권한 집합 할당을 통해 이 외부 클라이언트 앱에 대해 인가되었습니다.

여러 외부 클라이언트 앱을 만들었거나 여러 구성을 시도했다면, 서로 다른 앱이나 키 페어의 자격 증명을 섞는 것이 invalid_grant 오류의 흔한 원인입니다. 확실하지 않으면 새 인증서와 키 페어로 새 외부 클라이언트 앱을 만드세요.

다음 단계

Snowflake 설정 작업을 수행하세요:

Openflow Connector for Salesforce Bulk API: Snowflake 설정

더 알아보기 (Learn more)