Openflow Connector for Salesforce Bulk API:Salesforceの設定

注釈

このコネクタは、 Snowflakeコネクタ規約 に従うものとします。

このトピックでは、Openflow Connector for Salesforce Bulk API に対してSalesforceを設定する手順について説明します。

コネクタは、 OAuth 2.0 JWT Bearer Flowを使用してSalesforceで認証します。これには、証明書キーペアを作成し、Salesforceで外部クライアントアプリを構成し、ユーザーがアプリを使用することを承認する必要があります。

重要

Salesforceは接続アプリを廃止し、外部クライアントアプリに取って代わられました。既存の接続アプリをお持ちの場合、Snowflakeでは代わりに新しい外部クライアントアプリを作成することをお勧めします。

証明書の作成

Salesforceで外部クライアントアプリを構成するには、プライベートキーとパブリック証明書が必要です。プライベートキーはコネクタが JWT トークンに署名するために使用され、パブリック証明書はSalesforceの外部クライアントアプリにアップロードされ、Salesforceが署名を検証できるようにします。

  1. プライベートキーを生成します。プライベートキーを保護するためのパスワードを求められます。

    openssl genpkey -algorithm RSA -out private.key -aes256
    

    パスワードを記録します。Snowflakeでコネクタパラメーターを構成するときに必要です。

  2. プライベートキーから自己署名証明書を作成します。

    openssl req -new -x509 -key private.key -out public.crt -days 365
    

    証明書署名要求( CSR )を生成して、会社の CA に証明書に署名してもらうこともできます。

注釈

組織のセキュリティポリシーに従ってキーペア認証に使用されるパブリックキーおよびプライベートキーファイルを保護してローテーションする責務はご自身が担います。

Salesforceでの外部クライアントアプリの作成

JWT ベアラーフローを使用してSalesforceで外部クライアントアプリを作成します。コネクタでは、認証のためにこの特定の OAuth フローが必要です。別の OAuth フロー(認証コードフローなど)を使用すると、 invalid_grant エラーが発生します。

  1. 管理者としてSalesforceにログインします。

  2. Setup » Apps » App Manager に移動し、New External Client App を選択します。

  3. 必須フィールドに入力します。

  4. API (Enable OAuth Settings) セクションで、 Enable OAuth チェックボックスを選択します。

  5. 有効な Callback URL`(例: ``https://www.google.com/`)を入力してください。

    注釈

    コールバック URL はSalesforceで必要ですが、 JWT Bearer Flowでは使用されません。有効な URL を入力できます。

  6. アプリケーションに必要な OAuth Scopes を入力します。コネクタが適切に動作するためには、次の範囲が必要です。

    • APIs(api)を介したユーザーデータの管理

    • 任意の時点におけるリクエストの実行(refresh_tokenoffline_access

  7. Flow Enablement で、Enable JWT Bearer Flow チェックボックスをオンにして、前のステップで作成した public.crt ファイルをアップロードします。

    重要

    Enable JWT Bearer Flow を必ず選択してください。特定の理由がない限り、他のフローを有効にしないでください。ここでアップロードする証明書は、コネクタパラメーターで構成するプライベートキー( private.key )と一致している必要があります。

  8. Create をクリックして、アプリケーションの作成プロセスを完了します。

  9. Settings タブに移動して OAuth Settings セクションを展開し、Consumer Key and Secret をクリックして、アプリケーションの認証情報を取得します。

  10. Snowflakeでコネクタを構成するときに使用するため、 Consumer Key および Consumer Secret の値を記録します。 Consumer Key はコネクタ構成の OAuth2 Client ID パラメーターとして使用されます。

ユーザーのクライアントアプリの承認

コネクタは特定のユーザー(コネクタパラメーターで構成された OAuth2 サブジェクト)に代わってSalesforce APIs とやり取りします。適切なプロファイルまたは権限セットを割り当てて、このユーザーが外部クライアントアプリを使用することを承認する必要があります。

この手順を完了しないと、 JWT Bearer Flowが正しく構成されていても、認証を試行する際にコネクタは権限エラーを受け取ります。

  1. クライアントアプリケーションの Policies タブに移動します。

  2. Edit をクリックします。

  3. OAuth Policies セクションを展開して、Permitted UsersAdmin approved users are pre-authorized に変更します。

  4. App Policies セクションを展開し、コネクタに使用するSalesforceユーザーに割り当てられているプロファイルまたは権限セットを選択します。たとえば、ユーザーが System Administrator プロファイルを持っている場合は、そのプロファイルを選択します。

    注釈

    コネクタ構成で OAuth2 Subject として指定されたユーザーは、ここで選択されたプロファイルまたは権限セットの少なくとも1つに属している必要があります。ユーザーが権限を持っていない場合、コネクタの確認または実行時に権限エラーが発生します。

  5. Save をクリックします。

認証情報が一致することの確認

Snowflakeのセットアップに進む前に、以下の認証情報がすべて同じ外部クライアントアプリとキーペアに属していることを確認してください。

  • コンシューマーキー (クライアント ID )は、作成したばかりの外部クライアントアプリから取得されました。

  • プライベートキーprivate.key )は、同じ外部クライアントアプリにアップロードされた 証明書public.crt )に対応しています。

  • OAuth2 サブジェクト (ユーザー)は、プロファイルまたは権限セットの割り当てを通じて、この外部クライアントアプリに対して承認されます。

複数の外部クライアントアプリを作成した場合や、異なる構成を実験した場合は、異なるアプリやキーペアからの認証情報を混在させることが invalid_grant エラーの原因となることがよくあります。迷った場合は、新しい証明書とキーペアで新しい外部クライアントアプリを作成します。

次のステップ

Snowflake設定タスクを実行します。

Openflow Connector for Salesforce Bulk API:Snowflakeの設定