Loading
Salesforce から送信されるメールは、承認済ドメインからのみとなります続きを読む
ユーザーの識別およびアクセス権の管理
目次
絞り込み条件を選択

          結果がありません
          結果がありません
          検索のヒントをいくつかご紹介します

          キーワードの入力ミスがないか確認する。
          より一般的な検索語を使用する。
          絞り込み条件を減らして、検索範囲を広げる。

          Salesforce ヘルプ全体を検索
          サーバー間インテグレーション用の OAuth 2.0 クライアントログイン情報フロー

          サーバー間インテグレーション用の OAuth 2.0 クライアントログイン情報フロー

          ユーザーの介在なしで 2 つのアプリケーション間で情報を直接共有する必要がある場合があります。このようなシナリオでは、OAuth 2.0 クライアントログイン情報フローを使用できます。このフローでは、外部クライアントアプリケーションによってアクセストークン用に接続アプリケーションで定義されたクライアントログイン情報 (コンシューマー鍵とコンシューマーの秘密) が交換されます。このフローでは明示的なユーザー操作の必要はなくなりますが、インテグレーションを実行するインテグレーションユーザーを指定する必要があります。このフローを、OAuth 2.0 ユーザー名パスワードフローに代わるより安全な方法として使用できます。

          必要なエディション

          使用可能なインターフェース: Salesforce Classic および Lightning Experience の両方
          使用可能なエディション: すべてのエディション

          クライアントログイン情報フローを使用するには、外部クライアントアプリケーションを作成し、その OAuth 設定とアクセスポリシーを設定する必要があります。

          たとえば、Salesforce から自動レポートを実行するカスタムアプリケーションを作成します。アプリケーションで毎晩レポートを実行したいと考えています。カスタムアプリケーションを Salesforce と統合するには、外部クライアントアプリケーションを設定します。次に、クライアントログイン情報フローの外部クライアントアプリケーションを設定するには、フローを有効にしてインテグレーションユーザーを割り当てます。夜間のレポートサービスが開始されると、カスタムアプリケーションは次の手順の概要に従って Salesforce データにアクセスします。

          メモ
          メモ このフローでは更新トークンはサポートされていません。
          1. 外部クライアントアプリケーションは、POST 要求を介してクライアントのログイン情報を Salesforce OAuth トークンエンドポイントに送信します。
          2. Salesforce はクライアントログイン情報を検証し、アプリケーションを認証します。
          3. 割り当てたインテグレーションユーザーに代わって、Salesforce がアクセストークンを返します。
          4. 外部クライアントアプリケーションはアクセストークンを使用して、REST API などの Salesforce API をコールします。
          5. API は、レポート用の要求されたデータを使用して応答します。
          警告
          警告 クライアントログイン情報フローを設定する前に、そのセキュリティリスクを理解することが重要です。このフローを有効にすると、外部クライアントアプリケーションのコンシューマー鍵とコンシューマーの秘密へのアクセス権を持つすべてのユーザーまたはアプリケーションがアクセストークンを取得できます。コンシューマーの秘密を定期的に変更し、侵害された場合にすぐに変更することで、セキュリティを維持します。

          アクセストークンの要求

          クライアントログイン情報フローでアクセストークンを取得するプロセスを詳しく説明します。

          フローを開始するために、外部クライアントアプリケーションはクライアントログイン情報を Salesforce トークンエンドポイントに投稿します。クライアントログイン情報をパラメーターとしてリクエストボディに含めることができます。または、セキュリティを強化するために、クライアントログイン情報を基本認証ヘッダーに配置します。

          重要
          重要 OAuth インテグレーションを開発するときは、常に機密情報を POST 要求の本文または要求ヘッダーで渡します。機密情報を渡すために URL クエリ文字列で GET パラメーターを使用しないでください。機密情報には、ユーザー名、パスワード、OAuth トークン、クライアントの秘密、個人識別情報が含まれますが、これらに限定されません。セキュリティのベストプラクティスについての詳細は、『Secure Coding Guide (セキュアコーディングガイド)』の「Storing Sensitive Data (機密データの保存)」を参照してください。

          リクエストボディにクライアントログイン情報が含まれる POST 要求の例を次に示します。

          POST /services/oauth2/token HTTP/1.1
          Host: MyDomainName.my.salesforce.com
          grant_type=client_credentials&
          client_id=*******************&
          client_secret=*******************

          このフローでは、https://login.salesforce.comおよびhttps://test.salesforce.comへの要求はサポートされていません。代わりに [私のドメイン] の URL を使用します。[私のドメイン] の URL を見つけるには、[設定] から、[クイック検索] ボックスに「私のドメイン」と入力し、[私のドメイン] を選択します。

          これらのパラメーターを要求に含める必要があります。

          パラメーター 説明
          client_id 外部クライアントアプリケーションのコンシューマー鍵。コンシューマー鍵にアクセスするには、外部クライアントアプリケーションマネージャーで外部クライアントアプリケーションを見つけて、ドロップダウンから [Edit Settings (設定の編集)] を選択します。次に、[OAuth 設定] セクションを展開し、[コンシューマー鍵と秘密] をクリックします。コンシューマー鍵を表示する前に、ID を検証するように求められることがあります。
          client_secret 外部クライアントアプリケーションのコンシューマーの秘密。コンシューマーの秘密にアクセスするには、External Client App Manager から外部クライアントアプリケーションを見つけて、ドロップダウンから [Edit Settings (設定の編集)] を選択します。次に、[OAuth Settings (OAuth 設定)] セクションを展開し、[Consumer Key and Secret (コンシューマー鍵と秘密)] をクリックします。コンシューマーの秘密を表示する前に、ID を検証するように求められることがあります。
          grant_type

          外部クライアントアプリケーションが要求する OAuth 2.0 許可種別。クライアントログイン情報フローの場合、この値を client_credentials に設定する必要があります。

          クライアントログイン情報許可種別についての詳細は、Internet Engineering Task Force の「OAuth 2.0 Authorization Framework (OAuth 2.0 認証フレームワーク)」「4.4 Client Credentials Grant (4.4 クライアントログイン情報許可)」セクションを参照してください。

          基本認証ヘッダーにクライアントログイン情報が含まれる例を次に示します。この形式では、client_idclient_id:client_secret 形式で client_secret に追加され、結果の値は Base64 でエンコードされます。

          POST /services/oauth2/token HTTP/1.1
          Host: MyDomainName.my.salesforce.com
          Header: Authorization: Basic 
          TXlDbGllbnRJRDpNeUNsaWVudFNlY3JldA==
          grant_type=client_credentials

          この形式を使用する場合、grant_type がリクエストボディの唯一の必須パラメーターになります。grant_typeclient_credentials に設定する必要があります。

          メモ
          メモ Salesforce ではトークンエンドポイントで範囲がサポートされていないため、要求に範囲を含めることはできません。代わりに、範囲を外部クライアントアプリケーションに割り当てます。

          Salesforce によるアクセストークンの付与

          クライアントログイン情報が検証されると、Salesforce によりアクセストークンと要求された範囲を含む応答が返されます。アプリケーションはアクセストークンを使用して、Salesforce 内の保護されているデータにアクセスできす。

          JSON 形式のアクセストークン応答の例を次に示します。

          {
              "access_token": "*******************",
              "instance_url": "https://yourInstance.salesforce.com",
              "id": "https://login.salesforce.com/id/XXXXXXXXXXXXXXXXXX/XXXXXXXXXXXXXXXXXX",
              "token_type": "Bearer",
              "scope": "id api",
              "issued_at": "1657741493799",
              "signature": "c2lnbmF0dXJl"
          }

          これらのパラメーターは応答に含まれます。

          パラメーター 説明
          access_token 外部クライアントアプリケーションがクライアントアプリケーションの代わりに保護されたリソースへのアクセスを要求するために使用する OAuth トークン。範囲の形式の追加権限にはアクセストークンが付随することがあります。
          instance_url ユーザーの組織のインスタンスを示す URL。例: https://yourInstance.salesforce.com/
          id 組織とインテグレーションユーザーを識別するために使用できる ID URL。URL の形式は https://login.salesforce.com/id/orgID/userID です。
          token_type Bearer トークン種別。アクセストークンを含むすべての応答で使用します。
          scope

          アクセストークンに関連付けられている範囲。

          範囲は、クライアントがアクセスできる保護されたリソースの種別をさらに定義します。範囲を作成するときに外部クライアントアプリケーションに割り当て、認証フロー中に OAuth トークンに含めます。

          クライアントログイン情報フローでは UI セッションがサポートされず、更新トークンが発行されないため、Salesforce では次の範囲が自動的に除外されます。

          • フルアクセス (full)
          • Web ブラウザーを使用してユーザーデータを管理 (web)
          • いつでも要求を実行 (refresh_token, offline_access)

          詳細は、「OAuth トークンおよび範囲」を参照してください。

          issued_at 署名が作成されたときのタイムスタンプ (ミリ秒)。
          signature client_secret で署名されている Base64 エンコードされた HMAC-SHA256 署名。署名には連結 ID と issued_at 値を含めることができます。これらを使用して ID URL がサーバーから送信された後に変更されていないことを確認できます。
           
          読み込み中
          Salesforce Help | Article