Salesforce APIを有効にし、認可コードを取得する。

フォローする

 

概要

本記事は「Salesforceを操作するConnector」をご利用の方向けに、入力値として要求される認可コードを取得するまでの手順を記載した手順書です。

注意事項

  • 本記事の手順はあくまで一例です。

    最新の手順や詳細につきましてはSalesforceのドキュメントをご参照ください。

前提

  • Salesforceアカウント

作業手順

「APIの有効化」権限の確認

  • Salesforceにログインし、「設定」を選択します。

01.png

  • 「クイック検索」 ボックスに「ユーザ」と入力し、「ユーザ」をクリックします。

02.png

  • 今ログインしているユーザの名前を探し、右にある「プロファイル」列の値をクリックします。今回は「システム管理者」をクリックします。

03.png

04.png

  • Ctrl+Fキー」で「API」を検索し、「API の有効化」がチェックされているかを確認。

    チェックされていれば、次のステップに進みます。

05.png

チェックされていない場合、プロファイルページの一番上にスクロールし「編集」ボタンをクリックしチェックを入れます。

06.png

「編集」ボタンをクリックしても「APIの有効化」項目が編集できない場合はシステム管理者に連絡し、「API の有効化」が編集可能なプロファイルに変更するようにお伝えください。

または権限セットを利用します。権限セットについてはSalesforceのヘルプページを参考してください。

07.png

接続アプリケーションを作成

※接続アプリケーションはSalesforce環境に依存しますので、他のユーザーがすでに接続アプリケーションを作成した場合、再度作成する必要はありません。例えばユーザーAが接続アプリケーションを作成すると、ユーザーBがその接続アプリケーションをそのまま利用できます

 

  • 「設定」画面に戻って、「クイック検索」 ボックスに「アプリ」と入力し、「アプリケーションマネージャ」をクリックします。

08.png

  • 「新規接続アプリケーション」をクリックします。

09.png

  • 英数字で「接続アプリケーション名」を任意に入力。「API 参照名」が自動的に作成されます。

「取引先責任者 メール」に現在ログインしているユーザのメールを入力。

11.png

  • OAuth 設定の有効化」

    OAuth 設定の有効化」にチェックを入れます。

  • 「コールバックURL

    ※コールバックURLは接続アプリケーションがSalesforceへのアクセス権限を付与した後のリダイレクトURLです。今回サーバー上の特別な処理がないので、http://localhost:15001に設定します。

    もし15001のポートがすでに利用されていた場合は、未使用のポートをご利用ください。

  • 選択したOAuth範囲
    • 選択した OAuth 範囲から「フルアクセス」及び「いつでも要求を実行」を選択し、「追加」ボタンで追加します。
    • Web サーバフローの秘密が必要」と「更新トークンフローの秘密が必要」にチェックを入れます。

※「選択したOAuth範囲」とは接続アプリケーションのアクセス可能な範囲を意味します(scope)

12.png

  • 下にスクロールし、「保存」をクリックします。

13.png

  • 「次へ」をクリックし、約10分待ちます。

14.png

 

コールバック(リダイレクト)URL、コンシューマ鍵、コンシューマの秘密鍵の取得

  • 前のステップの「次へ」をクリックしたら以下の画面に遷移します。【コールバックURL】を含める接続アプリケーションの情報が表示されます。下記の画像だと、コールバックURLhttp://localhost:15001となります。これは後ほど利用しますのでコピーします。

15.png

手動で上の画面にアクセスする場合は「設定」から「アプリケーションマネージャ」を検索し、先ほど作成したアプリケーションを検索します。

見つかったら右にあるアイコンをクリックし、プルダウンリストから「参照」を選択します。

16.png

  • 「コンシューマの詳細を管理」をクリックします。

17.png

*「APIOAuth設定の有効化)」に遷移した際に「コンシューマの詳細」がすぐ閲覧できる場合もあります。

18.png

  • コンシューマ鍵、コンシューマの秘密をコピーします。これは後ほど利用します。

19.png

接続アプリケーションのscopeの取得

scopeは接続アプリケーションの「選択したOAuth範囲」の英文字部分です。下記画像だと、scopeはfull+refresh_tokenとなります。

※【いつでも要求を実行】のscopeの英文字部分は「refresh_token」と「offline_access」ですが、コネクターの利用するscoperefresh_tokenのみのため、後ほど認可コードを取得する際には「refresh_token」のみ選択する必要があります。

 

20.png

認可コードの取得

  • 認可コードを取得するためのURLを作成します。
    • URLのフォーマット
      • https://{domain}/services/oauth2/authorize?client_id={client_id}&redirect_uri={rediect_url}&scope={scope}&response_type=code&state={state}
    • URLの例

      •  

        https://example.my.salesforce.com/services/oauth2/authorize?client_id=3MVG99S6MzLKQoameipqoz343oMfhazeeHpo.J1qcdLKQidknq84729kadsfAkoomncjkdedP7fV_AHagPLKW&redirect_uri=http://localhost:15001&scope=full+refresh_token&response_type=code&state=my_unique_state

         

    • {domain} : 現在利用しているSalesforceのドメイン名です。ログインした後、右上のアイコンをクリックし、ドメイン名を取得できます.

21.png

    • {client_id} : 接続アプリケーションのコンシューマ鍵
    • {rediect_url} : 接続アプリケーションリダイレクトURL(コールバックURL)
    • {scope} : 接続アプリケーションのscope。今回は「full+refresh_token」を指定します。
    • {state} : OAuth 2.0の仕様に従って、CSRF対策のためのランダムな値を指定します。例では、「my_unique_state」を指定します。
  • ブラウザーを起動し、作成したURLへアクセスします。もし今回利用したいSalesforceアカウントがすでにログインしている場合、このステップを実施する前に必ずログアウトしてください。

22.png

  • Enterを押下するとSalesforceのログイン画面が表示されますので、Salesforceのログインアカウントを入力します。(多要素認証-MFAを有効にする場合はMFAのコードなどの入力が必要です)

24.png

※対象アカウントのMFAが有効に設定されているため、MFA画面が表示されます。MFAが有効に設定されていない場合は上記の画像が表示されません。

25.png

  • 完了しましたら、下記のような画面が表示されます。認可コードはcode=の後ろの文字列となります。下記の画像の場合認可コードは下記の文字列となります。最後にある【&state=my_unique_state】は認可コードではありません。

 

aPrx8euw8KQvhFHKaDet4n_bGFqGZXjPT9YynH2lD9kw53NhEgin8pWRUEHKhqQOby8NgDj2AQ%3D%3D

26.png

 

※注意:認可コードの有効期限は15分です。有効期限内でご利用ください。

※認可コードはアカウントの情報を含んでいます。第三者に知られることのないように慎重に扱ってください。

※認可コードはブラウザ画面ではなくURLをご確認ください。上記のような通知がきたとしても正常に取得できている場合がございます。

認証ファイルの有効期限はこの限りではありません。詳細は同梱のマニュアル(Robot-Hubのリンクを挿入)をご参照ください。

 

補足

接続アプリケーションのIP制限

以下の画面でIP制限の確認ができます。

  • 「設定」の「クイック検索」に「接続アプリケーション」と入力します。

     

    「接続アプリケーションを管理する」をクリックします。その後、作成したアプリケーションを選択します。

     

27.png

  • 「ポリシーの編集」をクリックすることで編集が可能です。

    デフォルト値は「IP 制限を適用」になっていますので、ユーザのプロファイルで設定された IP 範囲など、組織の IP 制限が適用されます。この制限はユーザ様ご自身のシナリオにより自由に選択できます。

28.png

SalesforceのIP制限の詳細につきましては公式サイトをご参照ください。

IP制限の緩和

  • IP 制限の緩和」より「IP 制限の暖和」を選択し「保存」をクリックします。

29.png

設定されたIP範囲

  • 現在利用しているユーザのプロフィールを選択します。今回は「システム管理者」を選択します。

30.png

  • 「プロファイル」>「システム管理者」からIP制限の設定が確認できます。

     

    • ログイン IP アドレスの制限[1] : 制限されています。

       

    • ログイン IP アドレスの制限[0] : 制限がない

31.png

32.png

  • セキュリティ上Connectorを個人のIPしか利用させたくない場合は「IP 制限を適用+ログイン IP アドレスの制限がある」のように設定します。

    上記の条件を設定し、他人のIPConnectorを実行すると以下のようなエラーメッセージが出力されます。

    Message={System.Exception: {"error":"invalid_grant","error_description":"ip restricted"}

33.png

34.png

 

参考

ドキュメントや他ナレッジへの参照がある場合に記載。

区分 BizRobo! Ver11.1以降
手順 BizRobo! Ver11.1以降