はじめに

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 - フィルターで ユーザー ロール 条件を使用する場合のみロール フィルターが設定されている場合、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 と Microsoft 365 のディレクトリ、プロファイル、メールボックスのデータを読み取るだけです。これらのデータを変更せず、名前に Write を含むアクセス許可も要求しません。SharePoint ページへの Web パーツ設定の保存は、これらの Microsoft Graph アクセス許可とは別の処理です。

アプリケーションのアクセス許可ではなく委任されたアクセス許可

5 つのアクセス許可はすべて 委任された アクセス許可です。Microsoft Graph の呼び出しはすべて、サインインしているユーザーのブラウザーから、そのユーザーに発行されたトークンを使用して行われます。Web パーツには、アプリケーションのアクセス許可 (アプリのみ)、サービス アカウント、ディレクトリを読み取る独自のバックエンドはありません。

Microsoft Graph は、付与された委任スコープとサインインしているユーザーの権限を組み合わせてアクセスを判定します。そのため、ディレクトリに表示されるユーザーは Outlook や Teams と異なる場合があります。それらのアドレス帳のコピーではありません。

📝 注
アクセス許可は 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 EmployeesUser.Read.All (および Directory.Read.All)エラー アイコンと 申し訳ございません。問題が発生しました。ページを更新してやり直してください。 というメッセージに続いて、Microsoft Graph が返したエラー テキストが表示されます
Employee Directory (Entra ID)、New EmployeesDirectory.Read.Allロール フィルターが設定されている場合、Employee Directory (Entra ID) は警告を表示し、ロールへの所属を確実に判定できません。New Employees はエラーを表示します。
すべての 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 パーツは、読み込んだ一覧のコピーをブラウザーに保存し、次回のアクセス時に表示します。コピーが 24 時間より古くなるとバックグラウンドで更新され、更新 を選択した場合も新しい要求が送信されます。アクセス許可の取り消し後にこの要求が失敗しても、以前に読み込まれた空でない一覧がすでに表示されている場合は、一覧と元の更新日時が保持されます。警告 一覧を更新できませんでした。保存済みのコピーを表示しています。 が表示され、エラー テキストがある場合はその後に表示されます。一覧がエラー画面に置き換わることはありません。以前に読み込まれた空でない一覧がない状態で読み込みに失敗した場合は、エラー画面が表示されます。アクセス許可の変更をテストするときは、ブラウザーでサイトのデータを消去するか、プライベート ウィンドウを使用してください。

📝 注
プレゼンスと空き時間情報には、アクセス許可だけでは不十分です。プレゼンスの状態を持つには Microsoft Teams を使用している必要があり、空き時間情報を持つには Exchange Online メールボックスが必要です。空き時間情報のセクションの詳細については KB10317. Employee Directory: 現地時間、勤務時間、空き時間情報 を、クイック フィルターについては KB10214. Employee Directory のクイック フィルター: 自分の部署、自分のチーム、一緒に仕事をしている人、お気に入り を参照してください。

アクセス許可の承認

Employee Directory パッケージをテナントのアプリ カタログに展開すると、アクセス許可の要求が自動的に作成されます。グローバル管理者 が次の手順で承認します。

  1. SharePoint 管理センター を開きます。
  2. 左側のナビゲーションで 詳細設定 を展開し、API アクセス を選択します。
  3. 保留中の要求 タブで、Microsoft Graph に対する Vitextra Employee Directory パッケージの要求 (Directory.Read.All、User.Read.All、Presence.Read.All、Calendars.Read、People.Read) を見つけます。
  4. 各要求を選択し、承認 をクリックして確定します。

ユーザーに同意を求めるメッセージは表示されません。承認後は、テナント内のすべてのユーザーに対して Web パーツが動作します。承認から数分たっても Web パーツにエラーが表示される場合は、ページを再読み込みしてください。

💡 ヒント
PowerShell による承認、一部のみの承認、アクセス許可の取り消しを含む手順全体については、KB10360. SharePoint 管理センターで Vitextra ソリューションの Microsoft Graph API アクセス許可を承認する方法 の記事を参照してください。

アクセス許可の状態の確認

どのアクセス許可が有効になっているかを確認するには、SharePoint 管理センターで 詳細設定 › API アクセス を開きます。

  • 承認済みの要求 タブに、5 つの Microsoft Graph アクセス許可がすべて表示されている必要があります。付与はテナント全体に適用されるため、アクセス許可が最初に要求した別のパッケージの下に表示されている場合もあります。それで問題ありません。
  • 保留中の要求 タブにまだ表示されているアクセス許可は、まだ有効になっていません。それに依存する機能は、「アクセス許可がない場合にユーザーに表示される内容」に記載したとおりに動作します。

Employee Directory を更新しても、以前に承認したアクセス許可は承認されたままです。新しいバージョンが追加のアクセス許可を要求する場合、そのアクセス許可は 保留中の要求 タブに表示され、同じ方法で承認する必要があります。

セキュリティ レビューのための注意事項

セキュリティ レビューでは、通常、次の点が重要になります。

  • 5 つの Microsoft Graph アクセス許可はすべて委任された読み取り専用のアクセス許可であり、ディレクトリ、プロファイル、メールボックスのデータの変更は許可しません。
  • ディレクトリ データ、写真、プレゼンス、予定表の情報は、ユーザーのブラウザーが Microsoft Graph と SharePoint から直接取得し、Vitextra や第三者に送信されることはありません。
  • ユーザー プロファイル ソースは、ユーザー自身の権限で SharePoint 検索を通じてユーザーを読み取り、一覧そのものには Microsoft Graph のアクセス許可を必要としません。
  • お気に入り、キャッシュされた従業員の一覧、Teams 個人用アプリの既定の構成は、Microsoft Graph の外部に保存されます。具体的な保存場所と Web パーツが読み取るデータについては、KB10469. Employee Directory: 読み取るデータと、お気に入りと設定の保存場所 の記事で説明しています。
  • Vitextra サービスへの要求には、ライセンス確認、技術的な識別子を含む使用状況テレメトリ、および利用する場合は Teams 個人用アプリの既定の構成の保存が含まれます。詳細は KB10363. Vitextra 製品がデータを保存する場所: プライバシー、データ所在地、GDPR を参照してください。

💡 ヒント
ソリューションのインストールについては KB10035. SharePoint Online に Vitextra 製品をインストールする方法 を、ページへの Web パーツの追加については KB10309. Employee Directory Web パーツの追加と構成方法 を参照してください。

製品の詳細: https://vitextra.com/ja/products/employee-directory

質問と回答

この記事について質問すると、サポートチームから公式回答を受け取れます。

まだ質問はありません。最初の質問を投稿しましょう。

注目の記事

不在申請で勤務日が計算される仕組み

Vitextra Absence & Coverage が不在申請の勤務日を数える方法を説明します。勤務週、祝日、半日、日付付きの計算例、送信できない期間、設定を変更しても送信済みの申請が再計算されない理由を扱います。

76 2 分
Employee Directory と Employee Directory (Entra ID) の比較: どちらの Web パーツを選ぶべきか

Vitextra の 2 つのディレクトリ Web パーツ、Employee Directory (SharePoint 検索または Microsoft Graph) と Employee Directory (Entra ID) を、データ ソース、検索、絞り込みパネル、フィルター エディター、除外、アルファベット順ナビゲーション、スキル検索、エクスポートの観点で比較し、シナリオに合った Web パーツの選び方を説明します。

90 4 分
Vitextra のライセンス用に Microsoft 365 テナント ID を確認する方法

任意の Vitextra Web パーツのプロパティ ペインの About セクションから、Microsoft 365 テナントの一意の識別子 (テナント ID) を確認する方法を説明します。テナント ID は Vitextra 製品のライセンスを割り当てるために必要です。

101 1 分

共有