マルチサイト名を使用してSitecore編集環境にログインする

samatsu 2/17/2019 1097 N/A Sitecore XP

Sitecore 9.1の環境でマルチサイト名を使用してSitecoreインタフェースにログインできるようにする手順を記述します。

Sitecore上でマルチサイトを実装していると、Sitecoreインストール時のインスタンス名ではなく、各サイトの名前でSitecoreインタフェースにアクセスしたほうが便利な場合があります。例えば、編集したいサイト名を使用して編集環境にアクセスることで、次のようにエクスペリエンスエディターのデフォルトのサイトのコンテキストが変わります。

  • エクスペリエンスエディターのデフォルトのサイトのコンテキスが、ブラウザーでアクセスしたサイトになる
  • ラウンチパッドから、エクスペリエンスエディターを起動すると、そのサイトのトップページが表示される
  • エクスペリエンスエディターのページのリンクもそのサイトのコンテキスト用のパスで生成される

そのため、今回は、Sitecoreインストール時のサイト名ではなく、マルチサイト用にカスタムで定義したサイト名を使用してSitecoreインタフェースにログインできるようにする方法を記載します。

動作確認環境は次の通りです

  • Sitecore 9.1 Initial Release
  • Standalone環境

1. 前提

今回は、次のような環境になっているとします。

  • Sitecore編集環境にアクセスするサイト名は http://sc91.sc/
  • SitecoreのWebサイトフォルダーは C:\inetpub\wwwroot 配下にインストールされている
  • カスタムサイトは、http://mysite.dev.local/ 
  • カスタムサイトのルートのアイテム /sitecore/content/mysite/home を作成済み

2. マルチサイトの定義

まずは、マルチサイトを定義してみます。Sitecoreインストールフォルダーの App_Config/Example フォルダー (今回の例ではC:\inetpub\wwwroot\sc91.sc\App_Config\Include\Examples) にある、SiteDefinition.config.example をコピーして、 MySiteDefinition.config という名前にリネームします。

MySiteDefinition.config をテキストエディターで開き、表に倣って、最低限の<site>タグの属性に変更を加えます。hostName属性は追加してください。

属性
name mysite
rootPath /sitecore/content/mysite
hostName mysite.dev.local

今回の例では、 /sitecore/content 配下に、 mysite というアイテムが存在し、その直下に home アイテムがサイトのトップページのアイテムとして定義されている前提で記載しています。

Sitecore 上での論理サイトの定義ができたので、ブラウザーからアクセスできるようにします。

まず名前解決の設定をします。管理者権限で、 hosts ファイルを開き、次の行を追加します。

127.0.0.1    mysite.dev.local

IISマネージャーを起動し、Sitecoreが動作しているサイトを右クリックして > バインドの編集 を選択して、mysite.dev.local をバインドに追加します。

これでサイトの定義は環境です。サイトをパブリッシュして、ブラウザーで http://mysite.dev.local という名前でマルチサイトにアクセスできることを確認します。

これで、前段階の準備完了です。

3. Sitecoreの編集環境にマルチサイト名でアクセスできるようにする

マルチサイトだけを定義した状態で、http://mysite.dev.local/sitecore というURLを使用して編集環境にログインしようとすると、次の unauthorized_client エラーの画面が表示されます。

Sitecore 9.1 からは Sitecore Identity が導入されています。カスタムサイト名で編集環境にアクセスできるようにするためには、信頼済みのサイトに登録しておく必要があります。

Sitecore Identity がインストールされているフォルダー (今回の例では C:\inetpub\wwwroot\sc91.identityServer) の配下にある、config/production/Sitecore.IdentityServer.Host.xml をテキストエディターで開きます。

ファイルの <AllowedCorsOriginsGroup1>....</AllowedCorsOriginsGroup1> で囲まれたノードを見つけて、その直下に、カスタムサイトを<allowedCoresOriginsGroup2> という要素で囲んで追加します。今回の場合は次のようになります。

<DefaultClient>
  <AllowedCorsOrigins>
    <AllowedCorsOriginsGroup1>http://sc91.sc</AllowedCorsOriginsGroup1>
    <AllowedCorsOriginsGroup2>http://mysite.dev.local</AllowedCorsOriginsGroup2>
  </AllowedCorsOrigins>
</DefaultClient>

あとは、IISを再起動し、ブラウザーもシャットダウンしてから、再度カスタムサイト名を使用して、編集環境にアクセスしてください。今回の場合は http://mysite.dev.local/sitecore です。

通常のログイン画面が表示されたら成功です。