---
title: "単発サインアウト"
slug: "single-sign-out"
abstract: "シングルサインアウトの概要:ユーザーがサインアウトした際の通知方法、クライアントサインアウトエンドポイント、Sitecore Hostアプリケーションがサインアウトエンドポイントを達成する方法などが含まれます。"
---
# 単発サインアウト

認証クッキーを除去することで、Sitecore Identityサーバー(SIサーバー)からユーザーをサインアウトします。しかし、完全なフェデレーテッドサインアウトの場合、クライアントアプリケーション(場合によっては上流のアイデンティティプロバイダー)からもユーザーをサインアウトすることを考慮する必要があります。

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

SIサーバーはサーバーサイドクライアント(例えばMVCアプリケーション)向けのフロントチャネル仕様をサポートしています。これを使って、クライアントアプリケーションにユーザーがログアウトしたことを通知できるようにします。

フロントチャネル仕様を通じてサーバーサイドクライアントアプリケーションからユーザーをサインアウトするには、SIサーバーの *サインアウト* ページがユーザーがサインアウトしたことをクライアントに通知する <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は、サインインアウトページが<iframe>にレンダリングしなければならないSignOutIFrameUrlプロパティを持つLogoutRequestオブジェクトを返します。

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

サインアウトプロセスを実行するためには、クライアントがSIサーバーからのリクエストを処理するエンドポイントを実装しなければなりません。Sitecoreインスタンスは <Sitecore instance host name>/sitecore/shell/FrontChannelLogoutエンドポイントで実装を持っています。

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

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>