今回の記事では「アカウントにロックがかかった際の解除方法」について紹介します。
解除する方法は2種類あります。
今回は使用するバージョンは下記の通りです。
Sitecore:9.0.2
Microsoft SQL Server Management Studio2022:18.12.1
方法1.DBにSQLを流してアカウントのロックを解除する
1.Microsoft SQL Server Management Studioを開き、オブジェクトエクスプローラーから画像の①データベースフォルダを開く
2.画像の②のように、対象のDBのCoreを選択する
DBには公開前の記事を保存するmaster、エンドユーザーが参照するweb、アカウント情報が保存されているcoreがあります。
今回はアカウントについての処理を行いたいため、Coreに対してSQLを実行します。
3.画像の③新しいクエリを押下する
4.画像の④のフィールドに下記SQLを張り付ける
Admin以外のアカウントに対して処理を行う場合は、UserNameを変更してください。
PasswordとPasswordSaltはCoreのaspnet_Membershipテーブルに格納されている初期パスワードです。
UPDATE
[aspnet_Membership]
SET
[Password]='qOvF8m8F2IcWMvfOBjJYHmfLABc=',
[PasswordSalt]='OM5gu45RQuJ76itRvkSPFw==',
[IsApproved] = '1',
[IsLockedOut] = '0'
WHERE
UserId IN (
SELECT UserId FROM dbo.aspnet_Users WHERE UserName = 'sitecore\Admin'
)
5.画像の⑤実行を押下し、SQLを実行する
SQLを実行することによりパスワードを初期化します。
初期化後のパスワードは、Sitecoreでデフォルトに設定される「b」になります。
※ 上手くいかない場合は、手順4でパスワードがわかる他のアカウントのPasswordとPasswordSaltをコピーして貼り付けてください。その場合、初期化後のパスワードはコピー元のアカウントのパスワードになります。
参考:SQLを流してアカウントのロックを解除する
方法2.以下の方法でログインして、ユーザマネージャーからアカウントのロックを解除する
1.C:\inetpub\wwwroot\各サイトのフォルダ 配下にUnlock.aspxという名前でファイルを作成する
2.作成したUnlock.aspxに、下記コードを張り付けて保存する
<%@ Page Language="C#" AutoEventWireup="true" %>
<%@ Import Namespace="Sitecore.Security.Authentication" %>
<%
//ログイン
//ログインしたいアカウントを指定する
//引数はuserName, persistent, allowLoginToShell
AuthenticationManager.Login("sitecore\\admin", false, true);
//sitecore/shellにリダイレクト
Response.Redirect("/sitecore/shell");
%>
AuthenticationManager.Login()を使用することでSitecoreにログインできます。
AuthenticationManager.Login()では、下記の3つの引数を指定します。
- userName
ログインしたいアカウントを指定します。
Admin以外のアカウントに対して処理を行う場合は、UserNameを変更してください。
- persistent
ログイン状態を維持するか設定します。
persistentがtrueの時、ログイン状態を維持しますが、今回はその必要はないためfalseにします。
- allowLoginToShell
サイトへのログインの許可の有無を設定します。
今回はログインを許可するためtrueにします。
3.下記URLにアクセスする(強制的にログイン後の画面に遷移する)
https://各サイトのドメイン/Unlock.aspx
4.ログアウト後、通常通り下記URLからログインする
https://各サイトのドメイン/sitecore/login
※それでもログインできるようにならない場合は、3の方法でログイン後、ランチパッドのユーザマネージャーからアカウントのパスワードを変更してください。
5. Unlock.aspxを削除する
ファイルが残った状態だとパスワードなしでログインできてしまうため、セキュリティ上良くありません。
ログインできることを確認でき次第、削除してください。
参考:ユーザマネージャーからアカウントのロックを解除する
ランチパッドからのアカウントのパスワード変更方法
1.ランチパッドからユーザマネージャーを開く
2.下記画像の①でアカウント名を検索する
3.②でパスワードを変更したいアカウントを選択する
4.③のパスワード変更を押下する
.
5.下記画像の①の生成を押下し、パスワードをランダムに生成されたものに変更する
6.②の生成されたパスワードをコピーし、③のフィールドに貼り付ける
7.新しいパスワードに設定したいパスワードを入力する
アカウントがロックされた際には、これらの方法を試してみてください。
以上です。
※エントリーの内容・画像等は、公開時点での情報に基づきます。
※Sitecoreのバージョンによって実装されている機能が異なります。