これまでSharePoint アプリを登録およびアプリのアクセス許可を更新する際に次の SharePoint ページ上から設定していました。
SharePointのアプリの登録
https://<サイトのURL>/_layouts/15/AppRegNew.aspx
SharePoint アプリのアクセス許可の更新
https://<サイトのURL>/_layouts/15/AppInv.aspx
※個人的には Postman アプリから SharePoint の API 経由で操作するような場合に、Postman を SharePoint アプリとして登録して利用するのに使ったりしています。
このように SharePoint サイトの旧来からある機能を経由して、Azure 上にサービス プリンシパルを作成および更新していたわけです。
[参考] SharePoint アドインを登録する | Microsoft Learn
この設定が可能なのは、サイトコレクションの管理者(サイトの管理者)です。
変更点
この設定方法が管理ガバナンスのセキュリティ強化を目的として、2023年8月下旬から9月中旬にかけてのアップデートで変わります。今後は、SharePoint テナント管理者が明示的に承認しない限り、サイトコレクションの管理者が上記のページからアプリの登録やアプリのアクセス許可の変更ができなくなります。
たとえば、AppRegNew.aspx ページで[生成]ボタンや[作成]ボタンを押下すると次のようなメッセージが表示され先に進むことができません。
ただし、Microsoft Azure ポータルからアプリを登録し、アクセス許可を更新している場合はこの変更の影響は受けません。
既定ではサービス プリンシパルを作成および更新できるのはテナント管理者のみです。ただし、下記の PowerShellコマンドを実行することで SharePoint テナント管理者とサイトコレクションの管理者の両方が SharePoint サイト経由で従来通り、サービスプリンシパルの作成と更新ができるようになります。
この設定はテナントレベルの一括設定です。サイト単位ではありません。
Set-SPOTenant -SiteOwnerManageLegacyServicePrincipalEnabled $true
※SiteOwnerManageLegacyServicePrincipalEnabled プロパティは SharePoint Online 管理シェルが 16.0.23710.12000以降のバージョンで利用できるようになります。
このアップデートがロールアウトされる前はこの値は常に True となっており、明示的に False にしたとしても内部的には True です。ロールアウトされると既定値は False に自動的に切り替わります。
つまり、このプロパティが既定で False になっていれば、新機能がロールアウトされているということです。
コメント