チュートリアル: Sitecore認証をテストするためのユーザーとページの作成
このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。
Sitecore Services Client (SSC) には、JSSアプリケーションで呼び出してSitecoreにログインし、REST要求を使用して .ASPXAUTH Cookieを設定できる認証サービスが含まれています。
SSC認証サービスにはSSL/TLS接続が必要なため、ローカル開発では、Sitecoreサイトの証明書とSSLバインディングを設定する必要があります。HTTPSプロトコルを使用してSitecoreインスタンスにアクセスすると、セキュリティ警告があっても、JSSアプリからSSC認証を使用する前に機能するはずです。
JSSサンプル アプリで認証とセキュリティをテスト/探索するには、Sitecore内からユーザーと保護されたルートを作成する必要があります。
次の手順では、JSSアプリケーションをSitecoreにインポートする必要があります。
このチュートリアルでは、次の方法について説明します。
-
管理画面のユーザーを作成する
-
保護されたルートを作成する
-
JSSアプリをSSC認証サービスで認証するように構成する
管理画面のユーザーを作成する
Sitecoreにログインするには、ユーザーを作成する必要があります。
ユーザーを作成するには:
-
Sitecoreにログインし、ラウンチパッドにアクセスします。
-
Access Managementセクションで、「User Manager」をクリックします。
-
リボンのNewをクリックします。
-
次のフィールドを指定します。
-
User name - 任意のユーザー名を入力します。
-
Domain - 「 extranet」を選択します。
-
Email - 有効なメールアドレスを入力します。
-
Password - 任意のパスワードを入力します。
-
-
「 Next 」をクリックし、「 Close」をクリックします。
保護されたルートを作成する
JSSアプリからSitecore認証サービスによる認証をテストするには、ユーザーがコンテンツにアクセスする前にログインを要求する保護されたルートが少なくとも1つ必要です。
保護されたルートを作成するには:
-
Sitecoreにログインし、ラウンチパッドにアクセスします。
-
Content Editingセクションで、「Content Editor」をクリックします。
-
コンテンツ ツリーで、JSSアプリのHome項目 ( /sitecore/content/JssReactWeb/homeなど) に移動します。
-
Homeアイテムを右クリックし、Insert、Extended Routeの順にクリックします。
-
ルートの名前を入力します。
-
新しいルートを選択したまま、SecurityタブのPresetsセクションで、Require loginチェック ボックスをオンにします。
-
「 OK」をクリックします。
-
変更を公開します。
JSSアプリをSSC認証サービスで認証するように構成する
SSC認証サービスを使用して、JSSアプリに簡単なログイン/ログアウト機能を追加できます。
認証には、アプリケーションが実行されている場所に応じて3つの方法があります。
Sitecoreインスタンスに対してローカルでの開発中に認証する
開発中にSitecoreに接続されたJSSアプリケーションを実行すると、ローカル サーバーがアプリを提供し、アプリはブラウザーでレンダリングされますが、SSC認証サービス リクエストはリモートSitecoreインスタンスに送信されます。
アプリケーションを接続モードで実行しながら認証するには:
-
scjssconfig.jsonファイルで、HTTPSプロトコルを使用するようにURLを変更して、SSLを使用するようにリモートSitecoreホストURLを設定します。たとえば、https://JssReactWeb.
-
アプリケーション設定で、ヘッダー のAccess-Control-Allow-HeadersとAccess-Control-Allow-Credentialsを設定します。
RequestResponse<add name="Access-Control-Allow-Headers" value="Content-Type, Accept, X-Requested-With, Session" /> <add name="Access-Control-Allow-Credentials" value="true" />
-
SSC Authサービスは、標準のOPTIONS Preflight Cross-Origin Request(CORS)をサポートしていないため、レスポンスが404になるため、URLエンコードされた本文を使用してログインサービスにリクエストを送信し、not JSONする必要があります。例えば:
RequestResponse// an example of sending a URL-encoded body using the fetch API (JavaScript) import queryString from 'query-string'; const payload = { domain: 'extranet', username: 'test', password: 'b' } fetch('https://site.core.local/sitecore/api/ssc/auth/login?sc_apikey={DCE1069B-36E8-4A66-946E-C1B07071C38C}', { headers: { Accept: 'application/json', 'Content-Type': 'application/x-www-form-urlencoded', }, credentials: 'include', method: 'POST', body: queryString.stringify(payload), }).then((response) => { console.log(response); });
統合されたJSSアプリでの認証
アプリケーションを 統合モードで実行する場合、SSC認証サービスの呼び出しは、アプリケーションと同じホスト名に対して行われるため、それ以上の設定は必要ありません。
認証が正しく機能するためには、次のことを行います。
-
HTTPSプロトコルを使用して、SSL経由でSitecoreホストにアクセスします。たとえば、https://JssReactWeb.
ヘッドレスでサーバー側でレンダリングされたJSSアプリで認証する
JSSアプリケーションをサーバー側でヘッドレスレンダリングする場合、プロキシシステムはCORSの問題なしにSSC認証サービスと .ASPXAUTH Cookieにリクエストをプロキシします。
認証が正しく機能するためには、次のことを行います。
-
config.jsファイルで、HTTPSプロトコルを使用するようにapiHostを更新します。たとえば、https://JssReactWeb.
-
プライベート署名証明書を使用して開発用Sitecoreインスタンスにプロキシする場合は、SSL証明書の検証の問題を防ぐために、正しい設定があることを確認してください。
-
または、config.jsファイルで、プロキシ オプションでsecureをfalseに設定して、SSL検証を完全に無効にします。例えば:
RequestResponseproxyOptions: { secure: false }
大事な本番環境でSSL検証を無効にすると、ソリューションが安全でなくなるため、無効にしないでください。