1. Sitecoreのアイデンティティ

シングル サインアウト

Version:
日本語翻訳に関する免責事項

このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。

Sitecore Identityサーバー (SIサーバー) からユーザーをサインアウトするには、認証Cookieを削除します。ただし、完全なフェデレーション サインアウトは、クライアント アプリケーション (場合によってはアップストリームIDプロバイダー) からユーザーをサインアウトすることも考慮する必要があることを意味します。

ユーザーがサインアウトしたときのクライアントへの通知

SIサーバーは、サーバー側クライアント (MVCアプリケーションなど) のフロントチャネル仕様をサポートします。これを使用して、ユーザーがサインアウトしたことをクライアント アプリケーションに確実に通知します。

フロントチャネル仕様を使用してサーバー側のクライアント アプリケーションからユーザーをサインアウトするには、SIサーバーのsigned outページで、ユーザーがサインアウトしたことをクライアントに通知する <iframe> をレンダリングする必要があります。通知するクライアントには、構成で指定されたFrontChannelLogoutUris設定の値が必要です。

この構成では、サインアウト エンドポイントURIを定義します。複数のサブノードを使用して複数のURIを定義したり、| 記号を使用してノード内のURIを区切ったりできます。また、{AllowedCorsOrigin} テンプレートを使用して、設定を簡略化することもできます。そのテンプレートを使用すると、すべてのオリジン (ホスト) にサインアウトが通知されます。

FrontChannelLogoutSessionRequired設定を使用して、サインアウトエンドポイントのオンとオフを切り替えます。

次に、設定の例を示します。

<?xml version="1.0" encoding="utf-8"?>
<Settings>
  <Sitecore>
    <IdentityServer>
      <Clients>
        <DefaultClient>
          <FrontChannelLogoutUris>
            <DefaultFrontChannelLogoutUri>{AllowedCorsOrigin}/sitecore/shell/FrontChannelLogout|https://service/extraLogoutEndpoint</DefaultFrontChannelLogoutUri>
          </FrontChannelLogoutUris>
          <FrontChannelLogoutSessionRequired>true</FrontChannelLogoutSessionRequired>
        </DefaultClient>
      </Clients>
    </IdentityServer>
  </Sitecore>
</Settings>

SIサーバーは、ユーザーがサインインしたクライアントを追跡し、IIdentityServerInteractionServiceサービスにAPI GetLogoutContextAsyncを提供します。このAPIは、サインアウト ページがa <iframe>にレンダリングする必要があるSignOutIFrameUrlプロパティを持つLogoutRequestオブジェクトを返します。

クライアントのサインアウト エンドポイント

サインアウト プロセスを実行するには、クライアントはSIサーバーからの要求を処理するエンドポイントを実装する必要があります。Sitecoreインスタンスには、<Sitecore instance host name>/sitecore/shell/FrontChannelLogoutエンドポイントに実装があります。

Sitecore Hostアプリケーションのサインアウト エンドポイント

Sitecore.Plugin.Authentication.OpenIdConnectプラグインには、サインアウト エンドポイントが含まれています。デフォルトでは <application host name>/sitecore/shell/FrontChannelLogoutですが、設定で別のアドレスを指定できます。

<?xml version="1.0" encoding="utf-8"?>

<Settings>
  <Sitecore>
    <Authentication>
      <OpenIdConnectOptions>
        <FrontChannelLogoutEndpoint>/sitecore/shell/FrontChannelLogout</FrontChannelLogoutEndpoint>
      </OpenIdConnectOptions>
    </Authentication>
  </Sitecore>
</Settings>
この記事を改善するための提案がある場合は、 お知らせください!