Sitecoreでのフェデレーテッド認証の利用
このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。
歴史的に、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の連邦認証を利用できます。私たちのドキュメントのほとんどの例は、Microsoftのマルチテナント・クラウドベースのディレクトリおよびアイデンティティ管理サービスであるAzure ADを使用していることを前提としています。
Owin.Authenticationは、Facebook、Google、Twitterなど多くの他のプロバイダーをサポートしています。
フェデレード認証はスケールされた環境で機能します。
フロントエンドログイン(コンテンツ配信サーバー上)にはFederated Authenticationを利用できますし、すべてのSitecore(バックエンド)認証には必ずSitecore Identityを使用することを推奨します。
Sitecore 9.1.0以降はActive Directoryモジュールをサポートしていないので、代わりにフェデレーテッド認証を使うべきです。
クッキーと連邦認証
もしSitecoreを使わない場合は、Owin.Authentication、デフォルトの認証クッキー名は .ASPXAUTHです。 Web.configファイルでこれを変更できます:
もしあなたが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にログインするたびに実行されます。
外部アイデンティティサーバー上でユーザー管理を行い、トランスフォーメーションを使ってユーザーアカウントにロールを割り当てることを推奨します。