以前の記事「サイトコアクライアントのログインセッションの保持期間の変更について」に関連した内容です。
現在Sitecoreの最新バージョンは10.3とバージョンが進み、Sitecore Identityサーバー(以下、SIサーバー)が9.1から導入されセッション管理の方式も変わっている為、改めておさらいになります。
Sitecoreはバージョン10以降(厳密にはバージョン9.2以降)だとSIサーバーが導入されており、SIサーバーで管理しているセッション有効時間とCMサーバーで管理しているセッション有効時間がそれぞれ存在しており、その辺りのお話です。
公式ドキュメントはこちら→ Sitecore Identity の構造(Sitecore公式ドキュメント)
Sitecore Identity(SI)サーバーとは
ASP.NET Coreのアプリケーションで作られている認証サーバーです。
Sitecore9.1以降をインストール後、webrootフォルダ配下に「★prefix名★.identity」というフォルダ名で作成されます。
Sitecore9.0以前はCMSログイン時の認証をCMサーバーで行っていましたが、このSI(SitecoreIdentity)サーバーが導入されてからは認証機能がSIサーバーに移行されています。
SIサーバーがある時のセッション管理について
ユーザー - CM間でのセッション有効時間と、ユーザー - SI間でのセッション有効時間がそれぞれ存在しています。
認証処理が発生した場合(SitecoreCMSにログインしようとした場合等)に「★prefix名★.identity」ドメインへリダイレクトされます。
ここで認証を行うとを利用して「ユーザー-SI」間の認証を行います。
認証がOKであれば、OpenIDConnectプロトコルを利用してSIサーバーからCMサーバーへ「認証OKです」とIDトークンを受け渡し、「ユーザー-CM」間も認証OKとなります。
ユーザー - CMサーバー間のセッション有効時間
この時間設定はWebフォルダ内のApp_Config/Sitecoreフォルダ内の設定ファイルで管理されています。
C:\inetpub\wwwroot\★prefix名★/App_Config/Sitecore/Owin.Authentication/Sitecore.Owin.Authentication.config
<owin.initialize>
00:30:00
true
</owin.initialize>
ExpireTimeSpan … セッション有効時間。デフォルトは00:30:00(30分)
SlidingExpiration … スライド式有効期限。デフォルトはtrue(有効)です。
このSlidingExpirationが有効になっていると、ExpireTimeSpanで設定されている時間の半分の時間(デフォルトだと30分の半分なので15分)が経過後にページにアクセスするとセッション有効時間が更新されます。
つまり「最終アクセスから30分後がセッション有効期限切れです。ただし、残り時間半分の15分後以降にアクセスしたらセッション有効期限を30分延長します」という状態になります。
ユーザー - SIサーバー間のセッション有効時間
この時間設定はSIサーバー内の設定ファイルで管理されています。
C:\inetpub\wwwroot\★prefix名★.identityserver\sitecore\Sitecore.Plugin.IdentityServer\Config\identityServer.xml
0.00:30:00
true
ExpireTimeSpan … セッション有効時間。デフォルトは00:30:00(30分)
SlidingExpiration … スライド式有効期限。デフォルトはtrue(有効)です。
先述したCMサーバーと同様の仕様です。
変更する場合の注意点としてCMサーバーはconfigファイルが変更された時点で即座に再起動が起こりますが、SIサーバーの場合は値を変更しても即座に再起動されず、手動でSIサーバーのアプリケーションプールを再起動させる必要があります。
もしSitecoreクライアントのセッション有効時間を変更したい場合は、この辺りの設定値を変更すると良いかもしれません。
※エントリーの内容・画像等は、公開時点での情報に基づきます。
※Sitecoreのバージョンによって実装されている機能が異なります。