1. JSSアプリからのユーザーの認証

Sitecore統合フェデレーション認証を有効にする

Version:
日本語翻訳に関する免責事項

このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。

JSSアプリケーションを 統合モードで実行する場合、Sitecoreの組み込みOwinサポートを使用して、認証を委任し、ユーザーをSitecoreセキュリティ モデルにマッピングできます。

メモ

このアプローチは、Sitecoreへの直接のブラウザー要求に依存するため、ヘッドレス モードまたは接続モードでは機能しません。

フェデレーション認証を有効にするには:

  1. 一部の設定手順については、Sitecoreでのフェデレーション認証の使用 に関するドキュメントを参照してください。

  2. 選択したプロバイダーとのフェデレーション認証を構成します

  3. レイアウト サービスのコンテキストを拡張して、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);
            }
        }
    }
  4. レイアウト サービスから目的の出力が返されたことを確認します。前の手順のカスタマイズに基づいて、レイアウト サービスから返される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"
        }
    ]
この記事を改善するための提案がある場合は、 お知らせください!