Sitecore統合されたフェデレーテッド認証を有効にする
このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。
統合モードでJSSアプリケーションを実行する際、Sitecoreの組み込みOwinサポートを利用して認証を委任し、ユーザーをSitecoreセキュリティモデルにマッピングできます。
!注この方法はヘッドレスや接続モードでは機能しません。なぜなら、ブラウザからのリクエストが直接Sitecoreに向かっているからです。
連邦認証を可能にするために:
-
構成手順については、Sitecoreでのフェデレーテッド認証の使用 に関するドキュメントを参照してください。
-
レイアウトサービスのコンテキストを拡張して、Sitecore生成のログインURLをレイアウトサービスの出力に追加します。
!ヒントレイアウト サービスから返されるコンテキストデータの拡張に関するドキュメントを参照してください。
例えば:
using System.Linq; using Sitecore.Abstractions; using Sitecore.LayoutService.ItemRendering.Pipelines.GetLayoutServiceContext; using Sitecore.Pipelines.GetSignInUrlInfo;
public class AddLoginLinks : Sitecore.JavaScriptServices.ViewEngine.LayoutService.Pipelines.GetLayoutServiceContext.JssGetLayoutServiceContextProcessor { protected readonly BaseCorePipelineManager CorePipelineManager; protected readonly BaseLinkManager LinkManager;
public AddLoginLinks(Sitecore.JavaScriptServices.Configuration.IConfigurationResolver configurationResolver, BaseCorePipelineManager corePipelineManager, BaseLinkManager linkManager) : base(configurationResolver) { CorePipelineManager = corePipelineManager; LinkManager = linkManager; }
protected override void DoProcess(GetLayoutServiceContextArgs args, Sitecore.JavaScriptServices.Configuration.AppConfiguration application) { var returnUrl = LinkManager.GetItemUrl(args.RenderedItem); var loginUrlArgs = new GetSignInUrlInfoArgs(site: "JssReactWeb", returnUrl: returnUrl); GetSignInUrlInfoPipeline.Run(CorePipelineManager, loginUrlArgs); if (loginUrlArgs.Result.Any())extend the Layout Service context { args.ContextData.Add("loginUrls", loginUrlArgs.Result); } } }
-
レイアウトサービスから望ましい出力が返ってきているか確認してください。前のステップのカスタマイズに基づき、レイアウトサービスから返されるJSONデータには以下が含まれているはずです:
loginUrls: { identityProvider: "Auth0", caption: "Log in with Auth0", icon: "/sitecore/shell/themes/standard/Images/24x24/helloworld", href: "/identity/externallogin?authenticationType=Auth0&ReturnUrl=%2fidentity%2fexternallogincallback%3fReturnUrl%3d%252fservices%26sc_site%3djssreactweb%26authenticationSource%3dDefault&sc_site=JssReactWeb" }