Sitecore でのフェデレーション認証の使用

Current version: 10.1

これまで、Sitecore は ASP.NET メンバーシップ を使用して、ユーザーの資格情報を検証し格納していました。ASP.NET 5 で、Microsoft は ASP.NET Identity と呼ばれる別のより柔軟な検証メカニズムの提供を開始しました。

ASP.NET Identity はOwin ミドルウェア コンポーネントを使用して外部認証プロバイダーをサポートします。これらの外部プロバイダーは、Sitecore Experience Platform 内でのフェデレーション認証を可能にします。

Sitecore:

  • Owin ミドルウェアを使用して、認証をサードパーティ プロバイダーに委任します。

  • サードパーティ プロバイダーからクレームを取り戻します。

フェデレーション認証は既定で有効になっています。フェデレーション認証を無効にするには、次の手順に従います。

  • \App_Config\Include\Examples\ folder で、Sitecore.Owin.Authentication.Disabler.config.example の名前を Sitecore.Owin.Authentication.Disabler.config に変更します。

Owin でサポートされるプロバイダーで Sitecore フェデレーション認証を使用できます。Sitecore のドキュメントのほとんどの例では、Azure AD、Microsoft マルチテナント、クラウドベースのディレクトリ、ID 管理サービスなどを使用することを前提としています。

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

フェデレーション認証は、スケーリング環境で機能します。

(コンテンツ配信サーバーでの) フロントエンド ログインにフェデレーション認証を使用できますが、すべての Sitecore (バックエンド) 認証には常に Sitecore Identity を使用することをお勧めします。

Sitecore 9.1.0 or later does not support the Active Directory module, you should use federated authentication instead.

Sitecore.Owin.Authentication を使用しない場合、既定の認証 Cookie は ASPXAUTH です。これは Web.config ファイルで次のように変更できます。

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

ただし、Sitecore.Owin.Authentication を使用する場合は、.ASPXAUTH Cookie を使用しません。したがって、この Cookie をコードから直接使用しないでください。

Sitecore.Owin.Authentication は BaseAuthenticationManager クラスを上書きし、その下の FormsAuthenticationProvider クラスを使用しないため、.ASPXAUTH 認証 Cookie が、AuthenticationManager クラスを使用するコードになくても問題ありません。

Owin 認証モードを使用する場合、Sitecore は既定で 2 つの認証 Cookie で動作します。

  • .AspNet.Cookies – ログインしたユーザーの認証 Cookie

  • .AspNet.Cookies.Preview – プレビュー モード ユーザーの認証 Cookie

これらの Cookie を使用すると、ユーザーはエクスペリエンス エディターのプレビュー モードで別のユーザーとしてログイン/ログアウトしたり、アクセス権の異なる別のユーザーとして Sitecore のページを閲覧したりすることができます。

Sitecore のコンストラクト名は次のように構成されます。

  • ".AspNet." + AuthenticationType + AuthenticationSource.

    • AuthenticationType は既定で Cookies に設定されていますが、Owin.Authentication.DefaultAuthenticationType 設定で変更することができます。

    • AuthenticationSource は既定で Default に設定されています。これが Default である場合、Cookie 名には含まれません。AuthenticationSource により、同じサイトに複数の認証 Cookie を持つことができます。

owin.initialize パイプラインで Owin Cookie 認証ミドルウェアを設定します。

仮想ユーザーと永続ユーザー

フェデレーション認証は、次の 2 種類のユーザーをサポートします。

  • 永続ユーザー – Sitecore は永続ユーザーに関する情報 (ログイン名、メール アドレスなど) をデータベースに格納し、既定で Membership プロバイダーを使用します。

  • 仮想ユーザー – これらのユーザーに関する情報はセッションに格納され、セッションが終了すると消去されます。

There are a number of limitations when Sitecore creates persistent users to represent external users. Sitecore does not support the following features for such users:

  1. ユーザー マネージャーでの外部ユーザーのロールの読み取りと削除。これらのロールは Sitecore に格納されないためです。ロールは認証 Cookie に格納されますが、core データベースの aspnet_UsersInRoles テーブルには格納されません。このロールは ユーザー マネージャーにまったく表示されません。

  2. ユーザーは、ロール変換を介してユーザーに割り当てられた権限をアクセス ビューアーで表示することはできません。

  3. Changing a user password. You have to change passwords it in the corresponding identity provider.

Do you have some feedback for us?

If you have suggestions for improving this article,