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