Moodle 5.3 日本語ドキュメント(第一次翻訳):ほぼすべてのページが日本語に翻訳されました。まだ第一次翻訳のため、不自然な表現や誤訳が残っている可能性があります。お気づきの点があれば、ページコメントでお知らせいただくか、直接編集してください。スクリーンショットの多くは、まだ英語版の画面のままです。以前のバージョンの日本語ドキュメントは、バージョンメニューからご覧いただけます。
Moodle 5.3 Japanese documentation (first-pass translation): almost all pages have now been translated into Japanese. As this is a first pass, some wording may read unnaturally or be mistranslated. If you notice anything, please leave a page comment or edit the page directly. Most screenshots still show the English interface. Japanese documentation for earlier versions is available from the version menu.

Microsoft 365

提供: MoodleDocs
移動先:案内、検索
注: OAuth 2認証(ユーザがMicrosoftアカウントでMoodleにログインできるようにします)およびOneDriveリポジトリは標準のMoodleに含まれており、追加のプラグインは必要ありません。Microsoft 365プラグインスイートは、これらに加えて、はるかに幅広い統合を提供します。


はじめに

Microsoft 365プラグインスイートは、MoodleをMicrosoft 365のサービスに接続し、教師および学生に、より充実したコラボレーション、アイデンティティおよびコンテンツの体験を提供します。

このスイートがMoodleコアに加えて提供するもの

Moodleコアには、基本的なMicrosoft 365ログイン(OAuth 2)およびシンプルなOneDriveリポジトリが含まれています。プラグインスイートは、これを大幅に拡張します。

  • Microsoft Entra IDからMoodleへのユーザの自動プロビジョニングおよび同期
  • 既存のMoodleユーザとEntra IDアカウントの自動および手動のマッチング
  • MoodleコースとMicrosoft Teamsの統合:チームの自動作成、メンバシップの同期、Teams Classes LTIのサポート
  • TeamsとMoodleの間の双方向のコース登録同期
  • Microsoft 365グループのメンバシップに基づくコーホートメンバシップ
  • Outlookとのカレンダー同期
  • OneNoteによる課題の提出およびフィードバック
  • School Data Sync(SDS)との統合
  • Moodleのコンテンツエディタから直接のTeams会議の作成

プラグイン

コアプラグイン

プラグイン コンポーネント 説明
Microsoft 365ローカルプラグイン local_office365 他のすべてのコアプラグインへの依存関係を宣言することだけを目的としたシェルプラグインです。このプラグインをインストールすると、他のすべてのコアプラグインの正しいバージョンが揃います。
OpenID Connect認証 auth_oidc 標準に準拠したOpenID Connect認証プラグインです。Microsoft Entra IDだけでなく、OIDC互換のあらゆるアイデンティティプロバイダで動作します。Microsoft Entra IDおよびlocal_o365と併用すると、Teams SSOやGraph APIのプロファイルフィールドマッピングなどの追加機能を利用できるようになります。
Microsoft 365統合 local_o365 コアのバックエンドプラグインです。Microsoft Graph APIとの通信を処理し、ユーザ同期、コース/Teams同期、カレンダー同期、コーホート同期、SDS統合およびMicrosoft 365管理ツールを動作させます。
Microsoftブロック block_microsoft アカウント接続、カレンダー同期のプレファレンス、TeamsおよびOneNoteへのリンクを提供する、ユーザ向けのブロックです。
OneDrive for Businessリポジトリ repository_office365 ユーザが、個人のOneDrive for BusinessおよびMoodleコースのSharePointドキュメントライブラリのファイルを閲覧、ダウンロードおよびアップロードできるようにします。
Microsoft 365 Teamsテーマ theme_boost_o365teams MoodleがMicrosoft Teamsのタブ内で開かれたときの表示に最適化された、Boostベースのテーマです。
Teams会議 tiny_teamsmeeting Microsoft Teamsのオンライン会議を作成し、そのリンクをMoodleのコンテンツに挿入するツールバーボタンを追加するTinyMCEエディタプラグインです。

オプションプラグイン

これら3つのプラグインは、課題にOneNoteのサポートを追加します。

プラグイン コンポーネント 説明
OneNoteサポートプラグイン local_onenote 下記の2つの課題プラグインの共有コードライブラリです。独自のユーザインタフェースはありません。
OneNote課題提出 assignsubmission_onenote 学生がOneNoteノートブックとして課題を提出できるようにします。
OneNote課題フィードバック assignfeedback_onenote 教師がOneNoteノートブック内で課題のフィードバックを提供できるようにします。

機能

認証およびシングルサインオン

auth_oidcプラグインは、標準に準拠したOpenID Connect認証プラグインです。Moodleのログインページにアイデンティティプロバイダのサインインボタンを追加します。ユーザがこのボタンをクリックし、設定されたアイデンティティプロバイダで認証すると、ログインした状態でMoodleに戻ります(認可コードフロー)。Microsoft Entra IDだけでなく、OIDC互換のあらゆるアイデンティティプロバイダで動作します。

Moodleのログインページのアイデンティティプロバイダのサインインボタン

任意のOIDCアイデンティティプロバイダと併用した場合、このプラグインは次の機能を提供します。

  • 認可コードフローによるシングルサインオン
  • 初回ログイン時のMoodleアカウントの自動作成
  • 標準のIDトークンのクレームからのユーザプロファイルフィールドのマッピング
  • ログインページのプロバイダ名およびアイコンの設定
  • Moodleのログインページをスキップするオプションの強制リダイレクト
  • サイレントログインモード(アイデンティティプロバイダがセッションベースのサイレント認証をサポートしている場合)
  • ユーザ名のパターンによるユーザ制限
  • シングルサインオフ(アイデンティティプロバイダがログアウトエンドポイントをサポートしている場合)

Microsoft Entra IDおよびlocal_o365プラグインと組み合わせて設定すると、次の追加機能を利用できるようになります。

  • Teams SSO:ユーザのアクティブなTeamsセッションを使用した、Microsoft Teams内のMoodleタブからのサイレントログイン
  • フィールドマッピングに使用できる、Microsoft Graph APIからの追加のプロファイルフィールド(IDトークンに含まれるもの以外)
  • フィールドマッピングに使用できる、SDSの教師/学生プロファイルフィールド(SDS同期が設定されている場合)

Entra IDからのユーザ同期

ユーザ同期機能(local_o365の一部)は、MoodleのユーザアカウントをMicrosoft Entra IDと一致した状態に保ちます。スケジュールタスクとして実行され、次のことができます。

  • まだMoodleアカウントを持っていないEntra IDユーザのMoodleアカウントを作成する
  • Entra IDで変更されたときに、Moodleのユーザ詳細(プロファイル画像およびOutlookのタイムゾーンを含む)を更新する
  • Entra IDでユーザが無効化または削除されたときに、Moodleアカウントを利用停止または削除する
  • 既存のMoodleアカウントをEntra IDユーザと照合してリンクする(ユーザ名またはメールアドレスによる)

コースおよびTeamsの統合

MoodleコースをMicrosoft Teamsに接続できます。有効にすると、設定された各コースに対してグループおよびチームが作成され、Moodleの登録と同期された状態に保たれます。教師はチームの所有者になり、学生はチームのメンバになります。

教育機関向けライセンスを持つテナントでは、クラスチームが作成されます。これによりTeams Classes LTI機能が有効になり、チームを外部ツール(mod_lti活動)としてMoodleのコースページに直接埋め込むことができます。

Microsoft Teamsのコースチーム内のMoodleタブ

双方向の同期

デフォルトでは、登録はMoodleからTeamsに反映されます。この統合は、次の方向もサポートしています。

  • Teams → Moodle:チームの所有者/メンバの変更がMoodleの登録を更新します。
  • 双方向:どちらかのシステムでの変更がもう一方に反映されます。

Teamsからのコースリクエスト

コースリクエストのケイパビリティを持つユーザは、(Microsoftブロックからアクセスできる)「Teamsからコースをリクエストする」ページを使用して、選択したチームの所有者およびメンバがあらかじめ設定された新しいMoodleコースをリクエストできます。

Microsoft 365グループとのコーホート同期

Moodleのシステムコーホートのメンバシップを、Microsoft 365グループのメンバシップに基づいて自動的に決定できます。管理者はMoodleのコーホートをMicrosoft 365グループにマッピングし、スケジュールタスクがコーホートを一致した状態に保ちます。

カレンダー同期

ユーザは、Moodleのイベント(サイトイベント、コースイベント、課題の提出期限および個人のカレンダーエントリ)をOutlookのカレンダーに同期でき、その逆も可能です。

OneDrive for Business

repository_office365プラグインを使用すると、ユーザはMoodleのファイルピッカから、個人のOneDrive for BusinessおよびコースのSharePointドキュメントライブラリにアクセスできます。ファイルをMoodleにインポートすることも、OneDriveにアップロードすることもできます。

OneNoteの課題統合

学生はOneNoteノートブックとして課題を提出でき、教師はノートブック内でフィードバックを提供できます。これには、3つのオプションのOneNoteプラグインが必要です。

コンテンツエディタでのTeams会議

tiny_teamsmeetingプラグインは、TinyMCEエディタのツールバーに「Teams会議」ボタンを追加します。ユーザはエディタ内から新しいTeamsオンライン会議を作成し、そのリンクをコースページ、フォーラム投稿、課題の説明など、Moodleのあらゆるコンテンツに挿入できます。

TinyMCEツールバーの「Teams会議」ボタン

School Data Sync(SDS)

Microsoft School Data Syncで定義されたクラスからMoodleコースを作成し、SDSの名簿から登録を同期できます。双方向の同期も利用できるため、Moodleの登録の変更をSDSに反映させることもできます。

マルチテナントのサポート

Microsoft 365テナントを追加できます。これにより、パートナー組織のユーザが自分のMicrosoft 365アカウントを使用してログインし、統合機能にアクセスできるようになります。

Microsoftブロック

Moodleのダッシュボード上のMicrosoftブロック

block_microsoftプラグインは、次のリンクを含むユーザ向けのメニューを提供します。

  • Microsoft 365アカウントのリンクの接続/管理
  • カレンダー同期のプレファレンス
  • OneNoteノートブック
  • Teams
  • Microsoft 365/Moodleコントロールパネル

必要条件

  • Microsoft 365のサブスクリプション。
  • Azureのサブスクリプション(Microsoft Entra IDにアプリケーションを登録するため)。
  • Moodle 4.1以降。


セットアップ

注: 以下の手順は、新規の完全なインストールについて説明しています。既存のインストールをアップグレードする場合は、必要な移行手順についてリリースノートを参照してください。


プラグインのインストール

プラグインは次の場所から入手できます。

一般的なインストール手順については、プラグインのインストールを参照してください。

インストール後、プラグイン設定を保存するよう求められます。この時点では何も設定せずに保存してください。設定は以下の手順で完了します。

Azureアプリケーションの登録

この統合はMicrosoft Graph APIを使用するため、Azureテナントに登録されたアプリケーションが必要です。

オプションA:PowerShellスクリプト(推奨)

  1. サイト管理 > プラグイン > ローカルプラグイン > Microsoft 365統合に移動し、「セットアップ」タブを開きます。
  2. 「PowerShellスクリプトをダウンロードする」をクリックします。
  3. Moodleインストール内のlocal/o365/scripts/README.md(またはGitHub上のもの)の手順に従います。
注: PowerShellスクリプトには、PowerShell 7.5以降が必要です。Windows、macOSおよびLinuxで動作します。


オプションB:手動登録

アプリケーションを登録する

  1. Microsoft Azure管理ポータルにサインインします。
  2. App Registrationsに移動し、New registrationをクリックします。
  3. 名前(例:「Moodle Integration」)を入力します。
  4. 組織に適したSupported account typesを選択します。
  5. Redirect URIで、タイプWebを選択し、サイト管理 > プラグイン > 認証 > OpenID Connect > その他のオプションに表示されるリダイレクトURIを入力します。これはhttps://your.moodle.url/auth/oidc/の形式です。末尾のスラッシュは必須です。
  6. Registerをクリックします。
  7. 概要ページに表示されるApplication (client) IDを控えておきます。後で必要になります。

アプリケーションを設定する

インプリシットグラントを有効にする:

  1. 左側のメニューでAuthenticationに移動します。
  2. Implicit grant and hybrid flowsで、Access tokensおよびID tokensの両方にチェックを入れます。
  3. 変更を保存します。

クライアントシークレットを作成する:

  1. Certificates & secretsに移動し、New client secretをクリックします。
  2. 説明を入力して有効期間を選択し、Addをクリックします。
  3. Valueの下に表示される値をすぐにコピーします。この値は一度しか表示されません。

APIの公開(Teams同期の場合のみ必要):

  1. Expose an APIに移動し、Application ID URIの横にあるAddをクリックします。
  2. URIをapi://your.moodle.url/{ApplicationID}に設定します(your.moodle.urlをMoodleのwwwrootに、{ApplicationID}をアプリケーションIDに置き換えます)。
  3. Add a scopeをクリックし、次のように入力します。
    • Scope name:access_as_user
    • Who can consent?:Admins and users
    • Admin consent display name:Teams can access the user's profile
    • Admin consent description:Allows Teams to call the app's web APIs as the current user
    • User consent display name:Teams can access the user profile and make requests on the user's behalf
    • User consent description:Enable Teams to call this app's APIs with the same rights as the user
    • State:Enabled
  4. Add scopeをクリックして保存します。
  5. Authorized client applicationsで、次の各クライアントIDを追加し、上記のスコープを選択します。
    • 1fec8e78-bce4-4aaf-ab1b-5451cc387264(Teamsモバイル/デスクトップ)
    • 5e3ce6c0-2b1f-4285-8d4b-75ee78787346(Teams web)

APIのアクセス許可を追加する:

  1. API permissionsに移動し、Add a permission > Microsoft Graphをクリックします。
  2. 下の表に記載されているアクセス許可を追加します。
  3. Grant admin consent for [your organisation]をクリックします。

APIのアクセス許可

次のアクセス許可により、すべての機能が利用できるようになります。PowerShellスクリプトは、これらを自動的に追加します。上級の管理者は、使用しない機能のアクセス許可を省略してもかまいません。

タイプ アクセス許可 表示名 目的
アプリケーション AppCatalog.Read.All Read all app catalogs 接続されたチームにインストールするために、アップロードされたMoodle Teamsアプリを見つけます。
AppRoleAssignment.ReadWrite.All Manage app permission grants and app role assignments ユーザ同期中に、ユーザをAzureアプリに割り当てます。
Calendars.ReadWrite Read and write calendars in all mailboxes カレンダーイベントの同期。
Channel.ReadBasic.All Read the names and descriptions of all channels Moodleタブをインストールするために、一般チャネルを見つけます。
Directory.ReadWrite.All Read and write directory data 統合の設定、ユーザ同期およびコース同期。
Directory.Read.All Read directory data 統合の設定、ユーザ同期およびコース同期。
EduRoster.ReadWrite.All Read and write the organization's roster 教育機関テナントでのSDS同期およびコース同期。
Files.ReadWrite.All Read and write files in all site collections OneDriveのファイルへのアクセスおよびアップロード。
Group.ReadWrite.All Read and write all groups コース/Teamsの統合。
MailboxSettings.Read Read all user mailbox settings ユーザのOutlookのデフォルトタイムゾーンを同期します。
Member.Read.Hidden Read all hidden memberships SDS同期で学校のクラスのメンバを読み取ります。
Notes.ReadWrite.All Read and write all OneNote notebooks OneNoteの課題統合。
Sites.Read.All Read items in all site collections OneDrive for BusinessのURLを検出します。
Team.Create Create teams Moodleコースのチームを作成します。
TeamMember.ReadWrite.All Add and remove members from all teams Moodleのコース登録をチームのメンバシップに同期します。
TeamsAppInstallation.ReadWriteForTeam.All Manage Teams apps for all teams 接続されたチームにMoodleアプリをインストールします。
TeamSettings.ReadWrite.All Read and change all teams' settings コース/Teamsの統合。
TeamsTab.Create Create tabs in Microsoft Teams 接続されたチームにMoodleタブを作成します。
User.Read.All Read all users' full profiles SSOおよびユーザ情報の同期。
委任 Calendars.ReadWrite Have full access to user calendars カレンダーイベントの同期。
Files.ReadWrite.All Have full access to all files user can access OneDriveのファイルへのアクセスおよびアップロード。
Group.ReadWrite.All Read and write all groups コースグループの統合。
Notes.ReadWrite.All Read and write all OneNote notebooks that user can access OneNoteの課題統合。
User.Read.All Read all users' full profiles SSOおよびユーザ情報の同期。
Domain.Read.All Read domains マルチテナントの設定。
openid Sign users in Teams SSO。
offline_access Maintain access to data you have given it access to Teams SSO。
email View users' email address Teams SSO。
profile View users' basic profile Teams SSO。

auth_oidcを設定する

  1. サイト管理 > プラグイン > 認証に移動し、OpenID Connectプラグインを有効にします。
  2. サイト管理 > プラグイン > 認証 > OpenID Connect > IdPおよび認証に移動します。
  3. エンドポイントを確認します。ほとんどの設定では、デフォルトのままで動作します。
    • 「認可エンドポイント」:https://login.microsoftonline.com/common/oauth2/authorize
    • 「トークンエンドポイント」:https://login.microsoftonline.com/common/oauth2/token
    commonをテナント名またはGUIDに置き換えると、カスタマイズされたMicrosoftログインページが表示されます。マルチテナントの機能を使用している場合は、commonのままにしてください。
  4. 「その他のオプション」タブに移動し、「リダイレクトURI」を控えておきます。このURIの要件は次のとおりです。
    • HTTPSを使用する必要があります。
    • (IPアドレスではなく)完全修飾ドメイン名である必要があります。
    • ユーザがアクセスできる必要があります(インターネットに公開されている必要はありません)。
  5. AzureのApplication IDを「アプリケーションID」フィールドに入力します。
  6. AzureのクライアントシークレットのValueを「キー」フィールドに入力します。
  7. 変更を保存します。

local_o365を設定する

  1. サイト管理 > プラグイン > ローカルプラグイン > Microsoft 365統合に移動し、「セットアップ」タブを開きます。
  2. 各ステップを順番に進めます。
    1. 「接続方法」:「アプリケーションアクセス」(唯一サポートされている方法)を選択します。
    2. 「管理者の同意」:「管理者の同意を提供する」をクリックし、Microsoft 365管理者としてサインインして、アプリケーションのアクセス許可を付与します。
    3. 「Microsoft Entraテナント」:テナントのドメイン(例:contoso.onmicrosoft.com)を入力するか、「検出する」をクリックします。
    4. 「OneDrive for Business URL」:OneDriveのドメイン(例:contoso-my.sharepoint.com。ドメインのみで、プロトコルやスラッシュは含めません)を入力するか、「検出する」をクリックします。
    5. 「セットアップを検証する」:「更新」をクリックして、必要なすべてのアクセス許可が揃っていることを確認します。続行する前に、報告された問題を解決してください。

ユーザのMicrosoft 365への接続

Microsoft 365の機能を使用するには、MoodleユーザがMicrosoft 365アカウントに接続されている必要があります。これには2つの方法があります。

Microsoft 365ログインに切り替える(認証方法が変わります)

ユーザは、Microsoft 365の認証情報を使用してMoodleにログインします。以前のログイン方法は使用できなくなります。

  • Moodleアカウントを持っていない新規ユーザ:ログインページのアイデンティティプロバイダのリンクをクリックすると、Moodleアカウントが自動的に作成されます。
  • 既存ユーザ:
    1. Microsoftブロックが(たとえばダッシュボード上に)表示されていることを確認します。
    2. そのユーザとしてログインし、ブロック内の「Microsoft 365に接続する」をクリックします。
    3. コントロールパネルで「Microsoft 365ログイン」をクリックし、表示される指示に従います。
    4. フローを完了すると、このユーザのMicrosoft 365ログインが有効になります。

ログイン方法を変更せずにリンクする

ユーザは既存のMoodleログインを維持したまま、Microsoft 365の機能にもアクセスできるようになります。

    1. Microsoftブロックが表示されていることを確認します。
    2. そのユーザとしてログインし、ブロック内の「Microsoft 365に接続する」をクリックします。
    3. 「接続ステータス」ボックスの「接続するにはここをクリックしてください」をクリックします。
    4. リンクするMicrosoft 365アカウントでサインインします。
    5. 戻ると、「接続ステータス」に「アクティブ」と表示されます。ユーザのログイン方法は変わりません。

OpenID Connect認証

auth_oidcプラグインは、Microsoft Entra IDに限定されません。OpenID Connect標準を実装している任意のアイデンティティプロバイダ(たとえば、Google、Azure AD B2C、Keycloak、その他のOIDC準拠のIdP)に対してMoodleユーザを認証できます。

上記のセットアップのセクションの手順は、特にMicrosoft Entra IDの設定を対象としています。その他のアイデンティティプロバイダの場合は、IdPから取得した適切な認可エンドポイント、トークンエンドポイント、アプリケーションIDおよびクライアントシークレットに置き換え、Azure固有の手順はスキップしてください。

設定

すべての設定は、サイト管理 > プラグイン > 認証 > OpenID Connectにあります。

  • 「強制リダイレクト」:Moodleのログインページをスキップし、直接アイデンティティプロバイダに移動します。?noredirect=1で回避できます。
  • 「サイレントログインモード」:アイデンティティプロバイダの既存のアクティブなセッションを使用して、サイレントログインを試みます。
  • 「ドメインヒント」:Microsoftログインページにdomain_hintパラメータを渡して、特定のテナントを提示します。これはMicrosoft固有のパラメータであり、その他のアイデンティティプロバイダでは効果がありません。
  • 「ユーザ制限」:ユーザ名に対する1つ以上の正規表現パターンに一致するユーザにログインを制限します。
  • 「シングルサインオフ」/「ログアウトエンドポイント」:Moodleユーザがログアウトしたときに、設定されたエンドポイントへのログアウトリクエストを発行します。オプションのpost_logout_redirect_uriパラメータをサポートしています。ログアウトエンドポイントを公開している任意のIdPで動作します。Microsoft Entra IDを使用する場合は、このURLをAzureアプリのリダイレクトURIのリストにも追加する必要があります。
  • 「プロバイダ名」:Moodleのログインページのアイデンティティプロバイダのリンクに使用されるラベルです。
  • 「カスタムアイコン」:定義済みのアイコンを選択するか、独自のアイコンをアップロードします(推奨サイズ:35×35 px)。
  • 「デバッグメッセージを記録する」:トラブルシューティングのために認証エラーを記録します(サイト管理 > レポート > ログで「サイトエラー」で絞り込みます)。

ログインフロー

このプラグインは認可コードフローを使用します。

  1. ユーザが、Moodleのログインページのアイデンティティプロバイダのリンクをクリックします。
  2. ブラウザが、認証のためにアイデンティティプロバイダにリダイレクトします。
  3. 成功すると、ブラウザがMoodleにリダイレクトされ、ユーザがログインします。

ユーザ制限

  1. 1行に1つの正規表現パターンを入力します。
  2. いずれか1つのパターンに一致すれば、ユーザは許可されます。
  3. /は\/としてエスケープします。
  4. パターンが入力されていない場合は、認証できるすべてのユーザが受け入れられます。

Microsoft 365統合の設定

以下のすべての設定は、サイト管理 > プラグイン > ローカルプラグイン > Microsoft 365統合にあります。以下の各サブセクションには、プラグインのナビゲーション内の具体的なページを記載しています。

ユーザ同期

「ユーザ同期」ページ(サイト管理 > プラグイン > ローカルプラグイン > Microsoft 365統合 > ユーザ同期)。

Microsoft Entra IDとユーザを同期するスケジュールタスクは、デフォルトで1日に1回実行されます。頻度はスケジュールタスクで調整します。

オプション:

  • 「Microsoft Entra IDのユーザのアカウントをMoodleに作成する」:Moodleアカウントを持っていないEntra IDユーザの新しいMoodleアカウントを作成します。新しいアカウントはOpenID Connect認証を使用します。
  • 「Microsoft Entra IDのユーザのMoodle内のすべてのアカウントを更新する」:既存のアカウントの詳細を最新の状態に保ちます。
  • 「Microsoft Entra IDから削除されたときに、以前に同期したMoodle内のアカウントを利用停止する」:リンクされたEntra IDアカウントが削除されたときに、Moodleアカウントを利用停止します。
  • 「Microsoft Entra IDから削除されたときに、以前に同期したMoodle内のアカウントを削除する」:Moodleアカウントを完全に削除します。慎重に使用してください。
  • 「Microsoft Entra IDのユーザの利用停止されたアカウントを再度有効にする」:リンクされたEntra IDアカウントがアクティブな場合、Moodleアカウントの利用停止を解除します。
  • 「無効状態を同期する」:無効になっているEntra IDアカウントのMoodleアカウントを利用停止します。
  • 「既存のMoodleユーザをMicrosoft Entra IDの同名のアカウントと照合する」:ユーザ名によって既存のMoodleアカウントをEntra IDアカウントに接続します(大文字と小文字は区別されず、ドメインのサフィックスは無視されます)。たとえば、「BoB.SmiTh」は「bob.smith@contoso.onmicrosoft.com」に一致します。
  • 「照合されたユーザをMicrosoft 365(OpenID Connect)認証に切り替える」:照合が有効になっている場合に、照合されたユーザのログイン方法もOpenID Connectに切り替えます。
  • 「同期中にユーザをアプリケーションに割り当てる」:照合されたEntra IDユーザがAzureアプリケーションに割り当てられるようにします。
  • 「cronジョブでMicrosoft 365のプロファイル画像をMoodleに同期する」:同期を実行するたびに、Entra IDからMoodleのプロファイル画像を更新します。
  • 「ログイン時にMicrosoft 365のプロファイル画像をMoodleに同期する」:ログイン時にプロファイル画像を更新します。
  • 「cronジョブでOutlookのタイムゾーンをMoodleに同期する」:同期を実行するたびに、ユーザのOutlookのタイムゾーンのプレファレンスを同期します。
  • 「ログイン時にOutlookのタイムゾーンをMoodleに同期する」:ログイン時にタイムゾーンを同期します。
  • 「実行ごとに完全同期を実行する」:差分同期ではなく、完全な再同期を強制します。
  • 「同期中にMicrosoft Entra IDのユーザ名をMoodleのユーザ名ではなくMoodleのメールアドレスと照合する」:照合にメールアドレスを使用します。
  • 「ゲストユーザを同期する」:ゲストユーザ(ホスティングテナントにゲストとして追加された他のテナントのユーザ)がSSOログインを使用できるようにします。

ユーザ作成の制限

アカウントの作成を、必須のフィールド/値のペアに一致するEntra IDユーザに限定します。たとえば、フィールドに「Department」、値に「IT」を設定すると、IT部門のユーザのみが同期されます。

ユーザフィールドマッピング

プロファイルフィールドのマッピングは、サイト管理 > プラグイン > 認証 > OpenID Connect > データマッピングに移動しました。利用できるソースフィールドは、設定によって異なります。

  • 基本的なトークンフィールド:常に利用できます。
  • Graph APIフィールド:local_o365が設定されている場合に利用できます。
  • SDSフィールド:SDS同期が設定されている場合に利用できます。

各フィールドについて、更新するタイミング(ログインごと/アカウント作成時/更新しない)、および管理者以外によるローカルでの編集に対してロックするかどうかを設定します。

コースおよびTeamsの同期

「コース同期」ページ(サイト管理 > プラグイン > ローカルプラグイン > Microsoft 365統合 > コース同期)。

仕組み

MoodleコースをMicrosoft Teamsに同期するスケジュールタスク(\local_o365\task\coursesync)は、有効になっている各コースを処理し、次のことを行います。

  1. Microsoft 365グループが存在しない場合は作成します。
  2. グループをチームに昇格させます(教育機関テナントではクラスチーム、それ以外では標準のチーム)。
  3. Microsoft 365アカウントに接続されている、登録済みのMoodleユーザを同期します。
    • チーム所有者ケイパビリティ(local/o365:teamowner。デフォルトでは教師が持っています)を持つユーザ → チームの所有者として追加されます。
    • チームメンバケイパビリティ(local/o365:teammember。デフォルトでは学生が持っています)を持つユーザ → チームのメンバとして追加されます。
    • どちらのケイパビリティも持たないユーザは同期されません。
  4. Moodle Teamsアプリをインストールし、一般チャネルにMoodleタブを作成します(アプリが設定されている場合。下記のTeams Moodleアプリを参照してください)。

その後のMoodleでの登録の変更も、すべて即座に同期されます。

同期されるのは、Microsoft 365の接続レコードを持つMoodleユーザのみです。このようなレコードは、次の場合に作成されます。

  • ユーザ同期タスクによってユーザが作成または照合された場合。
  • ユーザがauth_oidc経由でログインした場合。
  • ユーザがMicrosoftブロックから手動で接続した場合。
  • 管理者が「接続」ツールまたは「ユーザマッチング」ツールで接続を作成した場合。

同期の方向

「コースユーザ同期の動作」設定で方向を制御します。

  • 「MoodleからTeamsへ」(デフォルト):Moodleの登録がチームのメンバシップを決定します。
  • 「TeamsからMoodleへ」:チームの所有者/メンバの変更がMoodleの登録を決定します。Microsoft 365に接続されていないMoodleユーザは影響を受けません。
  • 「TeamsおよびMoodleの両方を更新する」:どちらかのシステムでの変更がもう一方に反映されます。

コース同期の設定

  • 「コース同期」:
    • 「無効」:同期しません。
    • 「カスタマイズ」:個々のコースを選択します。オプションで、新しいコースに対してデフォルトで有効にすることや、許可されたユーザによるコースレベルでの制御を許可することができます。
    • 「すべての機能が有効」:すべてのコースを同期します。
  • 「非表示のコースを同期する」:デフォルトでは、コピー中またはリストア中のコースを同期しないように、非表示のコースは無視されます。非表示のコースに対してもチームの作成を強制するには、これを有効にします。
  • 「接続されたMoodleコースが削除されたときにMicrosoft 365グループを削除する」:Moodleコースが削除されたときに、チームも削除します。
  • 「コース同期が無効にされたときにMicrosoft 365グループを削除する」:コースの同期がオフにされたときに、チームを削除します。
  • 「タスク実行ごとに同期するコース数」:他のタスクをブロックしないように、cron実行ごとに処理するコース数を制限します。デフォルトは20です。
  • 「チーム/グループの命名」:チーム/グループ名に使用する接頭辞、接尾辞およびコースのフィールド(長いコース名/コース省略名/Moodleが生成したID/IDナンバ)を設定します。
  • 「コース更新時にTeams名を更新する」:Moodleのコース名が変更されたときに、チーム名を同期した状態に保ちます。

Teams Classes LTI

教育機関向けライセンスを持つテナントでは、コースのチームはクラスチームになります。これによりTeams Classes LTI機能が有効になり、mod_ltiを使用して、チームを外部ツールとしてMoodleのコースページに直接埋め込むことができます。

コーホート同期

「高度」ページ(サイト管理 > プラグイン > ローカルプラグイン > Microsoft 365統合 > 高度)の「コーホート同期」セクション。

セットアップ

高度 > コーホート同期にあるリンクに移動して、Microsoft 365グループとMoodleのシステムコーホートの間のマッピングを管理します。

仕組み

コーホート同期スケジュールタスク(\local_o365\task\cohortsync)は、次のルールを適用します。

次のすべてに該当する場合、ユーザはコーホートに追加されます。

  1. コーホートがMicrosoft 365グループにマッピングされている。
  2. ユーザが、接続されたMicrosoft 365アカウントを持っている。
  3. 接続されたアカウントが、グループのメンバまたは所有者である。

次のすべてに該当する場合、ユーザはコーホートから削除されます。

  1. コーホートがMicrosoft 365グループにマッピングされている。
  2. ユーザが、接続されたMicrosoft 365アカウントを持っている。
  3. 接続されたアカウントが、グループのメンバでも所有者でもない。

接続されたMicrosoft 365アカウントを持たないユーザは、影響を受けることはありません。

制限事項:

  • 同期は一方向のみです(Microsoft 365グループ → Moodleのコーホートのみ)。
  • システムレベルのコーホートのみがサポートされています(コースカテゴリのコーホートはサポートされていません)。
  • 動的配布グループはサポートされていません(Graph APIの制限)。

School Data Sync(SDS)

「SDS同期」ページ(サイト管理 > プラグイン > ローカルプラグイン > Microsoft 365統合 > SDS同期)。

設定

  • 「コースを作成する」:同期する学校を選択します。学校ごとにコースカテゴリが、クラスごとにコースが作成されます。
  • 「Teams作成を有効にする」:新しく作成されたMoodleコースを、対応するSDSのクラスチームに自動的に接続します(チームがSDSによって自動作成される場合にのみ有効です)。
  • 「ユーザを登録する」:SDSのクラスの教師およびメンバを、対応するMoodleコースに登録します。
  • 「SDSクラスとの高度な登録同期」:双方向の同期を有効にします。SDSのロールの変更がMoodleに反映され、Moodleの登録/ロールの変更がSDSに反映されます。
  • 「教師ロール」/「メンバロール」:SDSのクラスの所有者およびメンバにそれぞれ割り当てられるMoodleのロールです。
  • 「学校からプロファイルデータを同期する」:SDSの学校を選択して、その学校の教師/学生のプロファイルフィールドをauth_oidcのフィールドマッピングで利用できるようにします。

スケジュールタスク

  • SDSと同期するタスク(\local_o365\feature\sds\task\sync)は、コースの作成およびプロファイルフィールドの同期を処理します。
  • MoodleからSDSへの同期(登録/ロールの変更)はイベント駆動型で、ほぼリアルタイムに行われます(Microsoft側で最大約1分の遅延を見込んでください)。

Teams設定

「Teams設定」タブ。

前提条件

Teams統合を有効にする前に、次の点を確認してください。

  1. OpenID Connect認証が有効になっており、設定されている。
  2. 「フレーム内埋め込みを許可する」が有効になっている:サイト管理 > セキュリティ > HTTPセキュリティ。
  3. 「ウェブサービスを有効にする」が有効になっている:サイト管理 > 拡張機能。
  4. 「Moodle Microsoft 365 Webservices」が有効になっている:サイト管理 > プラグイン > ウェブサービス > 外部サービス。
  5. 「認証済みユーザ」ロールが「ウェブサービストークンを作成する」(moodle/webservice:createtoken)ケイパビリティを持っている:サイト管理 > ユーザ > パーミッション > ロールを定義する。

追加のリダイレクトURI

Azureアプリを(PowerShellスクリプトを使用せずに)手動で登録した場合は、アプリのAuthentication > Redirect URIsに次のURIを追加します。

  • https://your.moodle.url/local/o365/sso_end.php

MoodleアプリをTeamsに追加する

  1. 「Teams設定」タブで「マニフェストファイルをダウンロードする」をクリックして、Moodle Teamsアプリのマニフェスト(.zip)をダウンロードします。
  2. Microsoftのアップロード手順に従って、ファイルをテナントのTeamsアプリカタログにアップロードします。
  3. アップロードが完了すると、テナント内のすべてのチームでアプリを利用できるようになります。

Teams Moodleアプリ

マニフェストをダウンロードすると、Microsoft 365統合の設定に「Teams Moodleアプリ」タブが表示されます。「MoodleアプリID」を設定します(アプリがアップロードされると、Teamsアプリカタログから自動的に検出されます)。

設定すると、コース同期によって作成されるすべての新しいチームで、次のことが自動的に行われます。

  • Moodleアプリがインストールされます。
  • 接続されたMoodleコースを指すMoodleタブが、一般チャネルに作成されます。

Teamsからのコースリクエスト

「高度」ページ(サイト管理 > プラグイン > ローカルプラグイン > Microsoft 365統合 > 高度)の「コースリクエスト」セクション。

コースリクエストのケイパビリティ(moodle/course:request)を持つユーザは、Microsoftブロックから「Teamsからコースをリクエストする」にアクセスできます。これにより、選択したTeamsのチームの所有者およびメンバがあらかじめ設定された新しいMoodleコースをリクエストできます。

セットアップ:「高度」ページの「コースリクエスト」セクションで、チームの所有者およびチームのメンバのロールマッピングを設定します。

仕組み:

  1. ユーザは、自分が所有または所属しているチームのうち、まだMoodleコースに接続されていないチームを選択します。
  2. リクエストが承認されると、アドホックタスクによって、チームの所有者およびメンバ(接続されたMicrosoft 365アカウントを持つユーザ)が新しいコースに登録されます。
  3. 新しいコースは自動的にチームに接続されるため、継続的なコース同期が適用されます。

OneDrive for Businessリポジトリ

ファイルのダウンロードおよびリンク

  1. Moodle内の任意の場所でファイルピッカを開き、「OneDrive for Business」をクリックします。
  2. フォルダを選択します。
    • 「マイファイル」:個人のOneDrive for Businessです。
    • 「コース」:アクセス権のあるMoodleコースのSharePointドキュメントライブラリです。
  3. ファイルに移動してクリックします。
  4. オプションで、表示ファイル名または作成者を設定します(Moodle側のみで、OneDriveには反映されません)。
  5. 「このファイルを選択する」をクリックします。

ファイルのアップロード

  1. ファイルピッカでOneDriveのドキュメントライブラリを開きます。
  2. 「新しいファイルをアップロードする」をクリックします。
  3. ローカルファイルを選択し、「このファイルをアップロードする」をクリックします。

Teams会議TinyMCEプラグイン

tiny_teamsmeetingプラグインは、TinyMCEのツールバーに「Teams会議」ボタンを追加し、ユーザがTeamsのオンライン会議を作成して、そのリンクをMoodleのあらゆるコンテンツに挿入できるようにします。

前提条件

ユーザがMicrosoft 365アカウントに接続されている必要があります(ユーザのMicrosoft 365への接続を参照してください)。

使い方

  1. Moodleの任意のコンテクスト(コースページ、フォーラム投稿、課題の説明など)でTinyMCEエディタを開きます。
  2. ツールバーの「Teams会議」ボタンをクリックします。
  3. Teams会議の作成インタフェースを含むダイアログが開きます。
  4. ダイアログで会議を作成します。作成されると、会議のURLがダイアログに表示されます。
  5. オプションで、「新しいウィンドウで会議を開く」にチェックを入れます。
  6. 「リンクを追加する」をクリックして、会議のリンクをエディタに挿入します。
Teams会議の作成ダイアログ

設定

設定はサイト管理 > プラグイン > テキストエディタ > TinyMCEエディタ > Teams会議にあります。

  • 「会議アプリURL」:会議作成アプリのURLです。デフォルトでは、Microsoftがホストするアプリを指しています。カスタムバージョンをホストしている場合にのみ変更してください。

パーミッション

このボタンは、tiny/teamsmeeting:addケイパビリティを持つユーザにのみ表示されます。デフォルトでは、このケイパビリティは、そのコンテクストでコンテンツ編集のケイパビリティを持つロール(例:教師、マネージャ)に付与されています。

高度な設定

サイト管理 > プラグイン > ローカルプラグイン > Microsoft 365統合の「高度」タブ。

管理者ツール

  • 「テナント」:複数組織のログインをサポートするために、Microsoft 365テナントを追加します。
  • 「ヘルスチェック」:統合の設定について自動診断を実行します。
  • 「接続」:個々のユーザ ↔ Microsoft 365アカウントのリンクを表示および管理します。管理者は、任意のユーザを手動で接続または切断できます。
  • 「ユーザマッチング」:CSVのアップロードによって、MoodleユーザとMicrosoft 365ユーザを一括でリンクします。各行の内容:Moodleのユーザ名、Microsoft 365のユーザ名、1(M365ログインを有効にする)または0。cron実行中にバッチで処理されます。
  • 「チーム接続を管理する」:すべてのMoodleコースおよび接続されているチームを表示します。「接続」または「更新」を使用して、特定のコースの同期を即座に開始します。
  • 「メンテナンスツール」:
    • 「コースのグループ内のユーザを再同期する」:すべてのコースグループのメンバシップの完全な再同期を強制します。
    • 「削除されたMicrosoft 365グループを再作成する」:Microsoft 365管理で手動で削除されたコースグループを再作成します。
    • 「デバッグデータパッケージを生成する」:環境および設定の詳細を含むサポートパッケージを生成します。APIキーは含まれませんが、設定の詳細は明らかになるため、信頼できる相手とのみ共有してください。
    • 「OpenID Connectトークンをクリーンアップする」:ログインの失敗の原因となる可能性のある不要なトークンを削除します。進行中のログインが中断される可能性があるため、トラフィックの少ない時間帯に実行してください。
    • 「ユーザ同期のデルタトークンをクリーンアップする」:保存されているデルタトークンを消去して、次回のユーザ同期の実行時に完全な再同期を強制します。

その他の設定

  • 「リセット時のチーム名の接頭辞」/「リセット時のグループ名の接頭辞」:Moodleコースがリセットされたときに、接続されているチーム/グループの名前を更新して、接続状態が変わった可能性があることを示します。
  • 「中国向けMicrosoft 365」:21Vianet(中国)が運営するMicrosoft 365を使用している場合に有効にします。
  • 「デバッグメッセージを記録する」:トラブルシューティングのためにエラーを記録します。サイト管理 > レポート > ログで「サイトエラー」で絞り込んで表示します。
  • 「Microsoft 365に切り替える不完全一致のユーザ名の最小長」:自動照合に使用するユーザ名の最小の長さです。短い汎用アカウント(例:「admin」)が誤って照合されるのを防ぎます。
  • 「プロファイル画像の更新間隔」:プロファイル画像の同期を実行する最小の間隔です。
  • 「カスタムテーマ」:Teamsのタブ内からMoodleにアクセスしたときに使用するテーマを選択します。

既知の制限事項

  • Moodleサイトがインターネットに公開されていない場合(例:イントラネット上にある場合)、TeamsのMoodleタブは、Teamsのデスクトップアプリおよびモバイルアプリでは機能しません。Teamsのウェブアプリ(ブラウザ)では機能します。
  • これまでにMoodleにログインしたことがないMicrosoft 365ユーザは、初めてTeams SSOでサインインしようとしたときに、サイレントでサインインすることはできません。ログインを完了するためにボタンをクリックするよう求められます。
  • コーホート同期は、動的配布グループをサポートしていません。
  • コーホート同期は、システムレベルのコーホートにのみ適用されます。
  • 双方向のコース同期では、チームの所有者/メンバのロール設定で設定されたロールのみが管理されます。コース内のその他のロールは影響を受けません。
  • 「Teamsからコースをリクエストする」ページの読み込み時間は、ユーザが所属しているチームの数によって異なります。ページの初期化時に、対象となるすべてのチームが読み込まれるためです。

サポート