Salesforce Connect カスタムアダプタの OAuth
OAuth 2.0 を使用して外部データにアクセスする場合に、アクセストークンの期限切れによるアクセスの中断を回避する方法を説明します。
外部システムの中には OAuth アクセストークンを使用するものがあります。こうしたトークンには有効期限があり、更新する必要があります。アクセストークンは必要に応じて次の場合に自動的に更新できます。
- ユーザまたは外部データソースに、以前の OAuth フローからの有効な更新トークンがある場合
- DataSource.Connection クラスの同期、クエリ、または検索メソッドで DataSource.OAuthTokenExpiredException が発生した場合
ユーザまたは外部データソースの適切な OAuth ログイン情報を使用して、リモートサービスとネゴシエートし、トークンを更新します。DataSource.ConnectionParams で、コンストラクタに提供される新しい OAuth トークンを使用して DataSource.Connection クラスが再作成されます。続いて、検索またはクエリが再度呼び出されます。
認証プロバイダが更新トークンを提供しない場合、現在のアクセストークンの期限が切れたときに外部シス��ムへのアクセスが失われます。外部データソースの詳細ページに警告メッセージが表示された場合は、オフラインアクセスまたは更新トークンの要求について OAuth プロバイダにお問い合わせください。
認証プロバイダの中には、範囲の追加といった簡単な方法でオフラインアクセスを要求できることがあります。たとえば、Salesforce 認証プロバイダにオフラインアクセスを要求するには、Salesforce 組織の認証プロバイダ定義の [デフォルトの範囲] 項目に「refresh_token」を追加します。
また、オフラインアクセスを認証 URL でクエリパラメータとして要求する必要のある場合もあります。たとえば、Google の場合、Salesforce 組織の認証プロバイダ定義の [承認エンドポイント URL] 項目に 「?access_type=offline」を追加します。認証エンドポイントを編集するには、認証プロバイダの [プロバイダタイプ] 項目で [Open ID Connect] を選択します。詳細は、Salesforce ヘルプの「OpenID Connect 認証プロバイダの設定」を参照してください。