Learn365 アプリが正しく動作するためには、ユーザーデータへのアクセスが必要です。
そのため、Learn365 アプリはこのデータへアクセスするための権限を要求します。
同意は、必要な同意のタイプに応じて、管理者または一般ユーザーによって行われます。
Learn365 アプリは、管理者の同意(Admin consent)と 動的ユーザーの同意(Dynamic user consent)を使用します。
-
管理者の同意(Admin consent)の場合、
Microsoft 365 のグローバル管理者は、アプリケーション権限および一連の委任された権限を、組織内のすべてのユーザーに代わって承認するよう求められます。このタイプの同意は、Learn365 のインストール時に要求され、実行できます。
管理者同意(Admin Consent)のアクセス許可一覧は、こちらで確認できます。 -
動的ユーザーの同意(Dynamic User Consent)の場合、
Microsoft 365 のグローバル管理者は、特定の 1人のユーザーに代わって一連の権限を承認するよう求められます。このタイプの同意は、通知用メールアカウントの設定時に動的に要求されます。したがって、メールアカウントの設定で、管理者ではないユーザーのメールアドレスを指定した場合に実行できます。
たとえば、「Calendar.FullControl」へのアクセス許可が要求され、ユーザーが承認すると Learn365 はそのユーザーのカレンダーに対してアクセス権限を持つことになります。
動的ユーザー同意(Dynamic User Consent)のアクセス許可一覧は、こちらで確認できます。
参考:
動的ユーザー同意(Dynamic User Consent)は、Microsoft Graph PowerShell を使って実行することもできます。これは、たとえば、組織のポリシーによってユーザー同意が無効化、または制限されている場合に役立ちます。また、セキュリティポリシーにより、特定のユーザー(アカウント)のみにユーザー同意の付与を許可している場合にも適用できます。
詳細については、こちらの Microsoft の公式ガイドをご参照ください。
Learn365 で使用されるアクセス許可には、「アプリケーション権限」と「委任された権限」の 2 つがあります。
- アプリケーション権限(Application permissions):ログインしているユーザーがいなくてもアプリが動作するための権限です。たとえば、バックグラウンドサービスとして処理を実行する場合に使われます。この権限に同意できるのは、Microsoft 365のグローバル管理者のみです。
- 委任された権限(Delegated permissions):アプリがサインインしているユーザーの代わりに動作するための権限です。アプリは、サインイン中のユーザーとして対象のリソースにアクセスする権限を持って動作します。この場合、アプリが要求する権限には、ユーザーまたは管理者の同意が必要です。
これらは、Zensai / EFI 社の従業員が、お客様のデータにアクセスすることを可能にするものではありません。
Learn365 アプリは、Microsoft 365 と同じ認証基盤を使用しています。そのため、お客様のデータは、多要素認証(MFA)を含む Microsoft 365 のセキュリティフレームワークによって保護されています。実際のサインイン画面は Microsoft によって提供・ホストされており、Learn365 からのサインインは Microsoft 365(Entra ID)のサインイン画面にリダイレクトされ、同一の認証基盤・フローで行われます。
言い換えると、ユーザーは Learn365 上でも、Office 365 で持っている既存のアクセス権に基づいてデータを利用できますが、Learn365 を通じて他のユーザーのデータにアクセスすることはできません。
つまり、このあと説明される権限(スコープ)の一覧があっても、Microsoft 365 で許可されている範囲を超えてデータを閲覧できるようになるわけではありません。
たとえば、SharePoint の「Sites.Read.All」の権限が付与されている場合でも、ユーザーは自分が SharePoint 上でアクセス権を持っているデータのみを閲覧できます。この権限によって SharePoint のすべてのサイトのデータが無条件に閲覧可能になるわけではなく、実際のデータアクセスは引き続き SharePoint 側のアクセス権限に基づいて制御されます。
ユーザーインターフェースに関係なく(SharePoint 画面または Learn365 アプリ画面のどちらでも)、ユーザーは SharePoint 内で自分に許可されているデータのみアクセスできます。SharePoint は Microsoft 365 のサインイン基盤によって管理されているため、お客様の Microsoft 365 テナント内でアクセス権を持つユーザー以外はデータにアクセスできません。
Learn365 アプリは、データ提供元が提供するアクセススコープ(権限)を使用しています。
次のセクションでは、Learn365 が使用する可能性のあるスコープ一覧を確認できます。
管理者の同意
アプリケーション権限
Learn365 管理センターの「ユーザー」ページでは、現在のコースカタログに含まれる各ユーザーの詳細情報を表示し、管理します。
このような詳細情報を提供するために、Learn365 は定期的に Microsoft Graph にアクセスし、そのデータを Learn365 アプリと同期しています。
Microsoft Graph からデータを読み取るために、Learn365 は以下の アプリケーション スコープ(アクセス許可)の権限を使用します。
-
すべてのグループメンバーシップを読み取る(要求値=GroupMember.Read.All)
Learn365 アプリが、Microsoft Entra ID のグループや Microsoft 365 グループのメンバーを展開(確認)できるようにします。これにより、ユーザーグループ単位でトレーニングに登録することが可能になります。
-
すべてのユーザーの完全なプロファイルの読み取り(要求値=User.Read.All)
Learn365 は、次の情報を同期します。:アカウント名、表示名、Eメール、部署、役職、オフィス、国、都市、マネージャー ID / Eメール
この権限により、Learn365 はユーザーの詳細情報を取得し、階層レポートの作成や、「ユーザー」 ページでの検索、フィルタリングが可能になります。 -
選択したサイトコレクションへのアクセス(要求値=Sites.Selected)
Learn365 管理者が、Learn365 管理センターからコースカタログ (コースの作成、編集、削除を含む) の管理、カタログへのユーザーの追加、トレーニングへの登録を行うことが可能になります。
委任された権限
-
すべてのユーザーの完全なプロファイルの読み取り(要求値=User.Read.All)
現在ログインしているユーザーの完全なプロフィール情報を、Learn365 アプリが読み取ることを許可します。
-
サインインとユーザープロファイルの読み取り(要求値=User.Read)
ユーザーが、顧客の Microsoft Entra ID を使って Learn365 にサインインできるようにします。また、サインインしているユーザーの基本的なプロフィール情報や会社情報をアプリが読み取れるようにします。
-
すべてのサイトコレクションのフルコントロール(要求値=Sites.FullControl.All)
テナントのプロビジョニング(初期設定)を大幅に効率化します。具体的には、グローバルアプリカタログを使用し Learn365 のアドインや SPFx を自動的にアップロードします。この権限により、Microsoft 365 のグローバル管理者は、Learn365 管理センター「すべてのカタログ」から、コースカタログと基盤となる SharePoint サイトコレクションの作成が可能になります。
※この権限が必要な理由は、「AllSites.FullControl 権限を使用したコースカタログとサイトコレクションの作成」で説明しています。 -
組織へのゲストユーザーの招待(要求値=User.Invite.All)
現在ログインしているユーザーに代わって、Learn365 アプリが外部ユーザーを組織に招待できるようにします。この権限により、カタログ管理者はゲストユーザーをコースカタログに招待することが可能になります。
注意!
ゲストユーザーの招待は、Microsoft 365 のグローバル管理者によって Microsoft Entra ID の外部コラボレーションが有効になっている場合にのみ、Learn365 アプリ内で使用できます。外部コラボレーション設定を構成するには、以下のガイドの手順に従ってください。
- Microsoft 公式ガイド:Microsoft Entra 外部 ID で B2B の外部コラボレーション設定を構成する
- Learn365 ヘルプセンター:SharePoint Online で Learn365 外部ユーザーのアクセス許可を設定する
※ SharePoint 全体と、そのサイト(Learn365を使っている場所)の両方で共有設定を有効にする必要があります。
AllSites.FullControl 権限を使用したコースカタログとサイトコレクションの作成
委任された権限「AllSites.FullControl」により、Microsoft 365 のグローバル管理者は、Learn365 管理センター「すべてのカタログ」>カタログ管理 から、Learn365 のコースカタログとそれに関連する SharePoint のサイトコレクションを作成できます。
SharePoint でサイトコレクションを作成するアプリケーションは、すべてのサイトコレクションに対して「フルコントロール」レベルの権限を持っている必要があります。この権限レベルにより、アプリケーションはサイトコレクション内のあらゆるオブジェクトに対して、新しいサイトの作成を含むすべての操作を実行できるようになります。
また、「フルコントロール」レベルの権限は、機能の有効化/無効化、権限の管理、サイトコレクションの設定にアクセスするためにも必要です。
この権限レベルがない場合、アプリケーションはサイトコレクションの作成時にエラーや制限に直面する可能性があります。たとえば、アプリケーションは新しいサイトコレクションに対して、テンプレートの指定 / クォータ(容量制限)の設定 / 所有者の指定を行えない可能性があります。
すべてのサイトコレクションに対して「フルコントロール」レベルの権限を持つことで、アプリケーションは問題なくサイトコレクションを作成できるようになります。
現在、SharePoint でサイトコレクションを作成できる権限は、「フルコントロール」のみです。「投稿 / 読み取り / 表示のみ」などのより低い権限レベルでは、サイトコレクションを作成することはできません。
そのため、Learn365 にサイトコレクションを作成させるには、すべてのサイトコレクションに対して「フルコントロール」レベルの権限を割り当てる必要があります。
Microsoft の公式ガイドでは、委任されたアクセスについて次のように説明されています。
委任されたアクセスについて最も重要なのは、クライアント アプリとサインインしているユーザーの両方が適切に承認される必要があることです。 スコープの付与では不十分です。 クライアント アプリに適切なスコープがない、またはユーザーがリソースの読み取りまたは変更のために十分な権限を持っていない場合、呼び出し(API呼び出し)が失敗します。
動的ユーザーの同意
委任された権限
-
SMTP AUTH を使用してメールボックスから電子メールを送信します。(要求値=SMTP.Send)
この権限により、Learn365 アプリは通知メールの送信が可能になります。この権限は、通知用メールアカウントの設定時に動的に要求されます。また、この権限は特定の 1人のユーザーに対して要求されるもので、一般ユーザー(管理者ではないユーザー)が承認します。
-
Exchange Web サービスを使用してサインインユーザーとしてメールボックスにアクセスする(要求値=EWS.AccessAsUser.All)
この権限により、Learn365 アプリは会議室リストや会議室(リソース)の情報を読み取ることが可能になります。この権限は、通知用メールアカウントの設定時に動的に要求されます。また、この権限は特定の1人のユーザーに対して要求されるもので、一般ユーザー(管理者ではないユーザー)が承認します。
-
任意のユーザーからのメールを送信(要求値=Mail.Send)
この権限により、Learn365 アプリは通知メールを送信できるようになります。この権限は、通知用メールアカウントの設定時に動的に要求されます。また、この権限は特定の1人のユーザーに対して要求されるもので、一般ユーザー(管理者ではないユーザー)が承認します。
-
ユーザーのオンライン会議の読み取りと作成(要求値=OnlineMeetings.ReadWrite)
この権限により、Learn365 アプリはオンライン会議イベントの作成・閲覧・更新・削除が可能になります。この権限は、通知用メールアカウントの設定時に動的に要求されます。また、この権限は特定の1人のユーザーに対して要求されるもので、一般ユーザー(管理者ではないユーザー)が承認します。
-
すべてのメールボックスにあるカレンダーの読み取りと書き込み(要求値=Calendars.ReadWrite)
この権限により、Learn365 アプリは接続されているユーザーのカレンダー上で、トレーニングイベントの作成・閲覧・更新・削除が可能になります。この権限は、通知用メールアカウントの設定時に動的に要求されます。また、この権限は特定の1人のユーザーに対して要求されるもので、一般ユーザー(管理者ではないユーザー)が承認します。
Microsoft Graph を使用した Learn365 のデータアクセスの概要については、Microsoft の公式ドキュメントで確認できます。
Learn365 DA のAPI登録
Learn365 Teams DA API は、Microsoft Teams や Copilot 環境内の Learn365 宣言型エージェント(AI アシスタント)が使用する、委任されたAPI(`access_as_user` 権限)を公開するための Microsoft Entra ID(旧称:Azure Active Directory)上のアプリ登録です。
この登録を行うことで、エージェントはサインインしているユーザーに代わってバックエンドのシステムを呼び出し、Teams の画面上にアダプティブカードで情報を表示したり、トレーニングに関する分析データを生成できるようになります。
ユーザーが初めて Learn365 のTeams 向けCopilot機能(エージェント機能)を起動した際、まだ権限が許可されていなければ、同意を求めるポップアップ画面が表示されます。
補足:
- 宣言型エージェント(Declarative Agent): Copilot の機能を特定のシステム(ここでは Learn365)専用にカスタマイズした AI アシスタントのことです。
- 委任されたAPI / `access_as_user`:現在サインインしているユーザーと同じ権限でシステムを動かす仕組みです。AI が勝手に管理者向けのデータにアクセスするようなことはなく、サインインしているユーザーがアクセス可能なデータだけを安全に扱います。
- バックエンド: ユーザーの目には見えない、Learn365 のデータが保管されている裏側のシステムのことです。
- アダプティブカード:Teams のチャット内に表示される、ボタンや画像などが配置されたパネル(カード)のことです。