SalesforceをAuth0に接続する
1
Salesforceの設定
- Salesforce Developerアカウントにサインアップするか、既存のSalesforce orgを使用します。
- Salesforce orgで、Setup → Platform Tools → Apps → App Managerに移動します。
- New External Client Appを選択します。
-
基本情報を入力します。
- Connected App Name:連携内容がわかる名前を入力します
- API Name:アプリ名に基づいて自動生成されます
- Contact Email:ご自身のメールアドレスを入力します
-
API (Enable OAuth Settings)セクションで、以下を設定します。
- Enable OAuth Settingsを選択します
- Callback URL:
https://YOUR_AUTH0_DOMAIN/login/callback
You can find the Auth0 domain in the Auth0 Dashboard.You can find this under Applications > [Your Application] > Settings > Basic Information > Domain.If you are using the custom domains feature, your Auth0 domain is the custom domain. You can find this under Branding > Custom Domains.- Selected OAuth Scopes:以下のスコープを追加します。
api- データへのアクセスと管理 (api)refresh_token- ユーザーに代わっていつでもリクエストを実行 (refresh_token、offline_access)openid- アイデンティティURLサービスへのアクセス
-
重要なトークン設定 (Token Vaultとの互換性を最適化するため) :
- Require Secret for Web Server Flow:セキュリティを強化するため、このオプションを選択します
- Require Secret for Refresh Token Flow:トークンのリフレッシュオペレーションを保護するため、このオプションを選択します
- Enable Refresh Token Rotation:リフレッシュのたびにトークンをローテーションするため、このオプションを選択します
- Issue JSON Web Token (JWT)-based access tokens for named users:トークンの有効期間を延ばし、パフォーマンスを向上させるため、このオプションを選択します
- Createを選択し、アプリが作成されるまで待ちます。
- 作成後、Consumer Key (Client ID) とConsumer Secret (client secret) を控えておきます。
トークン設定に関する注意事項:
- JWTではなくオペークトークンを選択した場合、Token Vaultは有効期限をデフォルトで10分に設定するため、トークンのリフレッシュが頻繁に発生する可能性があります。
refresh_tokenスコープは、Auth0でリクエストするだけでなく、Connected Appの設定でも有効にしてください。Salesforce側でこのスコープが有効になっていないと、Auth0はリフレッシュトークンをリクエストできません。- セキュリティを高めるため、リフレッシュトークンのローテーションを有効にすることをお勧めします。
2
Auth0の設定
必要なスコープ: Auth0の接続設定に、以下のスコープを必ず含めてください。
openid- アイデンティティURLサービスへのアクセスapi- データへのアクセスと管理refresh_token- ユーザーに代わっていつでもリクエストを実行offline_access- ユーザーが不在のときもアクセスを維持
このガイドでは、Auth0 で Salesforce 接続をセットアップする手順を説明します。 このような接続を使用して、ユーザーに代わってアプリから第三者 API を呼び出す方法を一連の流れで示す例については、 ユーザーに代わって第三者 API を呼び出すクイックスタートをお読みください。
Token Vaultの設定例
Salesforce接続にToken Vaultを設定するには、アプリケーションで次のコードスニペットを使用します。トラブルシューティング
無効なグラントのエラー
期限切れのアクセストークンまたはリフレッシュトークンでinvalid_grant エラーが発生する場合は、次の点を確認してください。
- トークンの設定を確認する:Connected Appで、オペークトークンではなくJWTトークンが使用されていることを確認します。
- リフレッシュトークンのポリシーを確認する:Connected Appで、リフレッシュトークンのポリシーを「取り消されるまで有効 (valid until revoked) 」に設定します。
- スコープの設定:Salesforce Connected AppとAuth0接続の両方で、
refresh_tokenスコープとoffline_accessスコープが有効になっていることを確認します。 - トークンのローテーション:リフレッシュトークンのローテーションを使用している場合は、更新リクエストのたびに返される新しいリフレッシュトークンをアプリケーションで適切に処理してください。
よくある問題
- スコープエラー:必要なスコープはAuth0でリクエストするだけでなく、すべてSalesforce Connected Appの設定で有効にしておく必要があります。
- トークンの有効期限:JWTトークンはオペークトークンよりも有効期限が長くなっています。オペークトークンを使用する場合は、トークンのリフレッシュが頻繁に発生することを想定しておいてください。
- 複数回の認可:同じユーザーを短時間に何度も認可することは避けてください。トークンが無効化される問題が発生する可能性があります。
Next steps
- To learn how to configure applications to access Token Vault, read Configure Token Vault.
- If your application uses Organizations, authenticate the user with the target organization before initiating the Connected Accounts flow. Connected accounts remain linked to the individual user profile.
- To learn how to get an access token to make a tool call, complete the Call third-party APIs on user’s behalf Quickstart.