概要
いくつかの Vitextra Web パーツは、SharePoint サイトの外部にあるデータを読み取ります。Microsoft Entra ID のユーザー プロファイルと上司の階層、Microsoft Teams のプレゼンス、予定表、Planner と To Do のタスク、OneDrive のファイルなどです。SharePoint Framework (SPFx) ソリューションは Microsoft Graph を通じてこれらのデータにアクセスし、テナント管理者はそれを一度だけ許可する必要があります。
この仕組みはすべての SPFx ソリューションで共通です。ソリューション パッケージは必要なアクセス許可を宣言し、パッケージが アプリ カタログに展開されると、SharePoint はその宣言をアクセス許可の要求に変換します。要求は、管理者が承認または拒否するまで、SharePoint 管理センターの API アクセス ページで待機します。
この記事では、どの Vitextra 製品がどのような理由でアクセス許可を要求するのか、要求を承認する方法、後で要求を確認して取り消す方法、アクセス許可が不足しているときに Web パーツに何が表示されるかを説明します。Vitextra 製品をインストールする SharePoint 管理者とグローバル管理者、およびこのような要求を審査するセキュリティ担当者を対象としています。
📝 注
この記事で扱うのは、SPFx ソリューションの API アクセス要求のみです。パッケージ自体のインストールについては、KB10035. SharePoint Online に Vitextra 製品をインストールする方法で説明しています。
何が、なぜ要求されるのか
Vitextra 製品が要求するアクセス許可はすべて委任されたアクセス許可です。これらはサインインしているユーザーのコンテキストでのみ機能し、そのユーザーが Microsoft 365 で既に持っている範囲を超えるアクセスを Web パーツに与えることはありません。同僚を一覧表示する Web パーツには、ユーザーが Outlook や Teams で検索できるのとまったく同じ人物と属性が表示され、タスクを表示する Web パーツには、ページを開いたユーザーのタスクが表示されます。
次の表は、Microsoft Graph を使用する製品の現在のバージョンが宣言しているアクセス許可の一覧です。
| 製品 | API | アクセス許可 | 用途 |
|---|---|---|---|
| Employee Directory | Microsoft Graph | User.Read.All, Directory.Read.All, People.Read, Presence.Read.All, Calendars.Read | ユーザー プロファイル、部署、上司の読み取り、関連するユーザー、Teams のプレゼンス、空き時間インジケーターのための空き時間情報 |
| Employee Details | Microsoft Graph | User.Read.All, User.ReadWrite, People.Read.All, Presence.Read.All, Files.Read.All, Sites.Read.All, Calendars.Read.Shared | プロファイルの読み取り、ユーザー自身によるプロファイル フィールドの編集、関連するユーザー、プレゼンス、本人が最近作業したドキュメントとサイト (Microsoft Graph インサイト)、勤務時間と空き状況のための同僚の空き時間情報 |
| Organizational Chart | Microsoft Graph | User.Read.All, Directory.Read.All, Presence.Read.All | 上司属性からのレポート階層の構築、部署と役職、Teams のプレゼンス |
| Absence & Coverage | Microsoft Graph | User.Read.All | 申請、承認、代理のための従業員、その上司、直属の部下の解決 |
| My Tasks | Microsoft Graph | User.Read, User.ReadBasic.All, Tasks.ReadWrite | Planner、To Do、フラグ付きメールからのタスク、タスク作成者の名前 |
| My Tasks | Azure DevOps | user_impersonation | Azure DevOps ソースと Azure DevOps Query Web パーツ |
| Password Vault | Microsoft Graph | Files.ReadWrite.AppFolder | ユーザーの OneDrive のアプリケーション フォルダーへの暗号化された保管庫の保存 |
現在のサイトのみを対象とする製品 (Announcements Carousel、List Filter Online、QR Code Generator、Questions & Answers、Quick Poll、RSS Reader、Smart Search、Smart Tiles) は、API アクセス許可を要求しません。これらの製品については、API アクセス ページに何も表示されません。
📝 注
Tasks.ReadWrite や User.ReadWrite などのアクセス許可名は Microsoft Graph のスコープの名前であり、製品が実際に行う操作よりも広い範囲を表す場合があります。My Tasks はタスクを読み取るだけであり、Employee Details はサインインしているユーザーのプロファイル フィールドのみを書き込みます。各アクセス許可の詳細は、製品ごとの記事で説明しています: KB10235. Organizational Chart に必要な Microsoft Graph のアクセス許可、KB10303. My Tasks: 必要なアクセス許可、プライバシー、セキュリティ。
要求はどこから来るのか
アクセス許可の要求は、.sppkg パッケージがテナントのアプリ カタログに展開されたときに作成されます。要求は個々の Web パーツではなくパッケージに属するため、2 つの Web パーツを含むソリューションでも要求は 1 セットだけ表示され、オプション機能 (たとえば My Tasks の Azure DevOps ソース) でのみ必要なアクセス許可も、他のアクセス許可と一緒に要求されます。
ガバナンスの観点から重要な点が 2 つあります。
- 承認はテナント全体に適用されます。 SharePoint は、すべての SPFx ソリューションに使用する単一の Microsoft Entra ID アプリケーション、SharePoint Online Web Client Extensibility (以前の名称: SharePoint Online Client Extensibility Web Application Principal) に対してアクセス許可を付与します。Employee Directory のために User.Read.All が承認されると、同じ付与が Organizational Chart と、それを要求するテナント内の他のすべての SPFx ソリューションで使用されます。これは SharePoint Framework の仕組みであり、Vitextra の設計上の判断ではありません。
- 展開は承認に依存しません。 Vitextra 製品は、要求が保留中、あるいは拒否された状態でも、展開してサイトに追加し、ページに配置できます。不足しているアクセス許可に依存する機能だけが動作しません。
前提条件
- Vitextra パッケージがテナントのアプリ カタログにアップロードされ、展開されていること (アプリを有効にする)。
- SharePoint 管理者またはグローバル管理者のロールを持つアカウントでサインインしていること。サイト コレクションの管理者とアプリ カタログの所有者は、API アクセスを承認できません。
❗ 重要
API アクセス ページに表示されるのは、テナントのアプリ カタログに展開されたパッケージの要求です。Vitextra 製品をサイト コレクションのアプリ カタログから展開する場合は、先にパッケージをテナントのアプリ カタログに展開し、そこで要求を承認してください。承認されたアクセス許可はテナント全体に適用され、サイト コレクションのアプリ カタログにあるコピーでも使用できるようになります。
要求を承認する
1. Microsoft 365 管理センターを開き、SharePoint 管理センターに移動します。
2. 左側のナビゲーションで詳細設定を展開し、API アクセスを選択します。
3. 保留中の要求タブで、Vitextra パッケージの要求を見つけます。各行には、パッケージ名 (たとえば Vitextra Employee Directory)、API (Microsoft Graph または Azure DevOps)、アクセス許可が表示されます。
4. 要求を選択し、承認をクリックします。パネルの説明を読み、承認で確定します。
5. パッケージのすべての要求について繰り返します。別のソリューションのために既に承認されているアクセス許可は再び表示されません。SharePoint は既存の付与を再利用します。
6. 承認済みの要求タブに切り替え、パッケージのすべてのアクセス許可が一覧に含まれていることを確認します。
ユーザーに同意のプロンプトは表示されません。承認後は、テナント内のすべてのユーザーに対して Web パーツが動作します。付与は通常、数分以内に有効になります。Web パーツがアクセス許可の不足を報告し続ける場合は、ページを再読み込みするか、サインアウトして再度サインインし、新しいトークンを取得してください。
💡 ヒント
SharePoint Online 管理シェルを使用すると、要求をまとめて承認できます。Get-SPOTenantServicePrincipalPermissionRequests は保留中の要求を一覧表示し、Approve-SPOTenantServicePrincipalPermissionRequest -RequestId <id> はそのうちの 1 つを承認します。複数の Vitextra 製品を一度に展開するときに便利です。
アクセス許可の一部のみを承認する
一部の要求を承認し、他の要求を拒否することもできます。Web パーツは動作し続け、依存する機能だけが影響を受けます。
- Presence.Read.All を拒否した場合: Employee Directory、Employee Details、Organizational Chart は、Teams のプレゼンス インジケーターなしでユーザーを表示します。
- Calendars.Read / Calendars.Read.Shared を拒否した場合: 空き状況と勤務時間の情報は表示されません。
- Files.Read.All / Sites.Read.All を拒否した場合: Employee Details に最近のファイルとサイトは表示されません。
- user_impersonation (Azure DevOps) を拒否した場合: My Tasks の Azure DevOps ソースと Azure DevOps Query Web パーツは Azure DevOps にサインインできません。
製品の中核となるアクセス許可 (ユーザー中心の製品では User.Read.All、My Tasks では Tasks.ReadWrite、Password Vault では Files.ReadWrite.AppFolder) を拒否すると、Web パーツにデータが表示されなくなります。
アクセス許可がないときにユーザーに表示されるもの
| 症状 | 考えられる原因 |
|---|---|
| Web パーツに、アクセスが拒否された、権限が不足している、同意がないといったエラーが表示される | 中核となるアクセス許可が保留中または拒否されている |
| 従業員は一覧表示されるが、色付きのプレゼンス ドットが表示されない | Presence.Read.All が承認されていない |
| 組織図が空、または現在のユーザーだけが表示される | User.Read.All または Directory.Read.All が承認されていない |
| My Tasks に Planner、To Do、Outlook のタスクが表示されないが、SharePoint ソースは動作する | Tasks.ReadWrite が承認されていない |
| すべて動作していたが、更新後に 1 つの機能が動作しなくなった | 新しいバージョンが追加のアクセス許可を要求しており、まだ保留中である |
API アクセス ページを開き、保留中の要求タブと承認済みの要求タブを、この記事の冒頭の表と比較してください。
更新と新しいアクセス許可
パッケージの新しいバージョンをアップロードしても (KB10050. SharePoint Online で Vitextra SPFx ソリューションを更新する方法を参照)、以前に承認されたアクセス許可は承認されたままです。新しいバージョンが以前のバージョンにはなかったアクセス許可を宣言している場合、新しい要求が保留中の要求タブに表示されるため、同じ方法で承認する必要があります。Vitextra は、このような変更を製品のリリース ノートに記載しています。
アクセス許可の確認と取り消し
付与はすべての SPFx ソリューションで共有されるため、Vitextra 製品を削除しても、その製品が要求したアクセス許可は取り消されません。アクセス許可を取り消すには:
- API アクセスを開き、承認済みの要求タブに切り替えます。
- アクセス許可を選択し、削除をクリックします。
- 確定します。
❗ 重要
アクセス許可を削除する前に、テナント内の別のソリューションがそれに依存していないか確認してください。自社開発の SPFx Web パーツ、他のベンダーの製品、Microsoft 自身の事前承認済みのアクセス許可が同じタブに表示されます。別のソリューションが使用しているアクセス許可を削除すると、そのソリューションは直ちに動作しなくなります。
拒否した要求は後から承認できます。拒否された要求は、パッケージがアプリ カタログから削除されるまで保留中の要求タブに残ります。要求が消えてしまった場合は、アプリ カタログでパッケージを再展開すると、要求が再作成されます。
審査担当者向けのセキュリティに関する注意事項
- Microsoft Graph へのすべての呼び出しは、サインインしているユーザーのブラウザーから、そのユーザーに対して発行されたトークンを使用して行われます。Vitextra Web パーツには、アプリケーション (アプリ専用) のアクセス許可もサービス アカウントもありません。
- Microsoft Graph は、委任されたスコープの上にユーザー自身のアクセス許可を適用します。アドレス帳から非表示になっているユーザーや、People API を制限しているテナントは、Outlook と同じように Web パーツにも反映されます。
- ディレクトリ データ、タスク データ、ファイルが Vitextra に送信されることはありません。Vitextra のサービスへの要求は、技術的な識別子を使用したライセンスの確認と使用状況テレメトリのみです。KB10363. Vitextra 製品がデータを保存する場所: プライバシー、データ所在地、GDPRを参照してください。