Tableau CRM REST API 認証
Salesforce では、OAuth プロトコルを使用して、アプリケーションユーザがユーザ名やパスワードのログイン情報を明らかにすることなくセキュアにデータにアクセスできるようにします。
次のセクションでは、認証の概要と、認証の設定および OAuth を使用して Tableau CRM REST API に接続する手順について説明します。
認証について
Tableau CRM REST API を使用して API コールを行う前に、OAuth 2.0 を使用してアプリケーションユーザを認証する必要があります。そのためには、次の手順を実行する必要があります。
- Salesforce 組織内にアプリケーションを接続アプリケーションとして設定します。
- 接続アプリケーションが使用できるように正しい Salesforce OAuth エンドポイントを決定します。
- 複数の異なる OAuth 2.0 認証フローのいずれかを介して接続アプリケーションユーザを認証します。OAuth 認証フローには、アプリケーションと Salesforce の間の認証プロセスを調整するために使用する一連の手順が定義されています。次の OAuth フローがサポートされています。
- Web サーバフロー。サーバがセキュアにコンシューマの秘密を保護できます。
- ユーザエージェントフロー。コンシューマの秘密をセキュアに保存できないアプリケーションによって使用されます。
- ユーザ名パスワードフロー。アプリケーションがユーザログイン情報に直接アクセスします。
認証の設定
Salesforce 組織で接続アプリケーションを作成し、OAuth を有効にします。クライアントアプリケーションは、接続アプリケーションを使用して Salesforce に接続します。
- Salesforce 組織で、[設定] から [作成] | [アプリケーション] をクリックし、[接続アプリケーション] セクションで [新規] をクリックして新しい接続アプリケーションを作成します。
- クライアントは、接続アプリケーションが組織で定義されていなくても、接続アプリケーションを使用して組織にサインインできます。
- 接続アプリケーション名を入力します。
- [OAuth 設定の有効化] を選択します。
- [コールバック URL] を入力します。セキュアである必要があるため、http:// ではなく https:// を使用します。
- OAuth の範囲を入力します。接続アプリケーションでアクセスを許可する他の範囲に加え、Access and manage your data (api) を選択します。
- [保存] をクリックします。
- Consumer Key が作成され、表示されます。また、Consumer Secret が作成されます (表示するにはリンクをクリックします)。
OAuth を使用した Tableau CRM REST API への接続
OAuth を使用して Salesforce に接続し、アクセストークンを取得します。アクセストークンを要求で Tableau CRM API に渡します。
作成した接続アプリケーションで使用される用語と、例で使用される OAuth のプロパティの対応付けを次の表に示します。OAuth 2.0 仕様では、「コンシューマ」ではなく「クライアント」という用語を使用します。
|
接続アプリケーションのアプリケーションラベル |
例の値 |
|---|---|
| コンシューマ鍵 | client_id Key |
| コンシューマの秘密 | client_secret |
Salesforce への要求を行うには、次の例に組織の値を代入します。
- アクセストークンを生成します。
次の cURL コマンドはアクセストークンを生成します。
1curl --form 2client_id=3MVG9PhR6g6B7ps4xDycwGrI4PvjVZvK9 3 --form client_secret=8870355475032095511 4 --form grant_type=password 5 --form username=admin@seattleapps.com 6 --form password=1Lsfdc! 7https://login.salesforce.com/services/oauth2/token応答には、次のようにサーバインスタンスとアクセストークンが含まれます。
1{ 2"id":"https://login.salesforce.com/id/00Di0000000hT9uEAE/005i00000022uIbAAI", 3"issued_at":"1302907727777", 4"instance_url":"https://yourInstance.salesforce.com", 5"signature":"5jcevY5fUai0lWntuSxkwBzWcvRjd01RCOkIBZpyGv0=", 6"access_token":"00DD0000000FJ6T!AQkAQPde_DMF2vGzddfZmBRS95GojDbtA 7 8rKkgukAgZP0OVFYY5KkAqhLw9ejeKIlpJ3FgwGAWeRlBiWRt8mfXEuAZGbZNosk" 9} - Tableau CRM REST API リソースを要求するには、返された instance_url をサーバインスタンスとして使用します。返された access_token を認証要求ヘッダーでべアラートークンとして渡します。
1curl -X GET https://yourInstance.salesforce.com/services/data/v42.0/wave 2 -H 'Authorization: Bearer 00DD0000000FJ6T!AQkAQPde_DMF2vGzddfZmBRS95Goj 3 DbtArKkgukAgZP0OVFYY5KkAqhLw9ejeKIlpJ3FgwGAWeRlBiWRt8mfXEuAZGbZNosk'
|
プロパティ |
例の値 |
|---|---|
| サーバインスタンス | yourInstance.salesforce.com |
| client_id | 3MVG9PhR6g6B7ps4xDycwGrI4PvjVZvK9 |
| client_secret | 8870355475032095511 |
| grant_type | password grant_type の値は使用する OAuth 認証フローに応じて異なります |
| username | admin@seattleapps.com |
| password | 1Lsfdc! |