近ごろ Twitter で話題を見かけて気になったものがありました。SharePoint Online 管理シェルからテナント設定を確認したときに、SharingCapability プロパティの他に、CoreSharingCapability や OneDriveSharingCapability といったプロパティも存在するというものです。

以前はこれらのプロパティが無かったと思ったので、どういった動きをするのか確認してみました。

SharingCapability

まず、SharingCapability です。これはテナントに適用されるファイル外部共有ポリシーの上限値です。SharePoint サイト個別の設定などでは、SharingCapability の値よりも制限を緩めることはできません。また、OneDrive for Business の外部共有のポリシーも、SharingCapability の値よりも緩くすることはできません。

SharePoint 管理センターで設定できる、SharePoint の外部共有のポリシーに連動しているようでした。

OneDriveSharingCapability

つぎに、OneDriveSharingCapability です。このプロパティは、この記事を書いている時点で最新の管理シェルであるバージョン 16.0.23019.12000 から取得・設定ができるようになったもののようでした。

これは名前からも分かる通り、OneDrive for Business の外部共有ポリシーの上限値になります。OneDrive for Business では、ユーザー個別に外部共有のポリシーを変更できますが、OneDriveSharingCapability の値よりも制限を緩めることはできません。

こちらも SharePoint 管理センターで設定できる、OneDrive の外部共有のポリシーに連動しているようでした。

CoreSharingCapability

さいごに、CoreSharingCapability です。これは、SharePoint サイトの外部共有ポリシーの上限値です。CoreSharingCapability と SharingCapability との違いが少しややこしいですね。

CoreSharingCapability は SharingCapability とは異なり、SharePoint サイトにだけ影響を与えます。つまりこの値を変えても、OneDrive for Business の外部共有ポリシーには影響を与えません。

また、SharePoint サイト個別の外部共有ポリシーは、この値よりも緩く設定することはできません。

こちらの値は、SharePoint 管理センターからは確認できず、現時点では PowerShell からのみ取得・設定ができます。

Microsoft 365 テナントのファイル外部共有ポリシーの関係性

これら 3 つのテナントレベルのプロパティに加えて、Get-SPOSite で取得できる SharePoint サイトや OneDrive ユーザー別の SharingCapability は、つぎのような関係性になると思います。

従来は、SharingCapability と CoreSharingCapability が同一のプロパティでしたが、これが 2 つに別れたことによって、SharePoint と OneDrive の外部共有ポリシーをより柔軟に設定できるようになりました。とは言え、SharePoint よりも OneDrive のほうが外部共有ポリシーの上限が緩いというのは、ほとんど設定する機会がないかもしれませんが…。

それぞれの設定値はどうするか?

それぞれのプロパティを調べましたが、ではどのように設定するのがよいのでしょうか?個人的にちょっと考えてみました。

SharingCapability

まず、テナント全体に影響を与える SharingCapability ですが、こちらはもっとも制限が緩い ExternalUserAndGuestSharing(すべてのユーザー)でも構わないのではないかと思いました。

心配になるのは、SharePoint サイト作成直後の設定ですが、サイトを新規に作成した場合、コミュニケーションサイトであれば「自分の組織内のユーザーのみ」、チームサイト(Microsoft Teams などから作成)であれば「新規および既存のゲスト」です。この時点で、SharePoint 管理センターから管理者が設定変更しない限り、SharePoint サイトに保存されたファイルを匿名ユーザーと共有することはできません。

さらには、チームサイトのゲストの管理に関しては、外部共有ポリシーではなく、Azure AD のゲスト招待のポリシーで管理したほうがよさそうに思いました。

CoreSharingCapability

CoreSharingCapability の設定が必要な場面は、Microsoft Teams でも外部共有を禁止したいと思っており、チームサイトの外部共有ポリシーの初期値を明示的に「既存のゲストのみ」や「自分の組織内のユーザーのみ」に設定したく、それよりも制限を緩めることが絶対にないという運用の場合でしょうか。

近ごろの Microsoft Teams の利用のされ方を見ていると、そこまで制限しているテナントも少なくなってきていると思います。さらには、CoreSharingCapability は SharePoint 管理センターからは設定値を確認することすらできず、必ず PowerShell の利用が必要になる点もネックです。

そんなわけで、既定値通り ExternalUserAndGuestSharing(すべてのユーザー)にしておき、制限をかけたければ SharingCapability の値を変えたほうがよさそうに思います。新しく追加されたプロパティですが、利用シーンはそこまで多くは無いんじゃないかなと思いました。

OneDriveSharingCapability

こちらは単純に、OneDrive for Business の外部共有をユーザーに許可するかどうかで設定できます。Microsoft Teams で招待済みのゲストとも共有する可能性を考えると、「既存のゲストのみ」か、それよりも緩いポリシーに設定するのがよいでしょうか。

さいごに

このあたりの外部共有ポリシーの設定は、Microsoft 365 の利用をはじめた管理者さんがはじめに見返している部分かなと思います。新しいプロパティも増えているので、設定変更せずとも、トラブルシューティングなどのときには知っておくといいかもしれません。