SharePoint Framework ゲストユーザーに利用させたい
SharePoint Framework で Web パーツや拡張機能を開発&展開後、テナント内のユーザーは問題なく利用できるけれど、ゲスト ユーザーはエラーになってしまう。。
今日はこのような場合にどのようにすればよいか対処方法をご紹介します。
エラーの原因
SharePoint Framework で作成した Web パーツや拡張機能は config\package-solution.json の includeClientSideAssets が true の場合、実行に必要なすべての *.js *.jpg などをパッケージに含め、テナントの設定に応じてファイルをどこに配置するかを決定します。テナントでMicrosoft 365 パブリック CDN を有効にしていない場合、テナントのアプリ カタログ サイト内の ClientSideAssets ライブラリ (隠しライブラリのため URL を直接指定することで確認) に配置されます。
何もしなければゲスト ユーザーはアプリ カタログ サイトに対してアクセス権を持ちませんのでエラーになってしまう。というわけです。
対処方法
ゲスト ユーザーに作成したアプリを利用させたい場合、いくつかの方法がありますが、以下の 2 つの方法が容易な対処方法です。
① アプリ カタログに対してゲスト ユーザーに権限を付与
アプリ カタログ サイトに権限が不足しているためエラーが発生しているので、権限を付与すれば参照できるようになります。
SharePoint Online Management Shell を利用することで Azure Active Directory の非表示グループを表示させるようにすれば、ゲスト ユーザーのグループを権限設定時に利用できるようになります。
Set-SPOTenant -ShowEveryoneClaim $true
※ 2018 年 3月より前に作成したテナントでは既定で True だったようなのですが、最近は False が既定になりました。
② Microsoft 365 パブリック CDN を有効に
Microsoft パブリック CDN は静的資産をグローバルな高速ネットワークから提供し、それにより SharePoint Online ページのパフォーマンス向上がはかれます。
これを利用することで SPFx の開発内容で利用する *.js や画像ファイル等が Microsoft パブリック CDN と呼ばれる匿名でアクセス可能な環境に自動的に保存され利用時に参照できるようになります。
Set-SPOTenantCdnEnabled -CdnType Public
- アプリ カタログ サイトにアップロードしたコンテンツがパブリック CDN で利用できるようになるまで 15 分程度かかると言われています。実際に試してみたところだいたい私は数分で Microsoft パブリック CDN からファイルが提供されるようになりました。
- 匿名アクセス可能な領域に保存されるという事は認識したうえで利用しましょう。
- なお、匿名アクセス可能ですが、普通に URL にアクセスするだけではファイルは取得・参照できません。該当テナントの SharePoint ページからのリクエストの場合 (厳密にいうとリクエストヘッダーの Referer に自テナントの SharePoint ページの URL が入っている場合) にのみファイルが取得可能という動作となります。
今回ご紹介した内容は SPFx v1.4 で導入された includeClientSideAssets 属性を利用しているため新しい内容ではありませんが、ゲスト ユーザーに Web パーツや拡張機能を利用してもらいたい場合に参照していただけたらと思います。
SharePoint 関連コース
- CI620-H SharePoint Framework 開発 基礎
これから SharePoint Framework の開発を行う方を対象に知っておくべき内容を 2 日間に集約して体系的に解説! - CI631-H SharePoint Online サイト構築 基礎
サイト管理者に必要となる知識や標準機能を組み合わせてサイト構築を行うための知識を習得いただけるコースです。また SharePoint Online 全体レベルでの設定内容についても理解します。 - CI641-H SharePoint Online サイト構築 応用
JSON による書式設定や Power Platform と組み合わせた処理の自動化やワークフロー、フォームの編集方法を実践的な実習とともに SharPoint サイトのカスタマイズ方法を解説。 - CI614-H SharePoint & Power Apps & Power Automate 実践ラボ
Microsoft 365 ライセンスの範囲で Power Apps や Power Automate を活用した業務アプリを作成する方法を基本を理解されている方を対象に実践的なラボを行いながら解説する上位コースです。