Loading
システム管理者に対するフィッシング耐性MFA・全従業員ユーザーMFAの適用のお知らせ 続きを読む
ただいま大変多くのお問い合わせをいただいており、ご連絡までにお時間を頂戴しております続きを読む
コードではなくてクリックによる Salesforce の拡張
Lightning Out 2.0 の認証の設定

Lightning Out 2.0 の認証の設定

外部アプリケーションが Lightning Out 2.0 アプリケーションのコンポーネントにアクセスするには、エンドユーザーが Salesforce で認証されている必要があります。また、外部アプリケーションが Salesforce リソースにアクセスすることも承認されている必要があります。認証と承認を設定するには、OAuth 2.0 フローを実装し、組織で外部クライアントアプリケーション (ECA) を設定します。次に、Lightning Out 2.0 UI Bridge エンドポイントまたは標準の Salesforce UI Bridge エンドポイントをコールするように外部アプリケーションを設定します。この呼び出しにより、実行時にフロントドア URL が生成されます。この URL は、Lightning Out 2.0 アプリケーションの Salesforce セッションを確立するために使用されます。

必要なエディション

使用可能なインターフェース: Lightning Experience

使用可能なエディション: Professional Edition、Enterprise EditionPerformance Edition、Unlimited Edition、すべての Agentforce 1 Edition、および Developer Edition

必要なユーザー権限
ローカル外部クライアントアプリケーションを作成する 外部クライアントアプリケーションの作成、編集、削除
外部クライアントアプリケーションの OAuth 設定を定義する 外部クライアントアプリケーションの作成、編集、削除
CORS 設定を変更する 「すべてのデータの編集」および「アプリケーションのカスタマイズ」
Lightning Out 2.0 アプリケーションを作成および変更する 「アプリケーションのカスタマイズ」

開始する前に、「Prepare to Build a Lightning Out 2.0 App (Lightning Out 2.0 アプリケーションの構築準備)」の手順を完了します。

  1. サポートされる OAuth 2.0 認証フローを設計して実装します。
    重要
    重要 Lightning Out 2.0 では、Web サーバー フローJSON Web トークン (JWT) ベアラー フローなど、ユーザー コンテキストを含む Web スコープのアクセス トークンを提供する OAuth 2.0 フローがサポートされます。クライアントログイン情報フローはユーザーコンテキストを提供しないため、Salesforce はアクセストークンから Web 範囲を除外します。
  2. 組織で、OAuth を有効にした外部クライアントアプリケーション (ECA) を作成します。
    設定するには、「Create an External Client App and Configure the External Client App OAuth Settings (外部クライアントアプリケーションの作成と外部クライアントアプリケーションの OAuth 設定の定義)」の手順に従います。
  3. ECA で、次の OAuth 設定を使用します。
    1. 「Web ブラウザーを使用したユーザーデータの管理 (Web)」または「フルアクセス (フル)」 OAuth 範囲を含めます。
      ECA で JWT ベアラーフローを使用している場合は、Perform requests at any time (refresh_token) 範囲も含めます。
    2. ECA で [フローの有効化] セクションにリストされているフローのいずれかを使用している場合、そのフローの設定を有効にして設定します。
      Lightning Out 2.0では、クライアントログイン情報フローはサポートされていません。
    3. [セキュリティ] セクションでは、[ Web サーバーフローの秘密が必要]、[ 更新トークンフローの秘密が必要]、[ サポートされる認証フローのコード交換の証明鍵 (PKCE) 拡張が必要] のデフォルト設定を選択したままにできます。
      Lightning Out 2.0 では、更新トークンの循環と JWT ベースのアクセストークンもサポートされています。
  4. 実行時にフロントドア URL を取得するには、次のいずれかの方法を使用して外部アプリケーションから UI Bridge API エンドポイントをコールします。
    • Lightning Out 2.0 エンドポイントから前面ドア URL を取得します。

      この方法では、Lightning Out 2.0 リソースにのみアクセスできます。追加設定はほとんど不要で、組み込みのクロスオリジンリソース共有 (CORS) 保護が提供されます。この方法を使用するには、外部アプリケーションドメイン名を Salesforce CORS 許可リストに追加する必要があります。「Lightning Out 2.0 アプリケーションの構築準備」を参照してください。

    • 標準 UI Bridge API エンドポイントからフロントドア URL を取得します。

      この方法では、外部アプリケーションに独自のサーバー側認証フローを設定する必要があります。ただし、この方法を使用すると、会社に特定のセキュリティ要件がある場合により詳細な制御が可能になります。

Lightning Out 2.0 エンドポイントからの前面ドア URL の取得

Lightning Out 2.0 サーブレットは、CORS サポートを提供することで UI Bridge API を拡張し、Salesforce リソースのアクセスを Lightning Out 2.0 アプリケーションのみに制限します。

Lightning Out 2.0 サーブレットでは、標準の UI Bridge API エンドポイントservices/oauth2/singleaccessの代わりに、特殊なエンドポイントservices/oauth2/lightningoutsingleaccessが使用されます。このエンドポイントは、有効な Salesforce セッション ID(SID)を cookie として設定する Lightning Web Runtime アプリケーションに移動します。SID は、今後のすべての要求と共に組織に送信されます。そのため、Lightning Out 2.0 アプリケーションの使用中にユーザーが再認証する必要はありません。

重要
重要 Lightning Out 2.0 UI Bridge API エンドポイントを要求する前に、Lightning Out 2.0 アプリケーション マネージャで Lightning Out 2.0 アプリケーションがイネーブルになっていることを確認します。「Build a Lightning Out 2.0 App」を参照してください。

フロントドア URL を生成するには、外部アプリケーションから POST 要求を https://MyDomainName.my.salesforce.com/services/oauth2/lightningoutsingleaccess エンドポイントに送信します。Lightning Out 2.0 アプリケーション ID と OAuth 2.0 アクセストークンをリクエストボディパラメータとして含めます。

リクエストボディパラメーター 説明
lightning_out_app_id

必須。Lightning Out 2.0アプリケーションID。

この ID は、アプリケーションの Lightning Out 2.0 アプリケーションマネージャーページにあります。

この ID は、lightning-out-application Web コンポーネントの app-id 属性の値に対応します。Lightning Out 2.0 アプリケーション コンポーネントの詳細については、『Lightning Web Components Developer Guide』の「Understand Lightning Out 2.0 Architecture」を参照してください。

access_token

必須。ユーザーの最初のセッションの有効な OAuth 2.0 アクセストークン。

不透明アクセストークンまたは JSON Web トークン (JWT) ベースのアクセストークンを使用できます。アクセストークンには、web 範囲または full 範囲を含める必要があります。アクセストークンを発行したアプリケーションの外部クライアントアプリケーション設定で範囲を指定します。

アクセストークンに関連付けられたユーザーに「API 限定ユーザー」権限を付与することはできません。

cURL を使用する POST 要求の例を次に示します。

curl -X POST \
  'https://MyDomainName.my.salesforce.com/services/oauth2/lightningoutsingleaccess' \
--form 'access_token="access-token-value"' \
--form 'lightning_out_app_id="app-id"'

JavaScript を使用する別の POST 要求の例を次に示します。Content-Type ヘッダーが application/x-www-form-urlencoded として宣言されていることを確認します。

fetch(
    "https://MyDomainName.my.salesforce.com/services/oauth2/lightningoutsingleaccess", 
    {
        method: "POST",
        headers: {
            "Content-Type": "application/x-www-form-urlencoded"
        },
        body: "access_token=access-token-value&lightning_out_app_id=app-id"
    }
)
    .then((response) => {
        console.log("Status:", response.status);
        return response.json();
    })
    .then((data) => {
        console.log("Success:", data);
    })
    .catch((error) => {
        console.error("Error:", error);
    });

成功すると、UI Bridge API はフロントドア URL を含む JSON 応答を返します。

HTTP/1.1 200 OK

Content-Type: application/json
Cache-Control: no-cache,must-revalidate,max-age=0,no-store,private
....

{"frontdoor_uri":"https://MyDomainName.my.salesforce.com/secur/frontdoor.jsp?otp=otp_value"}

失敗した場合、API はエラーメッセージを返します。エラーメッセージの説明は、「UI セッションにブリッジするためのフロントドア URL の生成」を参照してください。

フロントドア URL が返されたら、lightning-out-application コンポーネントの frontdoor-url 属性を frontdoor_uri 値に設定します。frontdoor-url 属性値は、JSON 応答全体ではなく URL のみの文字列にしてください。

ヒント
ヒント lightning-out-application コンポーネント定義を含め、Lighting Out 2.0 アプリケーションを構成する HTML 要素を確認するには、「Understand Lightning Out 2.0 Architecture (Lightning Out 2.0 アーキテクチャについて)」を参照してください。

frontdoor-url 属性を設定すると、Lightning Web Runtime アプリケーションが読み込まれ、有効な Salesforce セッション ID が設定されます。 これで、Lightning Out 2.0 アプリケーションが外部ホストページに読み込まれます。

標準 UI Bridge API エンドポイントからのフロントドア URL の取得

Lightning Out 2.0 UI Bridge API エンドポイントを使用する代わりに、標準の UI Bridge API エンドポイントservices/oauth2/singleaccessから前面ドア URL を取得できます。この方法では、外部アプリケーションに独自のサーバー側認証フローを設定する必要があります。ただし、この方法を使用すると、会社に特定のセキュリティ要件がある場合により詳細な制御が可能になります。

メモ
メモ Lightning Out 2.0 エンドポイントとは異なり、標準 UI Bridge API エンドポイントでは、Salesforce の [設定] で設定された CORS 設定はサポートされません。

手順は、「UI セッションにブリッジするためのフロントドア URL の生成」を参照してください。要求に redirect_uri パラメータを含めないでください。Salesforce ホームページに移動する代わりに、外部ホストページに Lightning Out 2.0 アプリケーションコンポーネントが表示されます。

フロントドア URL が返されたら、lightning-out-application コンポーネントfrontdoor-url 属性を frontdoor_uri 値に設定します。frontdoor-url 属性値は、JSON 応答全体ではなく URL のみの文字列にしてください。

frontdoor-url 属性を設定すると、Lightning Web Runtime アプリケーションが読み込まれ、有効な Salesforce セッション ID が設定されます。 これで、Lightning Out 2.0 アプリケーションが外部ホストページに読み込まれます。

 
読み込み中
Salesforce Help | Article