はじめに
Vitextra Employee Directory ソリューションは、独自の従業員データベースを持ちません。ユーザー、プロファイル属性、写真、上司、Teams のプレゼンス、空き時間情報は、実行時に Microsoft Graph API を通じて Microsoft 365 から読み取られます。そのため、ソリューション パッケージは 5 つの Microsoft Graph アクセス許可を要求し、テナント管理者がこれを一度だけ承認します。
この記事では、これらのアクセス許可の一覧、それぞれの用途と必要とする Web パーツ、アクセス許可が承認されていない場合にユーザーに表示される内容を正確に説明し、アクセス許可の承認方法と状態の確認方法を示します。SharePoint と Microsoft 365 の管理者、および展開前に製品を評価するセキュリティ レビュー担当者を対象としています。
アクセス許可
Vitextra Employee Directory パッケージには、Employee Directory、Employee Directory (Entra ID)、New Employees の 3 つの Web パーツが含まれており、そのすべてに対して 1 組のアクセス許可を要求します。5 つはいずれも Microsoft Graph の委任されたアクセス許可です。
| アクセス許可 | 用途 | 必要とする Web パーツ | 承認されていない場合 |
|---|---|---|---|
Directory.Read.All | フィルター エディターの ユーザ役割 条件のために、Microsoft Entra ディレクトリ ロールのメンバーを読み取ります。User.Read.All とともに、ユーザー アカウントの読み取りにも使用できます | Employee Directory (Entra ID)、New Employees — フィルターで ユーザ役割 条件を使用する場合のみ | 選択したロールを誰も持っていないものとして条件が動作します。エラーは表示されません |
User.Read.All | ユーザー アカウントとそのプロファイル属性の読み取りと検索、ユーザーの上司と直属の部下、サインインしているユーザー自身のチーム、従業員の写真 | 3 つの Web パーツすべて。ユーザー プロファイル ソースを使用する Employee Directory Web パーツでは、詳細ウィンドウとクイック フィルターのみ | ユーザーの一覧を読み込めず、エラーが表示されます (後述を参照) |
Presence.Read.All | カード上の Microsoft Teams プレゼンス インジケーター、状態 列、詳細ウィンドウの 不在 メッセージ | 3 つの Web パーツすべて | ユーザーはプレゼンスなしで表示され、状態 列には オフライン と表示されます |
Calendars.Read | ユーザーとサインインしているユーザーの今日の空き時間情報、およびそのユーザーのタイム ゾーンと勤務時間 | Employee Directory、Employee Directory (Entra ID) — 詳細ウィンドウ | 現地時間、勤務時間、使用可能/不可 のセクションが表示されません |
People.Read | サインインしているユーザーが最もよく一緒に仕事をしている人の一覧 | Employee Directory、Employee Directory (Entra ID) — 一緒に仕事をしている人 クイック フィルター | 一緒に仕事をしている人 タブが表示されません |
📝 注
Directory.Read.All と User.Read.All は重複しています。ユーザー アカウントの読み取りには、Microsoft Graph はどちらのアクセス許可も受け付けます。そのため、User.Read.All の行に記載したエラーは、どちらも承認されていない場合に発生します。これは展開直後、5 つの要求がすべて保留中のときの通常の状態です。パッケージが要求するとおり、両方を承認してください。
Employee Directory はデータを 読み取る だけです。Microsoft Entra ID、Exchange Online、Teams、SharePoint で何かを作成、変更、削除することはなく、名前に Write を含むアクセス許可も要求しません。
アプリケーションのアクセス許可ではなく委任されたアクセス許可
5 つのアクセス許可はすべて 委任された アクセス許可です。Microsoft Graph の呼び出しはすべて、サインインしているユーザーのブラウザーから、そのユーザーに発行されたトークンを使用して行われます。Web パーツには、アプリケーションのアクセス許可 (アプリのみ)、サービス アカウント、ディレクトリを読み取る独自のバックエンドはありません。
ページを閲覧するユーザーにとって、これは次の単純なルールを意味します。ユーザーが Employee Directory で目にする情報は、そのユーザーが Microsoft 365 でもともと参照できる範囲を超えることはありません。Microsoft Graph は委任されたスコープに加えてユーザー自身の権限を適用するため、Web パーツはディレクトリ、プレゼンス、空き時間情報をより使いやすい形で表示するだけです。また、Web パーツはゲスト アカウントを一覧から除外します。
📝 注
アクセス許可は Employee Directory パッケージ自体に付与されるわけではありません。SharePoint は、テナント内のすべての SPFx ソリューションに使用する単一の Microsoft Entra ID アプリケーション、SharePoint Online Web Client Extensibility (以前の名称: SharePoint Online Client Extensibility Web Application Principal) にアクセス許可を付与します。アクセス許可が別のソリューション (たとえば Vitextra Organizational Chart) のためにすでに承認されている場合は同じ付与が再利用され、要求が再び保留中として表示されることはありません。Web パーツを Microsoft Teams で実行する場合も、同じ承認が適用されます。
ユーザー プロファイル ソースと SharePoint 検索
Employee Directory Web パーツは、設定で選択する 2 つのソースからユーザーを読み取ることができます。
- Entra ID (Azure AD) — 一覧、検索、ページングは Microsoft Graph を通じて行われ、上記のアクセス許可に依存します。
- ユーザー プロファイル — 一覧、検索、絞り込み、並べ替えは、Microsoft Graph ではなく SharePoint 検索 (SharePoint 検索サービスのユーザー結果) から取得されます。これらはユーザー自身の SharePoint 検索の権限で、通常のセキュリティ トリミングを伴って動作し、Microsoft Graph のアクセス許可を必要としません。詳細ウィンドウの 最近使ったドキュメント セクションも SharePoint 検索を使用します。
ユーザー プロファイル ソースを使用している場合でも、Web パーツの一部は引き続き Microsoft Graph を呼び出します。写真、プレゼンスと 不在 メッセージ、詳細ウィンドウの 上司 と 部下 のセクション、現地時間、勤務時間、使用可能/不可 のセクション、および 自分のチーム と 一緒に仕事をしている人 のクイック フィルターです。これらは Entra ID (Azure AD) モードと同じアクセス許可に依存します。
Employee Directory (Entra ID) Web パーツと New Employees Web パーツは、常に Microsoft Graph を使用します。
💡 ヒント
2 つのディレクトリ Web パーツとそのソースの違いについては、KB10310. Employee Directory と Employee Directory (Entra ID) の比較: どちらの Web パーツを選ぶべきか の記事を参照してください。
アクセス許可がない場合にユーザーに表示される内容
Web パーツは、省略可能なアクセス許可が不足している場合に、それに依存する機能だけが無効になるように設計されています。現在のバージョンでの正確な動作は次のとおりです。
| Web パーツ / モード | 不足しているアクセス許可 | ユーザーに表示される内容 |
|---|---|---|
| Employee Directory (Entra ID) | User.Read.All (および Directory.Read.All) | 一覧の代わりに、エラー アイコンと Microsoft Graph が返したエラー テキストが表示されます。テキストがない場合は 申し訳ございません。問題が発生しました。ページを更新してやり直してください。 というメッセージが表示されます |
| Employee Directory、Entra ID (Azure AD) ソース | User.Read.All (および Directory.Read.All) | 検索結果の代わりに同じエラーが表示されます |
| Employee Directory、ユーザー プロファイル ソース | User.Read.All (および Directory.Read.All) | 一覧、検索、絞り込みは引き続き動作します。詳細ウィンドウには 上司 と 部下 のセクションが表示されず、写真は Microsoft Graph ではなく SharePoint から取得されます |
| New Employees | User.Read.All (および Directory.Read.All) | エラー アイコンと 申し訳ございません。問題が発生しました。ページを更新してやり直してください。 というメッセージに続いて、Microsoft Graph が返したエラー テキストが表示されます |
| Employee Directory (Entra ID)、New Employees | Directory.Read.All | 次を含む を使用した ユーザ役割 条件には誰も一致せず、が次の値を含まない を使用した条件には全員が一致します。エラーは表示されません |
| すべての Web パーツ | Presence.Read.All | カードにプレゼンス インジケーターが表示されず、状態 列には全員 オフライン と表示され、詳細ウィンドウに 不在 メッセージは表示されません |
| Employee Directory、Employee Directory (Entra ID) | Calendars.Read | 詳細ウィンドウの 現地時間、勤務時間、使用可能/不可 のセクションが表示されません。エラーは表示されません |
| Employee Directory、Employee Directory (Entra ID) | People.Read | クイック フィルター バーで 一緒に仕事をしている人 タブが非表示になります。その他のタブは引き続き動作します |
❗ 重要
Employee Directory (Entra ID) Web パーツは、読み込んだ一覧のコピーをブラウザーに保存し、次回のアクセス時にそれを表示します。ユーザーが Web パーツを開いた後にアクセス許可が取り消された場合、コピーが 24 時間より古くなるか、ユーザーが 更新 をクリックするまで、そのユーザーのブラウザーにはキャッシュされた一覧が表示され続け、その後にエラーが表示されます。アクセス許可の変更をテストするときは、ブラウザーでサイトのデータを消去するか、プライベート ウィンドウを使用してください。
📝 注
プレゼンスと空き時間情報には、アクセス許可だけでは不十分です。プレゼンスの状態を持つには Microsoft Teams を使用している必要があり、空き時間情報を持つには Exchange Online メールボックスが必要です。空き時間情報のセクションの詳細については KB10317. Employee Directory: 現地時間、勤務時間、空き時間情報 を、クイック フィルターについては KB10214. Employee Directory のクイック フィルター: 自分の部署、自分のチーム、一緒に仕事をしている人、お気に入り を参照してください。
アクセス許可の承認
Employee Directory パッケージをテナントのアプリ カタログに展開すると、アクセス許可の要求が自動的に作成されます。SharePoint 管理者 または グローバル管理者 が次の手順で承認します。
- SharePoint 管理センター を開きます。
- 左側のナビゲーションで 詳細設定 を展開し、API アクセス を選択します。
- 保留中の要求 タブで、Microsoft Graph に対する Vitextra Employee Directory パッケージの要求 (
Directory.Read.All、User.Read.All、Presence.Read.All、Calendars.Read、People.Read) を見つけます。 - 各要求を選択し、承認 をクリックして確定します。
ユーザーに同意を求めるメッセージは表示されません。承認後は、テナント内のすべてのユーザーに対して Web パーツが動作します。承認から数分たっても Web パーツにエラーが表示される場合は、ページを再読み込みしてください。
💡 ヒント
PowerShell による承認、一部のみの承認、アクセス許可の取り消しを含む手順全体については、KB10360. SharePoint 管理センターで Vitextra ソリューションの Microsoft Graph API アクセス許可を承認する方法 の記事を参照してください。
アクセス許可の状態の確認
どのアクセス許可が有効になっているかを確認するには、SharePoint 管理センターで 詳細設定 › API アクセス を開きます。
- 承認済みの要求 タブに、5 つの Microsoft Graph アクセス許可がすべて表示されている必要があります。付与はテナント全体に適用されるため、アクセス許可が最初に要求した別のパッケージの下に表示されている場合もあります。それで問題ありません。
- 保留中の要求 タブにまだ表示されているアクセス許可は、まだ有効になっていません。それに依存する機能は、「アクセス許可がない場合にユーザーに表示される内容」に記載したとおりに動作します。
Employee Directory を更新しても、以前に承認したアクセス許可は承認されたままです。新しいバージョンが追加のアクセス許可を要求する場合、そのアクセス許可は 保留中の要求 タブに表示され、同じ方法で承認する必要があります。
セキュリティ レビューのための注意事項
セキュリティ レビューでは、通常、次の点が重要になります。
- 5 つのアクセス許可はすべて委任された読み取り専用のアクセス許可です。Employee Directory が Microsoft 365 に書き込むことはありません。
- ディレクトリ データ、写真、プレゼンス、予定表の情報は、ユーザーのブラウザーが Microsoft Graph と SharePoint から直接取得し、Vitextra や第三者に送信されることはありません。
- ユーザー プロファイル ソースは、ユーザー自身の権限で SharePoint 検索を通じてユーザーを読み取り、一覧そのものには Microsoft Graph のアクセス許可を必要としません。
- お気に入り、キャッシュされた従業員の一覧、Teams 個人用アプリの既定の構成は、Microsoft Graph の外部に保存されます。具体的な保存場所と Web パーツが読み取るデータについては、KB10469. Employee Directory: 読み取るデータと、お気に入りと設定の保存場所 の記事で説明しています。
- Vitextra のサービスへの要求は、ライセンスの確認と、技術的な識別子を含む使用状況テレメトリのみです。KB10363. Vitextra 製品がデータを保存する場所: プライバシー、データ所在地、GDPR を参照してください。
💡 ヒント
ソリューションのインストールについては KB10035. SharePoint Online に Vitextra 製品をインストールする方法 を、ページへの Web パーツの追加については KB10309. Employee Directory Web パーツの追加と構成方法 を参照してください。