ハッシュ アルゴリズムをSHA1からSHA512に変更した後に「Invalid username or password」メッセージが表示される


説明

パスワード暗号化のハッシュ アルゴリズムを変更する」の記事で推奨されているセキュリティ強化手順を適用した後、Identity Serverを利用したユーザー認証が失敗する場合があります。

アルゴリズムを変更しても、データベースに既に保存されているパスワードは変更されないため、再度パスワードを生成しなければならない場合がありますのでご注意ください。

解決策

この問題を修正するには、次の手順を実行します。

  1. Sitecore XP 9.1.0 - Sitecore XP 9.1.1向けHotfixをダウンロードします。
  2. ZIPファイルの内容を抽出して、内容にあるインストール手順と関連ファイルを確認します。
    Sitecore XP 9.1専用に作成されたものであり、Sitecoreサポートの指示がない限り、他のバージョンのSitecoreにインストールしたり、(互換性が確認されるまでは)他のHotfixと組み合わせてインストールしないでください。インストール手順に別段の記載がない限り、CMインスタンスにHotfixをインストールした後、貴社の通常の開発方法で、他のインスタンスと同期してください。
  3. Sitecore XPとIdentity Serverの両方でSHA1の設定を維持したまま、管理者としてログインします。
  4. HotfixがIdentityServerにインストールされたら、SitecoreとIdentity Serverの両方でSHA512を使用するように設定ファイルを変更します。
    • /sitecore/Sitecore.Plugin.IdentityServer/Config/identityServer.xml」ファイルの暗号化アルゴリズムを、以下のように変更します。
      変更前:
      <PasswordHashAlgorithm>SHA1</PasswordHashAlgorithm>
      変更後:
      <PasswordHashAlgorithm>SHA512</PasswordHashAlgorithm>
    • Web.Config」ファイルの「<membership>」ノードにて、「hashAlgorithmType」属性を「SHA512」値に設定します。
  5. 「User Manager」アプリケーションで、管理者のパスワードを変更し、パスワードが新しいアルゴリズムでハッシュ化されるようにします。設定変更により、AppPoolをリサイクルした後でも、ユーザーは最初のステップからログインする必要があります。ハッシュ アルゴリズムが変更されたことにより、古いパスワードが確認できないため、この時点では管理者のパスワードをお好みのものに変更することはできません。したがって、[Generate]ボタンにて新しくハッシュされた管理者のパスワードを取得します。
  6. 上記と同じ方法で他のユーザーのパスワードを変更します。