SharePoint Online のカスタムスクリプトの実行を許可する設定に新しい制限が追加される予定

SharePoint Online
スポンサーリンク

このブログでも未だに参照される機会も多いのが、2015 年に書いた「静的 HTML ファイルを SharePoint にアップロードして公開する」の記事です。この記事では、既存のイントラネットサイトに静的 HTML ファイルが存在した場合、それを SharePoint Online のドキュメントライブラリにアップロードして再利用するための方法を紹介しました。

しかし、近ごろアナウンスされたロードマップによると、この方法が大幅に使いづらくなってしまうようなのです。

(MC714186)OneDrive と SharePoint のカスタムスクリプトの設定を削除する

静的 HTML ファイルをドキュメントライブラリにアップロードして利用するためには、サイトに対してカスタムスクリプトの実行を許可する必要がありました。2024 年 2 月に発表された内容では、この設定項目が SharePoint 管理センターから削除され、さらには、PowerShell で設定したとしても運用上の大きな制約事項が設けられてしまうとのことでした。これらの内容は、Microsoft 365 管理センターのメッセージセンターで、MC714186 として告知されています。

2024 年 3 月 29 日時点での告知の内容を、僕なりに整理してみたいと思います。(正しい情報を得たい場合は、Microsoft のサポートに確認してください)

SharePoint 管理センターから設定項目が削除される

この設定は、SharePoint 管理センターの [設定] – [クラシック設定ページ] にあります。

この設定項目が 5 月初旬までを目安に削除されます。

既存の設定が強制的にリセットされる

すべての SharePoint サイトに対して、カスタムスクリプトの実行を許可する設定が「許可しない」状態に強制的にリセットされます。この設定をリセットする処置は、4 月下旬ごろに開始されて 5 月上旬ごろまでに完了する予定です。

これらのリセットは、下記のサイトテンプレートを除く、すべての既存サイトと OneDrive サイトで行われます。んー、この中で現役で利用されていそうなのは、チームサイトの GROUP#0 くらいですかね……。自社で作成済みのサイトのサイトテンプレートを調べる方法は、このブログの過去記事も参考にしてください。

  • BLANKINTERNETCONTAINER#0 = Classic Publishing Portal site
  • CMSPUBLISHING#0 = Publishing Site
  • BLANKINTERNET#0 = Publishing Site
  • GROUP#0 = Team site
  • APPCATALOG#0 = App Catalog
  • CSPCONTAINER#0 = CSP Container

強制的なリセットを遅らせる方法

企業によっては、今回の処理によって大きな影響が与えられると考えられます。そのため、カスタムスクリプトの強制的なリセットの適応を遅らせる方法が提供されます。

SharePoint Online 管理シェルのバージョン 16.0.24524.12000 以降で利用可能となる「DelayDenyAddAndCustomizePagesEnforcement」オプションを有効化することによって、2024 年 11 月中旬まで適用を遅れさせることができます。

Set-SPOTenant -DelayDenyAddAndCustomizePagesEnforcement $True

なお、このコマンドは 4 月中旬以降に利用可能となる予定です。また、このコマンドは 11 月中旬までしか利用できません

サイト個別の設定は継続して可能。ただし 24 時間でリセットされる

このブログでも過去の記事で紹介してきたサイト個別にカスタムスクリプトの実行を許可する設定は、今後も引き続き利用できる予定です。SharePoint 管理サイトのサイト個別の設定画面から設定を変更できます。また、PowerShell によっても設定変更が引き続き可能です。

サイト個別のカスタムスクリプトの実行を許可する PowerShell のコマンドは次のようになります。

Set-SPOSite <SiteURL> -DenyAddAndCustomizePages $false

ただし、ここからが今回の告知のキモとなる部分です……。これらで設定変更できたとしても、その設定は 24 時間で強制的にリセットされてしまいます。つまりは、カスタムスクリプトの実行を許可する設定は、あくまでも一時的な利用にさせたいという Microsoft の意図を感じられます。

こうした 24 時間での強制リセットの適用に関しても、「DelayDenyAddAndCustomizePagesEnforcement」を設定しておくことで 11 月中旬まで遅らせることができます。ただし、11 月中旬以降は、いずれの場合であっても 24 時間で設定が強制リセットされるようになります。

カスタムスクリプトの実行が許可されなくなる影響

さて、そもそもカスタムスクリプトの実行が許可されなくなると、どのような影響があるのでしょうか。まずは、冒頭でも紹介したように、静的 HTML をドキュメントライブラリにアップロードして利用するには、アップロードする際にカスタムスクリプトの設定を変更しておく必要がありました。

そのほか、クラシックサイトではよく利用されていた、サイトやリスト、ライブラリをテンプレートとして保存する操作なども影響を受けます。コンテンツエディター Web パーツやスクリプトエディター Web パーツの利用も影響を受けるはずです。

このあたりの影響範囲は、公式ドキュメントにもまとめられていました。

カスタム スクリプトがブロックされている場合に影響を受ける機能
https://learn.microsoft.com/ja-jp/sharepoint/allow-or-prevent-custom-script#features-affected-when-custom-script-is-blocked

カスタムスクリプトの実行がブロックされるかどうなるかを検証

実際にカスタムスクリプトの実行がブロックされるとどうなるのかを検証してみました。これらの総括としては、HTML ファイルをアップロードしたり、スクリプトエディター Web パーツを挿入するときなどの必要なときにのみ、カスタムスクリプトの実行を許可しておけばよさそうでした。

アップロードした静的 HTML ファイルの動作

カスタムスクリプトの実行を許可した状態でアップロードされた静的 HTML ファイルは、そのまま Web ページのようにブラウザ上で表示して利用することができます。カスタムスクリプトの実行を禁止した後は、新たにアップロードした静的 HTML ファイルはブラウザで開くことなくダウンロードされる動作になりました。

ただし、カスタムスクリプトの実行を許可した状態でアップロードされた静的 HTML ファイルは、引き続きブラウザで開いて表示することができるようです。

クラシックサイトのスクリプトエディター Web パーツ

カスタムスクリプトの実行を許可した状態では、クラシックサイトでスクリプトエディター Web パーツやコンテンツエディター Web パーツをページに挿入できます。カスタムスクリプトの実行を禁止した後は、これらの Web パーツをページの編集で新たに挿入することができなくなりました。

ただし、すでにページに挿入済みのこれら Web パーツは引き続き動作するようです。

クラシックリストのテンプレート

カスタムスクリプトの実行を許可した状態では、リストの設定画面からリストのテンプレートを保存することができます。カスタムスクリプトの実行を禁止した後は、新たにリストのテンプレートを保存することはできなくなりました。

ただし、すでに保存済みのテンプレートから新たにリストを作成することはできるようです。

さいごに

これらの変更は、主にセキュリティ面の不安を解消するためという側面が大きいのでしょう。また、カスタムスクリプトに関連する機能が多く利用されていた、クラシックサイトの利用率が下がってきたことも影響しているのでしょうか。

僕も過去にはカスタムスクリプトを利用する機能を多く利用していたこともあり、このあたりの変更はきちんと確認していきたいと思います。

タイトルとURLをコピーしました