Sitecore の Active Directory 連携モジュールをインストールして、 適切な設定を行うと サイトコアクライアントへシングルサインオンを実現できます。今回は、Active Directory モジュールを使用してサイトコアクライアントへのシングルサインオンを実装する覚書を記載します。

Active Directory 連携モジュールを使用した シングルサイノンの設定は SDN の Active Directoryモジュールのドキュメント Active Directory Module Administrator's Guide に記載されています。本記事作成時点では 4.3 Single Sign-on に記載があります。

検証環境は次の通りです

  • Sitecore の動作するサーバーは ADのメンバサーバー, Windows Server 2008 R2, IIS7.5
  • Sitecoreのバージョン Sitecore CMS 6.6 SP1
  • ADモジュールのバージョン Sitecore Active Directory 1.1 rev.130705

サイトコアが動作するアプリケーションプールの実行ユーザーは TEST\IisScSvc というドメインユーザーです。今回の環境用にサイトコアのアプリケーションプールの実行ユーザーをNetwork Service 以外にする場合のアクセス制限などのセットアップに関しては[Sitecore Active Directory] Active Directory モジュールを使用してみる セットアップ編を参照してください。サイトコアクライアントにログオンするため、認証するユーザーは[Sitecore Active Directory] Active Directory モジュールを使用してみる コンフィギュレーション編の手順に従ってサイトコアクライアントにログオンできるようになっている必要があります。

シングルサインオン実現する場合、サイトコアが動作するサーバーとクライアントPCはともに ドメインのメンバになっていることが前提です。ADのシングルサインオン機能を使用するので、もちろんサイトコアクライアントにログオンするユーザーもADのメンバーであることが前提となります。

1.LDAPLogin.aspxにWindows認証の設定を行う

Website/sitecore/admin/LDAPLogin.aspx に対して 匿名アクセスの無効化とWindows認証を有効化します。

IIS管理マネージャーを起動して、 下図のように サイトコアをインストールしたサイトの sitecore/admin フォルダを展開し、コンテンツを中央のペインに表示します。 LDAPLogin.aspx というファイルを右クリックしてコンテキストメニューの 機能ビューに切り替え をクリックします。 

下図のようにサイトの階層ツリー上に LDAPLogin.aspx が表示されるようになるので、 LDAPLogin.aspx を選択します。

中央ペインで認証をクリックします(下図参照)。

Windows 認証を選択して、 有効にします。 それ以外の認証方法はすべて無効にしておきます。最終的な状態は下図を参考にしてください。

ブラウザをサイトコアクライアントにログオンできるユーザーで起動して、 アクセスしてみます。http://Sitecoreサーバー/sitecore/admin/LDAPLogin.aspx のような LDAPLogin.aspx にアクセスします。ドメインのメンバではないクライアントPCやユーザーがアクセスした場合はプロンプトが表示されますので、そこでドメイン名とパスワードを入力してログインしてください。

Sitecoreがインストールされたサーバー上で動作確認をすると、プロンプト画面が表示されてログインできないという現象が発生する場合があります。対処方法としては、下記URLで記載されている ループバックの処理を無効化すれば解決できます。

IIS 5.1 または以降のバージョンでホストされ、統合認証を使用する Web サイトを参照するとエラー 401.1 が表示される
http://support.microsoft.com/kb/896861/ja

他の方法として SitecoreのサーバーはそもそもADに所属しているわけですから、DNSに サーバーのCNAMEとして サイトコアのサイトの名前を登録(本例では v66sp1 ) してあげれば問題は解決します。その場合は サイトコアサーバーのhosts ファイルからサイトコアのサイト名のエントリをコメントして無効化します。

下図のようにサイトコアがインストールされたサーバーの hosts ファイルの ループバックアドレスが指定されているエントリをコメントにします。

hostsファイルにコメントを追加したので、 下図のようにサイトコアのサイトと同じ名前のCNAMEレコードをADのDNSに登録してあげれば問題は発生せず、Sitecoreサーバー上からでもシングルサインオンできるようになります。

2.まとめ

説明は以上です。手順を踏めばシングルサインオンも比較的簡単に構成できるようになります。

サイトコアは1つのサーバー上で複数のサイトを管理するときに IIS のHOSTHEADER によるリクエストの振り分け機能を使用していますが、HOSTヘッダーを使用すると、サイトコアサーバー自身(ローカル)からLDAPLogin.aspx にログインしてもうまくWindows認証によるログインができないという現象を解決するのに苦労するので少しでも記事がお役に立てればと思います。