---
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ロールとしてユーザーアカウントに追加されます。これらのロールを追加する前に、これまでのすべてのロールはユーザーアカウントからクリアされます。これにより、外部ユーザーは自分のアカウントにロールセットを割り当てることができ、そのプロセスはユーザーがSitecoreにログインするたびに実行されます。

外部アイデンティティサーバー上でユーザー管理を行い、[トランスフォーメーション](https://doc.sitecore.com/xp/ja/developers/103/sitecore-experience-manager/configure-federated-authentication.html#UUID-c618bb48-a5b6-1e52-0c13-882e0666f797_N1614939275100 "Map claims and roles")を使ってユーザーアカウントにロールを割り当てることを推奨します。