次の方法で共有


改善された ASP.NET ビュー ステートのセキュリティとキー管理

適用対象:no-img-132013 yes-img-162016 yes-img-192019 yes-img-seSubscription Edition no-img-sopSharePoint in Microsoft 365

注:

SharePoint Server サブスクリプション エディションでは、web.config ファイルのmachineKey セクションが既定で暗号化されます。 これにより、攻撃者は、 web.config ファイルにアクセスできる場合でも、ASP.NET ビューステートの暗号化と検証キーを読み取ることを防ぎます。

SharePoint Server サブスクリプション エディションまたは SharePoint Server 2016/2019 エディションを実行している場合、プラットフォームはマシン暗号化キーを定期的に更新することで機密データをセキュリティで保護します。 このプロセスは、PowerShell コマンドレットを使用して手動で実行され、Web アプリケーション内の暗号化解除キーと検証キーが更新されます。 このセキュリティプラクティスは、キーが侵害された場合の潜在的な脆弱性を軽減するのに役立ちます。 詳細については、「 PowerShell コマンドレット」を参照してください。

SharePoint Server サブスクリプション エディション バージョン 25H1 および 2025 年 9 月の SharePoint Server 2016 および 2019 のパブリック更新プログラムから、手動による介入なしにマシン キーを自動的に更新できます。 詳細については、「 マシン キーの自動ローテーション」を参照してください。

マシン キーの自動回転

自動マシン キーローテーション機能は、マシン キーの定期的な更新を自動化することでセキュリティを向上させ、キー侵害のリスクを最小限に抑えることが目的です。 この機能により、キーのローテーション中に SharePoint サービスの高可用性と信頼性を維持しながら、マシン キーのシームレスかつ自動ローテーションが保証されます。

この機能には、 マシン キーローテーション ジョブと呼ばれるタイマー ジョブを使用して、マシン キーのストレージ、取得、配布を処理するキー管理サービスが組み込まれています。 タイマー ジョブは、既定で毎週の日曜日に自動的に実行されるように構成されています。

マシン キーを手動で更新する必要がある場合は、次の手順を実行して、マシン キーローテーション タイマー ジョブをトリガーできます。

  1. サーバーの全体管理サイトに移動します。
  2. [監視] ->[ジョブ定義の確認] に移動します。
  3. [マシン キーローテーション ジョブ] を検索し、[今すぐ実行] を選択します。

ジョブが完了すると、ファームの管理者に大きな変更は発生しません。

次の新しい PowerShell コマンドレットを使用して、SharePoint Web アプリケーションの ASP.NET ビュー ステート復号化キーと検証キーを変更できるため、ファームでこれらのキーをローテーションできます。

PowerShell コマンドレット

  1. Set-SPMachineKey

    Web アプリケーションの ASP.NET ビュー ステート復号化キーと検証キーを構成します。

    構文

    Set-SPMachineKey -WebApplication <SPWebApplicationPipeBind> [-DecryptionKey <String>] [-ValidationKey <String>] [-Local] [<CommonParameters>]
    

    パラメーター

    • -WebApplication <SPWebApplicationPipeBind>

      Web アプリケーションの名前、URL、または GUID を指定します。

    • -DecryptionKey [<String>]

      新しい ASP.NET ビュー ステート復号化キーを指定します。 キーは、64 文字の長い 16 進文字列 (0 から 9 および A から F) として表す必要があります。

      このパラメーターが指定されていない場合は、ランダムな暗号化解除キーが生成され、使用されます。

    • -ValidationKey [<String>]

      新しい ASP.NET ビューステート検証キーを指定します。 キーは、64 文字の長い 16 進文字列 (0 から 9 および A から F) として表す必要があります。

      このパラメーターが指定されていない場合は、ランダムな検証キーが生成され、使用されます。

    • -Local

      新しい復号化キーと検証キーをローカル サーバーにのみデプロイします。 ファーム内の他のサーバーでは、以前の復号化キーと検証キーが引き続き使用されます。 ファーム内の複数のサーバー間で負荷分散された Web セッションは、ファーム内のすべてのサーバーでこれらのキーが同期されていない場合、失敗します。 Update-SPMachineKey コマンドレットを使用して、キーをファーム内の追加のサーバーにデプロイします。

      このパラメーターが指定されていない場合、新しい復号化キーと検証キーがファーム内のすべてのサーバーにデプロイされます。

  2. Update-SPMachineKey

    ASP.NET ビュー ステート復号化キーと検証キーをファーム内のサーバーにデプロイします。

    構文

    Update-SPMachineKey -WebApplication <SPWebApplicationPipeBind> [-Local] [<CommonParameters>]
    

    パラメーター

    • -WebApplication <SPWebApplicationPipeBind>

      Web アプリケーションの名前、URL、または GUID を指定します。

    • -Local

      新しい復号化キーと検証キーをローカル サーバーにのみデプロイします。 ファーム内の他のサーバーでは、以前の復号化キーと検証キーが引き続き使用されます。 ファーム内の複数のサーバー間で負荷分散された Web セッションは、ファーム内のすべてのサーバーでこれらのキーが同期されていない場合、失敗します。

      このパラメーターを指定しない場合、復号化キーと検証キーはファーム内のすべてのサーバーにデプロイされます。