データアクセス(アクセス許可と委任)

  • 更新

Learn365 アプリが正しく動作するためには、ユーザーデータへのアクセスが必要です。
Learn365 アプリは、このデータにアクセスするための許可を要求します。

同意は、必要な同意の種類に応じて、管理者または管理者以外のユーザーによって付与されます。

Learn365 アプリは管理者の同意と動的なユーザーの同意を使用しています。

管理者の同意Microsoft 365 グローバル管理者は、組織内のすべてのユーザーに代わって、アプリケーションのアクセス許可と権限の委譲を承諾するよう求められます。
この同意は、Learn365 のインストール中に利用できます。管理者の同意の権限については、この記事の「管理者の同意の権限」でご説明しています。

動的ユーザーの同意:Microsoft 365 グローバル管理者は、1 人のユーザーに代わって一連のアクセス許可を承諾するよう求められます。

これらの許可は、通知用メール アカウントの構成中に動的に要求されます。

したがって、通知用のメール アカウントの設定では、admin 以外のユーザーのメールアドレスを指定する必要があります。

例えば、我々はカレンダーのフルコントロール権を要求します。ユーザーがそれに同意すると、このユーザのカレンダーに対する権限が Learn365 に付与されます。

動的ユーザーの同意の権限については、この記事の「動的ユーザーの同意の権限」でご説明しています。

動的ユーザの同意は、Microsoft Graph PowerShell を使用して実行できます。

これは例えば、組織のポリシーによってユーザ同意が無効または制限されている場合に役立ちます。
また、組織のセキュリティポリシーによって、排他的に割り当てられたユーザー (アカウント) によるユーザーの同意を許可する場合にも適用できます。
詳細については、こちらの Microsoft のドキュメントを参照してください。

 

Learn365 で使用される権限は、アプリケーションの許可と委任の権限です。

  • アプリケーションの許可は、バックグラウンドサービスとして実行するなど、現在サインインしているユーザーがいなくてもアプリが実行するために使用されます。アプリケーションの許可に同意できるのは、Microsoft 365 グローバル管理者のみです。

  • アクセス許可の委任は、サインインしているユーザーで実行するためにアプリによって使用さ れます。アプリは、対象のリソースを呼び出すときに、サインインしているユーザーとして動作する権限を委任されます。この場合、アプリが要求する権限に同意するために、ユーザーまたは管理者の同意のいずれかが必要です。

データアクセスは、ELEARNINGFORCE社の従業員が、お客様のデータにアクセスすることを可能にするものではありません。

Learn365 アプリは、Microsoft 365で使用されているのと同じ認証基盤を使用しています。
お客様のデータは、多要素認証を含む Microsoft 365 セキュリティフレームワークによって保護されます。
実際のサインイン画面は、Microsoft によって提供され、管理されています。
Learn365 のサイン イン プロセスは、Microsoft 365 にサイン インするときと同じサイン イン画面が表示され、同じ手順で進みます。

つまり、ユーザーは Office 365 の既存のアクセス権に基づき Learn365 内のデータにアクセスし、Learn365 を通じて別のユーザーのデータにアクセスすることはできません。

これは、次のセクションでリストされたスコープでは、ユーザーは Microsoft 365で閲覧が許可されている以上のデータを閲覧することはできないことを意味します。

例えば、SharePoint の「Sites.Read.All (すべてのサイト コレクションに含まれるアイテムの読み取り)」は、SharePoint 内でユーザーがアクセス権を持つ 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 アプリが Azure Active Directory グループメンバーと Office 365 グループを展開できるようにし ます。これは、トレーニングにユーザーのグループを登録するために必要となります。

  • すべてのユーザーの完全なプロファイルの読み取り(要求値=User.Read.All): 
    Learn365 は、アカウント名、表示名、Eメール、部署、役職、オフィス、国、都市、マネージャーID/Eメールを同期します。
    この権限により、Learn365 アプリは完全なユーザープロファイルを読み取り、階層レポートを構築するためにユーザーのマネージャーを定義し、ユーザー ページでユーザー データの検索とフィルタリングを行います。

 

権限の委任

  • すべてのユーザーの完全なプロファイルの読み取り(要求値=User.Read.All):
    Learn365 アプリが、現在ログインしているユーザーの完全なプロファイルを読み取ることを許可します。

  • サインインとユーザープロファイルの読み取り(要求値=User.Read):
    ユーザーは、お客様の Azure Active Directory を使用して Learn365 アプリケーションにサインインできます。また、サインインしているユーザーのプロファイルとユーザーの基本的な会社情報を Learn365 アプリが読み取ることを許可します。

  • すべてのサイトコレクションのフルコントロール(要求値=AllSites.FullControl):
    テナントのプロビジョニングを大幅に改善することができます。グローバル アプリ カタログは、Learn365 テナントプロビジョニング時に SPFX と Learn365 アドインのアップロードを自動化するために使用されます。この権限により、Microsoft 365 グローバル管理者は、Learn365 管理センターのグローバル設定から、Learn365 のコースカタログと基盤となる SharePoint サイトコレクションを作成することができます。
    この権限が要求される重要な理由については、こちらのセクションを参照してください。

  • 組織へのゲストユーザーの招待(要求値=User.Invite.All):
    Learn365 アプリが サインインしているユーザーの代わりに、組織にゲスト ユーザーを招待することを許可します。コース カタログ管理者がゲストユーザーをコースカタログに招待するために必要となります。

重要!これは、Microsoft 365 グローバル管理者によって Microsoft Entra ID(Azure Active Directory) の外部コラボレーションが有効になっている場合にのみ、Learn365 アプリケーション内で機能します。
外部コラボレーションの設定については以下をご参照ください。

SharePoint テナントの外部共有設定とサイトコレクションの外部共有設定は、Learn365 カタログをホストしているサイトコレクションで有効になります。

 

すべてのサイトコレクションのフル コントロール権限 (AllSites.FullControl) でコースカタログおよびサイトコレクションを作成する

すべてのサイトコレクションのフルコントロールを委任された権限を持つことにより、Microsoft 365 グローバル 管理者は、Learn365 管理センターのグローバル設定領域から Learn365 コースカタログと基になるSharePointサイトコレクションを作成できます。

SharePoint でサイトコレクションを作成するアプリケーションには、すべてのサイトコレクションに対して 「フルコントロール」の アクセス許可レベルが必要です。このアクセス許可レベルを使用すると、アプリケーションは、新しいサイトの作成など、サイトコレクション内のあらゆるオブジェクトに対してあらゆるアクションを実行できます。

「フルコントロール」のアクセス許可レベルは、機能の有効化/無効化、アクセス許可の管理、サイトコレクションの設定を行うためにも必要となります。

このアクセス許可レベルがなければ、サイトコレクションの作成時にエラーや 制限が発生することになります。

例えば、アプリケーションは新しいサイトコレクションのテンプレート、割り当て、所有者を指定できないことがあります。したがって、すべてのサイト コレクションに「フル コントロール」のアクセス許可レベルを持つことで、アプリケーションが問題なくサイト コレクションを作成できることが確実となります。

現在、SharePoint でサイトコレクションを作成できるのは「フルコントロール」のアクセス許可レベルのみです。「投稿」「閲覧」「閲覧のみ」などの低いアクセス許可レベルでは、サイトコレクションを作成することはできません。Learn365 がサイトコレクションを作成するには、すべてのサイトコレクションに対して「フルコントロール」のアクセス許可レベルが割り当てられている必要があります。

Microsoft のドキュメント「委任されたアクセスについて」では、次のように説明されています。

委任されたアクセスについて最も重要なのは、クライアント アプリとサインインしているユーザーの両方が適切に承認される必要があることです。 スコープの付与では不十分です。 クライアント アプリに適切なスコープがない場合、またはユーザーがリソースの読み取りまたは変更のために十分な権限を持っていない場合、呼び出しは失敗します。

 

動的ユーザーの同意の権限

委任された許可

  • SMTP 認証を使用してユーザーとしてメールを送信する(要求値=SMTP.Send):
    Learn365 アプリが通知メールを送信することを許可します。これに対する許可は、通知用のメールアカウントの設定時に動的に要求されます。この許可は、1 人のユーザーに要求され、admin でない普通のユーザーによって受け入れられる必要があります。

  • Exchange Webサービスを介してサインインユーザーとしてメールボックスにアクセスする(要求値=EWS.AccessAsUser.All):
    Learn365 アプリが会議室リストと会議室を読み込むことを許可します。これに対する許可は、通知用のメールアカウントの設定時に動的に要求されます。この許可は、1 人のユーザーに要求され、admin でない普通のユーザーによって受け入れられる必要があります。

  • ユーザーからのメールとして送信(要求値=Mail.Send):
    Learn365 アプリが、メールを送信することを許可します。これに対する許可は、通知用のメールアカウントの設定時に動的に要求されます。この許可は、1 人のユーザーに要求され、admin でない普通のユーザーによって受け入れられる必要があります。

  • オンライン会議の読み取りおよび作成(要求値=OnlineMeetings.ReadWrite):
    Learn365 アプリがオンライン会議イベントを作成、読み取り、更新、および削除することを許可します。これに対する許可は、通知用のメールアカウントの設定時に動的に要求されます。この許可は、1 人のユーザーに要求され、admin でない普通のユーザーによって受け入れられる必要があります。

  • ユーザーのカレンダーへのフルアクセス(要求値=Calendars.ReadWrite):
    Learn365 アプリが接続されたユーザーのカレンダーにトレーニングイベントを作成、読み取り、更新、削除することを許可します。これに対する許可は、通知用のメールアカウントの設定時に動的に要求されます。この許可は、1 人のユーザーに要求され、admin でない普通のユーザーによって受け入れられる必要があります。

Microsoft Graph を使用した Learn365 データアクセスに関する Microsoft の概要は、こちらの Microsoft のドキュメントを参照してください。