外部サービスの使用
別のサービスで変更が生した場合に、Salesforce データの更新が必要になることがあります。同様に、Salesforce データの変更に基づいて、(Salesforce 外部の) 別のサービスのデータを更新する必要がある場合もあります。Salesforce には、これらの両方のトランザクションを行う方法が用意されています。たとえば、Salesforce で許容されている数より多くの取引先責任者やリードに一括メールを送信する必要があるとします。この場合に、Salesforce 組織の取引先責任者およびリード情報を使用して受信者名およびメールアドレスのリストを作成できる外部のメールサービスを利用できます。
Force.com プラットフォームで構築されたアプリケーションは、さまざまな方法で外部サービスに接続できます。次に例を示します。
- 外部サービスに情報を渡すカスタムリンクまたはカスタム数式項目を作成できます。
- Force.com API を使用して、Salesforce の内外にデータを転送できます。
- Web サービスメソッドを含む Apex クラスを使用できます。
Sコントロールやカスタムボタンで XmlHttpRequest を使用し、Visualforce ページ、Apex 呼び出し、または JavaScript コードで外部サイトを呼び出せるようにするには、[リモートサイトの設定] ページにそのサイトを登録しておく必要があります。これを行わないと、呼び出しは失敗します。コンポーネントの登録については、「リモート設定を定義する」を参照してください。
外部サービスの提供
アプリケーションが外部サービスにリンクしている場合、アプリケーションをインストールするユーザがそのサービスを利用するには、サインアップする必要があります。次のいずれかの方法でアクセスを提供します。
- 個人を識別する必要がない、組織内のすべての有効ユーザによるアクセス
- 個人の ID を識別することが重要なユーザ単位のアクセス
外部サービスへのアクセスを提供する場合、メールアドレス、会社名、Salesforce ユーザ名の使用は回避します。ユーザ名はいずれ変更される可能性があり、メールアドレスや会社名は重複することがあります。
外部サービスのアクセスを提供する場合は、次の推奨事項を参照してください。
- 外部サービスを使用する新規ユーザの識別には、シングルサインオン (SSO) 方式を使用します。
- カスタムリンクや Web タブなどアプリケーションの各エントリポイントには、パラメータ文字列内にユーザ ID を含めます。外部サービスでユーザ ID を調べ、ユーザ ID が既存のユーザのものかどうかを検証します。外部サービスで Force.com API を経由して読み込むことができるようにパラメータ文字列にセッション ID を含め、このユーザにアクティブセッション��あるかどうか、および認証されているかどうかを検証します。
- 既存のユーザに外部サービスを提供します。新規ユーザの場合は、必須情報を収集する代替ページを表示します。
- 個々のユーザのパスワードは保存しないでください。明らかなセキュリティ上のリスクに加え、多くの組織では定期的にパスワードがリセットされます。その場合、ユーザは組織のシステム上のパスワードを更新する必要があります。ユーザ ID とセッション ID を使用してユーザを認証し識別するように外部サービスを設計することをお勧めします。
- アプリケーションでユーザセッションが期限切れになった後に非同期の更新が必要な場合は、専用に別個の管理者ユーザライセンスを用意します。