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

  • 更新

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

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

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

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

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

したがって、メール アカウントの構成中に、管理者以外のユーザーのメールアドレスを指定する必要があります。

例えば、我々はカレンダーのフルコントロール権を要求します。ユーザーがそれに同意すると、LMS365はユーザのカレンダーに対してその権限を持つことになります。

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

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

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

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

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

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

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

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

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

これは、次項にあるユーザーがMicrosoft 365で見ることが許可されている範囲を超えてデータを見ることは許可されないことを意味しています。

例えば、SharePoint の「Sites.Read.All (すべてのサイト コレクションに含まれるアイテムの読み取り)」は、SharePoint内でユーザーがアクセス権を持つSharePointデータのみ表示することを許可します。
データはあくまでもSharePointによって管理されているため、ユーザーはSharePoint上のすべてのサイトのすべてのデータを見ることは許可されません。

ユーザーインターフェース(SharePointが提供する画面または LMS365アプリが提供する画面)にかかわらず、ユーザーは SharePoint 内でアクセス権を持つデータのみにアクセスできます。

SharePointはMicrosoft 365のサインイン基盤によって管理されているため、お客様のMicrosoft365テナントにアクセス権を持つユーザー以外はデータにアクセスすることはできません。

LMS365アプリは、データの提供元が定義したアクセススコープを使用します。
次項では、LMS365 が使用する可能性のあるスコープを記載しています。

管理者の同意の権限

アプリケーションの許可

LMS365 管理センターのユーザーページでは、現在のコースカタログの各ユーザーの詳細情報を表示・管理します。

この詳細な情報を提供するために、LMS365は定期的にMicrosoft Graphをチェックし、そのデータをLMS365のアプリケーションと同期させています。

Microsoft Graph を読み込むために、LMS365 は次のアプリケーションの許可を使用します。

グループメンバーシップを読み取る(要求値=GroupMember.Read.All):
LMS365アプリが Azure Active Directory グループメンバーと Office 365 グループを展開できるようにし ます。これは、トレーニングにユーザーのグループを登録するために必要となります。

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

権限の委任

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

サインインとユーザープロファイルの読み取り(要求値=User.Read):
ユーザーがLMS365アプリにサインインできるようにします。またサインインしているユーザーのプロファイルとユーザーの基本会社情報をLMS365アプリが読み取ることを許可します。

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

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

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

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

 

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

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

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

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

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

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

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

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

 

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

委任された許可

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

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

ユーザーからのメールとして送信(要求値=Mail.Send):
LMS365アプリが、組織内のユーザーとしてメールを送信することを許可します。これに対する許可は、通知のためにメールアカウントの設定時に動的に要求されます。この許可は、単一のユーザーに要求され、管理者でない普通のユーザーによって受け入れられる必要があります。

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

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

Microsoft Graphを使用したLMS365データアクセスのMicrosoftの概要は、同社のドキュメントに記載されています。