Loading
システム管理者に対するフィッシング耐性MFA・全従業員ユーザーMFAの適用のお知らせ 続きを読む
Salesforce 組織の設定および管理
Frontdoor.jsp を使用した既存のセッションから Salesforce へのアクセス

Frontdoor.jsp を使用した既存のセッションから Salesforce へのアクセス

frontdoor.jsp を使用すると、Salesforce サイトなど、カスタムの Web インターフェースから、既存のセッション ID とサーバー URL を使用して Salesforce にアクセスする権限をユーザーに付与できます。

必要なエディション

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

frontdoor.jsp を使用してユーザーを認証するには、SOAP API login() コールから返された LoginResultserverUrl からセッション ID (15 文字または 18 文字の ID のみではない) とインスタンスまたはドメインを解析する必要があります。これらの値を POST 要求を使用するフォームを介して frontdoor.jsp に渡すことをお勧めします。

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

たとえば、次のフォームは現在のセッション ID を frontdoor.jsp に投稿します。

<form method="POST" action="https://domain_name/secur/frontdoor.jsp">
<input type="hidden" name="sid"
      value="full_sessionID_value" />
<input type="hidden" name="retURL" 
      value="optional_relative_url_to_open" /> 
<input type="submit" name="login" value="Log In" /></form>

この例で、domain_name はサーバー URL のドメインです (例: myDomainName.my.salesforce.com)。

OAuth 2.0 ハイブリッドアプリケーショントークンフロー

OAuth 2.0 ハイブリッドアプリケーショントークンフローでは、frontdoor.jsp を使用せずに Web セッションを直接ブリッジするために、ハイブリッドアプリケーションによってセッション Cookie でドメインの関連付けられた SID が設定されます。

Web セッションで [ログイン時にデフォルトのディビジョンにリセット] 設定を使用してオブジェクトのユーザーディビジョンをリセットする場合、ハイブリッドアプリケーショントークンフローで frontdoor.jsp を使用する必要があります。このフロー中にセッションの中断を回避するには、frontdoor.jsp への要求に、値を true に設定した directBridge2 パラメーターを含めます。directBridge2 パラメーターで、要求されたドメインのセッション ID Cookie にアクセストークンが直接渡されます。このフローでは、ハイブリッドアプリケーションで API コールと UI 要求で同じアクセストークンを使用するため、アクセストークンと更新トークンの有効期限を覚えておく必要はありません。

組織全体で多要素認証 (MFA) が必要な場合、ユーザーは OAuth ハイブリッドアプリケーションフロー中に Web セッションにアクセスするための MFA を要求されます。シングルサインオン (SSO) でユーザーを認証する実装の場合、ユーザーが ID プロバイダーのサービスを使用して MFA を完了すると、Salesforce MFA チャレンジは冗長になります。frontdoor.jsp を介した OAuth セッションのブリッジング中に directBridge2 パラメーターを true に設定することで、Salesforce MFA チャレンジをバイパスできます。directBridge2 パラメーターを使用して MFA をバイパスするには、使用している SSO フローの種別に応じて、認証プロバイダーまたは SAML シングルサインオン設定で [この SSO プロバイダーに Salesforce MFA を使用] 設定を無効にする必要があります。詳細は、「サービスプロバイダーとして Salesforce を使用した SAML SSO」および「証明書利用者として Salesforce を使用した認証プロバイダー SSO」を参照してください。

directBridge2 パラメーターを使用するには、セッション ID 値が、web 範囲のある OAuth 2.0 アクセストークンであり、クエリ文字列ではなく POST ボディで渡されていることを確認してください。モバイルアプリケーションは OAuth 2.0 ハイブリッドアプリケーショントークンフローを使用し、Web ビューでセッション Cookie を管理できる必要があります。directBridge2 パラメーターは、標準 Web ブラウザーではサポートされません。

重要
重要 [ログイン時にデフォルトのディビジョンにリセット] 設定を使用していない場合、ハイブリッドアプリケーショントークンフローで frontdoor.jsp を使用することをお勧めします。代わりに、セッション Cookie でドメイン SID を設定して Web セッションに接続します。

SID を frontdoor.jsp に投稿し、directBridge2 パラメーターを含むフォームの例を次に示します。

<form method="POST" action="https://domain_name/secur/frontdoor.jsp">
<input type="hidden" name="directBridge2" 
      value="true" />
<input type="hidden" name="sid" 
      value="full_sessionID_value" />
<input type="submit" name="Submit" />
</form>

ハイブリッド アプリケーション トークン フローについての詳細は、「ハイブリッド アプリケーションの OAuth 2.0 認証およびセッション管理」を参照してください。

完全なセッション ID

完全なセッション ID の一例が、OAuth 認証から取得する access_token です。外部クライアントアプリケーションの作成時に指定する範囲の 1 つは web または full である必要があります。

メモ
メモ frontdoor.jsp では、一部のセッション種別 (Experience Cloud サイトの API セッションなど) はサポートされていません。これらのセッションの場合、代わりにシングルサインオン用の SAML を使用することを検討してください。

セッション ID は、Apex の UserInfo.getSessionId()、$Api.SessionID、その他の取得元など、いくつかの方法で取得できます。これらの取得元から取得する ID 値がコンテキストによって異なることがあり、frontdoor.jsp で機能しない場合があります。その場合は、使用時にセキュリティ上のリスクを伴います。安全かつ信頼のおける値として、OAuth 認証の access_token を使用します。

サイトを開くための相対 URL

ユーザーを Salesforce ユーザーインターフェース、または特定のレコード、オブジェクト、レポート、Visualforce ページにリダイレクトするために、必要に応じて URL にエンコードされた相対パスを含めることができます (例: /apex/MyVisualforcePage)。

 
読み込み中
Salesforce Help | Article