Frontdoor.jsp を使用した既存のセッションから Salesforce へのアクセス
frontdoor.jsp を使用すると、Salesforce サイトなど、カスタムの Web インターフェースから、既存のセッション ID とサーバー URL を使用して Salesforce にアクセスする権限をユーザーに付与できます。
必要なエディション
| 使用可能なインターフェース: Salesforce Classic および Lightning Experience の両方 |
| 使用可能なエディション: すべてのエディション |
frontdoor.jsp を使用してユーザーを認証するには、SOAP API login() コールから返された LoginResult の serverUrl からセッション ID (15 文字または 18 文字の ID のみではない) とインスタンスまたはドメインを解析する必要があります。これらの値を POST 要求を使用するフォームを介して frontdoor.jsp に渡すことをお勧めします。
たとえば、次のフォームは現在のセッション 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 ブラウザーではサポートされません。
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 である必要があります。
セッション ID は、Apex の UserInfo.getSessionId()、$Api.SessionID、その他の取得元など、いくつかの方法で取得できます。これらの取得元から取得する ID 値がコンテキストによって異なることがあり、frontdoor.jsp で機能しない場合があります。その場合は、使用時にセキュリティ上のリスクを伴います。安全かつ信頼のおける値として、OAuth 認証の access_token を使用します。
サイトを開くための相対 URL
ユーザーを Salesforce ユーザーインターフェース、または特定のレコード、オブジェクト、レポート、Visualforce ページにリダイレクトするために、必要に応じて URL にエンコードされた相対パスを含めることができます (例: /apex/MyVisualforcePage)。
