この文章は Salesforce 機械翻訳システムを使用して翻訳されました。詳細はこちらをご参照ください。
英語に切り替える

OAuth と API アクセス用のプロキシサインアップの作成


必要なユーザ権限
サインアップ要求を作成または表示する 「サインアップ要求 API」

SignupRequest オブジェクトを使用して、システムが生成するメールをユーザに送信することなく、新しい組織をプログラム的に作成できます。その後、その組織にログインするための OAuth アクセストークンを取得し、その組織から API 要求を行えるようになります。ユーザの操作は必要ありません。この手法をプロキシサインアップといいます。Salesforce を使用していることをユーザに知らせず、ユーザの代理として組織の作成や操作ができるためです。

従来のサインアッププロセスでは、新しい組織を作成すると、ユーザには、ログイン URL と組織にログインするための初期パスワードが記載された、システム生成メールが送信されます。ユーザは、その後ログインし、ユーザの代わりに組織に対するコールを実行してもらうための API アクセス権を明示的に付与する必要があります。プロキシサインアップでは、ユーザへのメールは生成されず、あなたに API アクセス権を付与するためにユーザが行う操作はありません。

代理として組織を作成および管理できるため、他のプラットフォームにある外部アプリケーションと Salesforce を統合するための選択肢が広がります。これにより、Salesforce ユーザインターフェース (UI) を公開することなく、自分のアプリケーションに Force.com プラットフォームの任意の機能を取り込むことができます。実際に、Salesforce のすべての機能を UI から切り離せるほか、他のアプリケーションのランタイムや UI に、シームレスで目に見えない形で統合することができます。

たとえば、.NET プラットフォームに構築された、企業が旅費の報告および社員への払い戻しを管理するのに役立つ Web アプリケーションが ISV にあるとします。ISV では、アプリケーションに Chatter を統合して、企業のすべての従業員が、フィードバックや旅費��ついてのヒントを互いに共有できるようにすることができます。ISV では、適切な Salesforce API を使用して、次のソリューションを実装することで、これを実行できます。
  1. プロキシサインアップを使用して、各顧客に 1 つずつ Salesforce 組織を作成します。
  2. その会社のすべての従業員のために、各顧客組織のユーザを作成します。
  3. 旅行情報を共有する Chatter グループを設定して管理します。
  4. 各ユーザの Chatter フィードを監視し、各投稿から情報を抽出します。
  5. アプリケーションにこの情報を挿入し、既存の UI に表示します。
これにより、ゼロから開発するのではなく、ISV で顧客に Chatter 機能へのアクセス権を付与できるようになります。ISV の顧客は、既存のアプリケーションの拡張として、特別に意識することなく Chatter を体験し、慣れ親しんだインターフェースを使用でき、Salesforce のことを特に知る必要も、ログインする必要もありません。このアプローチは、標準オブジェクトやカスタムオブジェクト、Apex、Visualforce など、Salesforce の他の機能にも拡張できます。実際のところ、プロキシサインアップによって ISV では Salesforce をサービスとして使用することが可能になり、Salesforce UI を公開することなく、その機能を任意のプラットフォームのアプリケーションに統合できるようになります。ISV の構想力次第で、どのようなアプリケーションでも作り出すことができます。
プロキシサインアップの作成手順は、次のとおりです。
  1. Developer Edition 組織 (デフォルトで、接続アプリケーションのユーザ権限が有効になっている) にログインします。
  2. [設定] から、[クイック検索] ボックスに「アプリケーション」と入力し、[アプリケーション] を選択します。[接続アプリケーション] で、[新規] をクリックします。
  3. 必須項目に値を入力します。X.509 証明書を指定し、[選択した OAuth 範囲] セレクタで OAuth 範囲へのフルアクセスと更新トークンアクセスを許可します。コールバック URL は必須ですが、最初は未使用なので、任意の有効な URL を設定できます。終了したら、[保存] をクリックします。
  4. 同じページの [コンシューマ鍵] の値を記録します。また、[クリックして公開] をクリックして、[コンシューマの秘密] の値を記録します。
  5. 接続アプリケーションを新しいパッケージのコンポーネントとして追加し、パッケージ化します。そのパッケージのインストール URL の値を記録します。
  6. Trialforce 管理組織にログインし、そこから新しい Trialforce ソース組織を作成します。
  7. Trialforce ソース組織にログインし、ステップ 5 のインストール URL を使用して接続アプリケーションを含むパッケージをインストールします。
  8. 接続アプリケーションを Trialforce ソース組織にインストールすると、[設定] から、[クイック検索] ボックスに「アプリケーションを管理する」と入力して [管理アプリケーション] を選択することで、その接続アプリケーションをカスタマイズできます。接続アプリケーションを表示して、属性を編集することができます。適切なプロファイルと権限セットを指定し、OAuth ポリシーセクションで [管理者が承認したユーザは事前承認済み] オプションをオンにします。これにより、これらの条件にあてはまるユーザの代理として組織への認証を行うことができます。
  9. 要件に合わせて Trialforce ソース組織を設定し終えたら、そこからTrialforce テンプレートを作成します。Trialforce テンプレートを作成するときに、[すべてのデータおよび設定] のラジオボタンを選択します。
  10. パートナーコミュニティにケースを申請し、そのテンプレートを使用して新しいサインアップを作成するための承認を取得します。
  11. テンプレートが承認されたら、SignupRequest オブジェクトを使用して新しい組織をサインアップできます。新しく作成された組織に接続するために必要な OAuth 値 (コンシューマキーおよびコールバック URL) を指定する必要があります。
    1POST https://mycompany-tmo.salesforce.com/services/data/v27.0/sobjects/SignupRequest/
    2Authorization Bearer 
    3  00Dxx0000001gR6!ARoAQAS3Uc6brlY8q8TWrrI_u1THuUGmSAp
    4    XrksSniyjom9kXfDac4UP.m9FApjTw9ukJfKqWuD8pA9meeLaltRmNFvPqUn7
    5Content-Type application/json Body:
    6{    "TemplateId":"0TT000000000001",
    7     "SignupEmail":"john.smith@mycompany.com",
    8     "Username":"gm@trial1212.org",
    9     "Country":"US"
    10     "Company":"salesforce.com",
    11     "LastName":"Smith",
    12     "ConnectedAppConsumerKey":
    13      "3MVG9AOp4kbriZOLfSVjG2Pxa3cJ_nOkwhxL1J1AuV22u8bm82FtDtWFVV__
    14         Vs6mvqoVbAnwsChp9YT4bfrYu",
    15     "ConnectedAppCallbackUrl":
    16       "https%3A%2F%2Fwww.mysite.com%2Fcode_callback.jsp" }
ConnectedAppConsumerKey 項目および ConnectedAppCallbackUrl 項目が SignupRequest オブジェクトで指定されている場合、プロキシサインアップフローでは、この新しい組織で既存の接続アプリケーションを使用することが自動的に承認されます。そのフローでは、サインアップ関連のメールがユーザに送信されることはありません。システム管理者のユーザ名、コンシューマキー、およびコンシューマの秘密を知っていれば、次の操作を行うために必要な情報はすべて揃っています。
  • 新しく作成した組織の管理ユーザとして、その組織に API 要求を行う。
  • 今後任意の時点で、更新されたアクセストークンを要求する。