---
title: "Sitecoreでのフェデレーテッド認証の利用"
slug: "using-federated-authentication-with-sitecore"
abstract: "外部アイデンティティプロバイダーの利用方法を説明します"
---
# Sitecoreでのフェデレーテッド認証の利用

歴史的に、Sitecoreはユーザー認証情報の検証と保存に[ASP.NETのメンバーシップ](https://msdn.microsoft.com/en-us/library/yh26yfzy.aspx) を使用してきました。ASP.NET 5では、Microsoftは[ASP.NET Identity](https://docs.microsoft.com/en-us/aspnet/core/security/authentication/identity)と呼ばれるより柔軟な検証メカニズムを提供し始めました。

ASP.NET Identityは[Owin](https://docs.microsoft.com/en-us/aspnet/core/fundamentals/owin)ミドルウェアコンポーネントを使用して外部認証プロバイダーをサポートしています。これらの外部プロバイダーはSitecore Experience Platform内でのフェデレーテッド認証を可能にします。

Sitecore：

-   認証をサードパーティプロバイダーに委譲するためにOwinミドルウェアを使用しています。
-   第三者の保険会社から請求を受け取る。

フェデレーテッド認証はデフォルトで有効です。フェデレーテッド認証を無効にするには:

-   \\App\_Config\\Include\\Examples\\ folderでは、Sitecore.Owin.Authentication.Disabler.config.exampleの名前をSitecore.Owin.Authentication.Disabler.configに改名します。

[Owin](http://owin.org/)がサポートするプロバイダーでSitecoreの連邦認証を利用できます。私たちのドキュメントのほとんどの例は、Microsoftのマルチテナント・クラウドベースのディレクトリおよびアイデンティティ管理サービスである[Azure AD](https://docs.microsoft.com/en-us/azure/active-directory/active-directory-whatis)を使用していることを前提としています。

Owin.Authenticationは、Facebook、Google、Twitterなど多くの他のプロバイダーをサポートしています。

フェデレード認証はスケールされた環境で機能します。

フロントエンドログイン(コンテンツ配信サーバー上)にはFederated Authenticationを利用できますし、すべてのSitecore(バックエンド)認証には必ずSitecore Identityを使用することを推奨します。

Sitecore 9.1.0以降はActive Directoryモジュールをサポートしていないので、代わりにフェデレーテッド認証を使うべきです。

## クッキーと連邦認証

もしSitecoreを使わない場合は、Owin.Authentication、デフォルトの認証クッキー名は 。ASPXAUTH。 Web.configファイルでこれを変更できます:

<authentication mode="Forms">
 <forms name=".ASPXAUTH" cookieless="UseCookies" />
</authentication>

もしあなたがSitecoreを使うならOwin。認証に関しては、.ASPXAUTHクッキーは使用されません。したがって、このクッキーをコードから直接使用してはいけません。

なぜならSitecore。Owin.AuthenticationはBaseAuthenticationManagerクラスを上書きし、下にあるFormsAuthenticationProviderクラスを使いません。AuthenticationManagerクラスを使うコードに対して.ASPXAUTH認証クッキーが欠けていることは問題ありません。

Owin認証モードを使用する場合、Sitecoreはデフォルトで2つの認証クッキーを使用します。

-   .AspNet.Cookies – ログインユーザー向けの認証クッキー
-   .AspNet.Cookies.Preview – プレビューモードユーザー向けの認証クッキー

これらのクッキーにより、ユーザーはエクスペリエンスエディタープレビューモードで異なるユーザーとしてログイン・ログアウトでき、異なるアクセス権を持つ異なるユーザーとしてSitecoreページを閲覧できます。

Sitecoreの構成文の名前は以下の通りです:

-   ".AspNet." + AuthenticationType + AuthenticationSource.
    -   AuthenticationTypeはデフォルトでCookiesされており、Owin.Authentication.DefaultAuthenticationType設定で変更できます。
    -   AuthenticationSourceはデフォルトでDefaultされています。Default時にはクッキー名には含まれていません。AuthenticationSourceは同じサイトに対して複数の認証クッキーを持たせることを可能にします。

Owinクッキー認証ミドルウェアはowin.initializeパイプラインで設定します。

## 仮想ユーザーおよび永続ユーザー

フェデレーテッド認証は2種類のユーザーをサポートしています:

-   永続ユーザー – Sitecoreは永続ユーザー(ログイン名、メールアドレスなど)に関する情報をデータベースに保存し、デフォルトでメンバーシッププロバイダーを使用します。
-   バーチャルユーザー – これらのユーザーに関する情報はセッション内に保存され、セッション終了後に消えます。

Sitecoreが外部ユーザーを表す永続ユーザーを作成する際には、いくつかの制限があります。Sitecoreはそのようなユーザーに対して以下の機能をサポートしていません。

1.  **ユーザーマネージャー**で外部ユーザーの役割を読み取り削除すること。なぜなら、これらのロールはSitecoreに保存されていないからです。ロールは認証クッキーに保存されますが、coreデータベースのaspnet\_UsersInRolesテーブルには存在しません。**ユーザーマネージャー**ではロールは全く見られません。
2.  **Access Viewer**でロール変換によってユーザーに割り当てられた権限は見られません。
3.  ユーザーパスワードの変更。対応するアイデンティティプロバイダーのパスワードを変更する必要があります。