OAuth2 Services: Unterschied zwischen den Versionen

Aus MoodleDocs
Wechseln zu:Navigation, Suche
 
(11 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
{{Servereinstellungen}}
{{Servereinstellungen}}


* Moodle 3.3 unterstützt OAuth2 Services, die von jedem Plugin genutzt werden können, um authentifizierten Zugriff auf externe Dienste zu ermöglichen. Der Zugriff auf die externen Dienste erfolgt dabei entweder mit den aktuellen Moodle-Nutzerdaten oder unter Verwendung eines System-Nutzerkontos.
== OAuth2 Services==
* Moodle unterstützt OAuth2 Services, die von jedem Plugin genutzt werden können, um authentifizierten Zugriff auf externe Dienste zu ermöglichen. Der Zugriff auf die externen Dienste erfolgt dabei entweder mit den aktuellen Moodle-Nutzerdaten oder unter Verwendung eines System-Nutzerkontos.
* OAuth2 Services werden z.B. verwendet, um die Funktionalität ''Nutzen Sie Ihre Anmeldung auf Google / Microsoft / Facebook'' auf der Anmeldeseite von Moodle bereitzustellen und dann die authentifizierte Sitzung mit Repositories wie [[Google Drive Repository|Google Drive]] oder [[OneDrive Repository|OneDrive]] zu teilen, ohne sich dort noch einmal anmelden zu müssen.
* OAuth2 Services werden z.B. verwendet, um die Funktionalität ''Nutzen Sie Ihre Anmeldung auf Google / Microsoft / Facebook'' auf der Anmeldeseite von Moodle bereitzustellen und dann die authentifizierte Sitzung mit Repositories wie [[Google Drive Repository|Google Drive]] oder [[OneDrive Repository|OneDrive]] zu teilen, ohne sich dort noch einmal anmelden zu müssen.
* OAuth2 Services können von Plugins nicht nur auf der Moodle-Anmeldeseite verwendet werden. Außerdem ist es möglich, sich gleichzeitig bei verschiedenen externen Diensten zu authentifizieren.
* OAuth2 Services können von Plugins nicht nur auf der Moodle-Anmeldeseite verwendet werden. Außerdem ist es möglich, sich gleichzeitig bei verschiedenen externen Diensten zu authentifizieren.
Zeile 12: Zeile 13:
Open ID Connect ist ein Standard für OAuth2 Login-Services, der es erleichtert, ein funktionierendes Anmeldesystem aufzusetzen. Wenn der Service, den Sie einrichten, konform mit Open ID Connect ist, dann müssen Sie nur die Basis-URL des Dienstes angeben. Moodle findet dann alle weiteren Information, die für die Anforderung eines "Discovery Dokumentes" nötig sind, das unter der URL ''<issuer base url>/.well-known/openid-configuration'' erwartet wird.  
Open ID Connect ist ein Standard für OAuth2 Login-Services, der es erleichtert, ein funktionierendes Anmeldesystem aufzusetzen. Wenn der Service, den Sie einrichten, konform mit Open ID Connect ist, dann müssen Sie nur die Basis-URL des Dienstes angeben. Moodle findet dann alle weiteren Information, die für die Anforderung eines "Discovery Dokumentes" nötig sind, das unter der URL ''<issuer base url>/.well-known/openid-configuration'' erwartet wird.  


== Wie bekomme ich eine Client ID und ein Client Kennwort? ==
==Provider-Konfiguration==
Die Client ID und das Client Kennwort werden außerhalb von Moodle bei der Konfigiration eines OAuth2 Providers angelegt. Entsprechende Anleitungen für die bekanntesten OAuth2 Providers finden Sie hier:
Zuerst klären wir einige Begriffe: Im Folgenden ist Moodle der '''Client''' und der externe Service (Google, Facebook, ...) ist der '''Aussteller'''  oder '''Provider'''.
 
Um die OAuth2 Services zu konfigurieren, gehen Sie auf die Seite ''Website-Administration > Server > OAuth 2-Services''.
[[File:OAuth - Services.png|border|center|frameless|900x900px]]
 
Unten sehen Sie alle von Moodle unterstützten Service-Provider. Klicken Sie auf den gewünschten Button, um den zugehörigen Service-Provider hinzuzufügen und zu konfigurieren. Das Formular ist bereits vorausgefüllt. Sie müssen nur noch die ''Client-ID'' und das ''Client-Secret'' des Providers eintragen.
 
=== Wie bekomme ich eine Client-ID und ein Client-Secret? ===
Die Client-ID und das Client-Secret werden außerhalb von Moodle vom OAuth2-Providers bereitgestellt. Entsprechende Anleitungen für die bekanntesten OAuth2-Provider finden Sie hier:
* [[OAuth2 Google Service]]
* [[OAuth2 Google Service]]
* [[OAuth2 Microsoft Service]]
* [[OAuth2 Microsoft Service]]
* [[OAuth2 Facebook Service]]
* [[OAuth2 Facebook Service]]
* [[OAuth2 Nextcloud Service]]
* [[OAuth2 MoodleNet Service]]
* [[OAuth2 Open Badges Service]]
* [[OAuth2 LinkedIn Service]]
* [[OAuth2 LinkedIn Service]]
* [[OAuth2 Clever Service]]


==Ein Systen-Nutzerkonto verwenden==
Für weitere Dienste müssen Sie selbst beim Provider herausfinden, wie Sie eine Client-ID und ein Client-Secret erhalten. Der Aussteller braucht in seiner Konfiguration eine Redirect-URL für Moodle  ''<wwwroot>/admin/oauth2callback.php''. z.B. ist für eine Moodle-Site ''https://moodle.example.com'' die Redirect-URL ''https://moodle.example.com/admin/oauth2callback.php''.
 
=== Einen Service-Provider hinzufügen ===
Verwenden Sie, wenn möglich, einen der vorkonfigurierten Service-Provider. Sie können später immer noch individuelle Einstellungen vornehmen.
 
Wenn Sie einen der Provider aus der Liste anklicken, erscheinen folgende Einstellungen:
 
[[Image:OAuth2-issuer-settings2.png|frame|center|Provider-Einstellungen]]
 
Als generelle Regel gilt: Ändern Sie keine Einstellungen außer '''Name''', '''Client-ID''', '''Client-Secret''' und '''Service-Basis-URL''' (außer die Installationaanweisungen sagen etwas anderes). Alle anderen voreingestellten Einstellungen passen normalerweise, insbesondere, wenn Sie einen vorkonfigurierten Provider verwenden.
Siehe [[#Weitere Provider-Einstellungen|Weitere Provider-Einstellungen (weiter unten)]] für die Erklärung von einigen Einstellungen.
 
====Login-Domains====
Diese Einstellung ist nur nötig, wenn diese Anmeldeoption auf der Anmeldeseite von Moodle angezeigt wird. Wenn das Feld ausgefüllt ist, können sich nur Nutzer/innen mit entsprechenden E-Mail-Adressen über diesen Dienst in Moodle anmelden.
 
Die Prüfung dieser E-Mail-Adressen erfolgt, bevor die E-Mail-Adressen geprüft werden, die optional auf der Seite [[Authentifizierungs-Plugins verwalten]] angegeben sind. Die letzteren E-Mail-Adressen werden jedoch nur einmalig geprüft, wenn beim 1. Login das Moodle-Nutzerkonto angelegt wird, aber nicht bei späteren Logins.
 
====Weitere Einstellungen====
Nachdem Sie einen Service-Provider angelegt haben, werden weitere Konfigurationseinstellungen rechts neben dem Dienst angezeigt. Für vorkonfigurierte Services sind normalerweise keine Änderungen nötig.
 
[[Image:OAuth2-issuer-other-settings.png|frame|center|Weitere Konfigurationseinstellungen für OAuth2 Provider]]
 
; Bearbeiten: Hier kommen Sie zurück auf die Konfigurationseinstellungen.
; Endpoints konfigurieren: Hier legen Sie die Endpoints des Providers fest, d.h. die URLs, mit denen sich Moodle jeweils verbindet. Die folgenden Endpoints sind Pflichtfelder für die Nutzerauthentifizierung: '''authorization_endpoint''', '''token_endpoint''' und '''userinfo_endpoint'''. (Beispiel siehe Abbildung unten).
; Nutzerfeldzuordnung konfigurieren: Wenn Sie den Provider als Identity Provider verwenden, können Sie festlegen, wie die Zuordnung zwischen der Antwort des Providers (vom Endpoint '''userinfo_endpoint''') und den  Nutzerfeldern in Moodle erfolgen soll. Sie müssen mindestens die Zuordnung für die Moodle-internen Nutzerfelder '''firstname''', '''lastname''' und '''email''' festlegen, so dass die Nutzerkonten beim Anmelden in Moodle vollständig angelegt werden können, da diese Felder Pflichtfelder in Moodle sind. Wenn es für eins dieser Felder keine Zuordnung gibt, werden die Nutzer/innen auf ihre [[Nutzerprofil aktualisieren|Nutzerprofilseite]] weitergeleitet, damit sie die fehlenden Informationen eintragen können. (Beispiel siehe unten).
; Löschen: Hiermit können Sie die Konfigurationseinstellungen löschen.
; Deaktivieren: Hiermit können Sie einen Dienst deaktivieren.
; Nach oben / unten schieben: Hier können Sie die Reihenfolge der Dienste auf der Moodle-Anmeldeseite ändern.
[[File:endpoints.png|frame|center|Beispiel für Endpoints-Konfiguration für einen nutzerdefinierten Provider]][[File:user_field_mappings.png|frame|center|Beispiel für die Zuordnung von Nutzerfeldern]]
 
===Ein System-Nutzerkonto verwenden===
* Ein System-Nutzerkonto kann verwendet werden, um zusätzliche Funktionalitäten bereitzustellen, z.B. Links zum [[Google Drive Repository]] oder zum [[OneDrive Repository]].
* Ein System-Nutzerkonto kann verwendet werden, um zusätzliche Funktionalitäten bereitzustellen, z.B. Links zum [[Google Drive Repository]] oder zum [[OneDrive Repository]].
* Das System-Nutzerkonto sollte ausschließlich für diesen Zweck angelegt und verwendet werden.
* Das System-Nutzerkonto sollte ausschließlich für diesen Zweck angelegt und verwendet werden.
* Für die Anmeldefunktionalität wird kein System-Nutzerkonto benötigt.
* Für die Anmeldefunktionalität wird kein System-Nutzerkonto benötigt.
==== Zugriffs-Tokens erneuern ====
Es gibt einen geplanten Task, um regelmäßig die OAuth-Tokens für Servicekonten zu erneuern (''\core\oauth2\refresh_system_tokens_task''). Wenn das Token aus irgendwelchen Gründen nicht erneuert werden kann, wirdd ie Moodle-Administration benachrichtigt.
Wenn Sie als Administrator/in diese Benachrichtigung nicht bekommen möchten, können Sie das auf der [[Benachrichtigungen]]-Seite festlegen. Sie müssen dafür die Option ''Systemnachricht bei schwerwiegenden Fehlern'' deaktivieren.
'''Achtung''': Nutzer/innen, die die Benachrichtigung ''Systemnachricht bei schwerwiegenden Fehlern'' deaktivieren, können dadurch andere wichtige Systemnachrichten verpassen. Z.B. erhalten sie dann keine Benachrichtigung über Antivirus-Scans. Aktuell werden nicht viele Benachrichtigungen über diesen Dienst versendet, aber es gibt leider keine Möglichkeit, sie aufzulisten. Prüfen Sie daher, welche Systemnachrichten Sie vor dem Deaktivieren bekommen haben und welche Sie danach bekommen.
==Siehe auch==
* [[OAuth2 Authentifizierung]]
* [[OAuth2 Fehlerbehandlung]]
* [https://moodle.org/mod/forum/discuss.php?d=351727 Oauth2 problems in Moodle 3.3] Diskussionsbeitrag auf moodle.org
* [https://moodle.org/mod/forum/discuss.php?d=362593 Problem to configure Oauth2 with Microsoft Office365] Diskussionsbeitrag auf moodle.org


[[Category:OAuth2]]
[[Category:OAuth2]]
[[en:OAuth 2 services]]
[[en:OAuth 2 services]]

Aktuelle Version vom 2. Oktober 2023, 11:05 Uhr


OAuth2 Services

  • Moodle unterstützt OAuth2 Services, die von jedem Plugin genutzt werden können, um authentifizierten Zugriff auf externe Dienste zu ermöglichen. Der Zugriff auf die externen Dienste erfolgt dabei entweder mit den aktuellen Moodle-Nutzerdaten oder unter Verwendung eines System-Nutzerkontos.
  • OAuth2 Services werden z.B. verwendet, um die Funktionalität Nutzen Sie Ihre Anmeldung auf Google / Microsoft / Facebook auf der Anmeldeseite von Moodle bereitzustellen und dann die authentifizierte Sitzung mit Repositories wie Google Drive oder OneDrive zu teilen, ohne sich dort noch einmal anmelden zu müssen.
  • OAuth2 Services können von Plugins nicht nur auf der Moodle-Anmeldeseite verwendet werden. Außerdem ist es möglich, sich gleichzeitig bei verschiedenen externen Diensten zu authentifizieren.

Anmeldung

Detaillierte Informationen dazu finden Sie im Artikel OAuth2 Authentifizierung.

Open ID Connect

Open ID Connect ist ein Standard für OAuth2 Login-Services, der es erleichtert, ein funktionierendes Anmeldesystem aufzusetzen. Wenn der Service, den Sie einrichten, konform mit Open ID Connect ist, dann müssen Sie nur die Basis-URL des Dienstes angeben. Moodle findet dann alle weiteren Information, die für die Anforderung eines "Discovery Dokumentes" nötig sind, das unter der URL <issuer base url>/.well-known/openid-configuration erwartet wird.

Provider-Konfiguration

Zuerst klären wir einige Begriffe: Im Folgenden ist Moodle der Client und der externe Service (Google, Facebook, ...) ist der Aussteller oder Provider.

Um die OAuth2 Services zu konfigurieren, gehen Sie auf die Seite Website-Administration > Server > OAuth 2-Services.

OAuth - Services.png

Unten sehen Sie alle von Moodle unterstützten Service-Provider. Klicken Sie auf den gewünschten Button, um den zugehörigen Service-Provider hinzuzufügen und zu konfigurieren. Das Formular ist bereits vorausgefüllt. Sie müssen nur noch die Client-ID und das Client-Secret des Providers eintragen.

Wie bekomme ich eine Client-ID und ein Client-Secret?

Die Client-ID und das Client-Secret werden außerhalb von Moodle vom OAuth2-Providers bereitgestellt. Entsprechende Anleitungen für die bekanntesten OAuth2-Provider finden Sie hier:

Für weitere Dienste müssen Sie selbst beim Provider herausfinden, wie Sie eine Client-ID und ein Client-Secret erhalten. Der Aussteller braucht in seiner Konfiguration eine Redirect-URL für Moodle <wwwroot>/admin/oauth2callback.php. z.B. ist für eine Moodle-Site https://moodle.example.com die Redirect-URL https://moodle.example.com/admin/oauth2callback.php.

Einen Service-Provider hinzufügen

Verwenden Sie, wenn möglich, einen der vorkonfigurierten Service-Provider. Sie können später immer noch individuelle Einstellungen vornehmen.

Wenn Sie einen der Provider aus der Liste anklicken, erscheinen folgende Einstellungen:

Provider-Einstellungen

Als generelle Regel gilt: Ändern Sie keine Einstellungen außer Name, Client-ID, Client-Secret und Service-Basis-URL (außer die Installationaanweisungen sagen etwas anderes). Alle anderen voreingestellten Einstellungen passen normalerweise, insbesondere, wenn Sie einen vorkonfigurierten Provider verwenden. Siehe Weitere Provider-Einstellungen (weiter unten) für die Erklärung von einigen Einstellungen.

Login-Domains

Diese Einstellung ist nur nötig, wenn diese Anmeldeoption auf der Anmeldeseite von Moodle angezeigt wird. Wenn das Feld ausgefüllt ist, können sich nur Nutzer/innen mit entsprechenden E-Mail-Adressen über diesen Dienst in Moodle anmelden.

Die Prüfung dieser E-Mail-Adressen erfolgt, bevor die E-Mail-Adressen geprüft werden, die optional auf der Seite Authentifizierungs-Plugins verwalten angegeben sind. Die letzteren E-Mail-Adressen werden jedoch nur einmalig geprüft, wenn beim 1. Login das Moodle-Nutzerkonto angelegt wird, aber nicht bei späteren Logins.

Weitere Einstellungen

Nachdem Sie einen Service-Provider angelegt haben, werden weitere Konfigurationseinstellungen rechts neben dem Dienst angezeigt. Für vorkonfigurierte Services sind normalerweise keine Änderungen nötig.

Weitere Konfigurationseinstellungen für OAuth2 Provider
Bearbeiten
Hier kommen Sie zurück auf die Konfigurationseinstellungen.
Endpoints konfigurieren
Hier legen Sie die Endpoints des Providers fest, d.h. die URLs, mit denen sich Moodle jeweils verbindet. Die folgenden Endpoints sind Pflichtfelder für die Nutzerauthentifizierung: authorization_endpoint, token_endpoint und userinfo_endpoint. (Beispiel siehe Abbildung unten).
Nutzerfeldzuordnung konfigurieren
Wenn Sie den Provider als Identity Provider verwenden, können Sie festlegen, wie die Zuordnung zwischen der Antwort des Providers (vom Endpoint userinfo_endpoint) und den Nutzerfeldern in Moodle erfolgen soll. Sie müssen mindestens die Zuordnung für die Moodle-internen Nutzerfelder firstname, lastname und email festlegen, so dass die Nutzerkonten beim Anmelden in Moodle vollständig angelegt werden können, da diese Felder Pflichtfelder in Moodle sind. Wenn es für eins dieser Felder keine Zuordnung gibt, werden die Nutzer/innen auf ihre Nutzerprofilseite weitergeleitet, damit sie die fehlenden Informationen eintragen können. (Beispiel siehe unten).
Löschen
Hiermit können Sie die Konfigurationseinstellungen löschen.
Deaktivieren
Hiermit können Sie einen Dienst deaktivieren.
Nach oben / unten schieben
Hier können Sie die Reihenfolge der Dienste auf der Moodle-Anmeldeseite ändern.
Beispiel für Endpoints-Konfiguration für einen nutzerdefinierten Provider
Beispiel für die Zuordnung von Nutzerfeldern

Ein System-Nutzerkonto verwenden

  • Ein System-Nutzerkonto kann verwendet werden, um zusätzliche Funktionalitäten bereitzustellen, z.B. Links zum Google Drive Repository oder zum OneDrive Repository.
  • Das System-Nutzerkonto sollte ausschließlich für diesen Zweck angelegt und verwendet werden.
  • Für die Anmeldefunktionalität wird kein System-Nutzerkonto benötigt.

Zugriffs-Tokens erneuern

Es gibt einen geplanten Task, um regelmäßig die OAuth-Tokens für Servicekonten zu erneuern (\core\oauth2\refresh_system_tokens_task). Wenn das Token aus irgendwelchen Gründen nicht erneuert werden kann, wirdd ie Moodle-Administration benachrichtigt.

Wenn Sie als Administrator/in diese Benachrichtigung nicht bekommen möchten, können Sie das auf der Benachrichtigungen-Seite festlegen. Sie müssen dafür die Option Systemnachricht bei schwerwiegenden Fehlern deaktivieren.

Achtung: Nutzer/innen, die die Benachrichtigung Systemnachricht bei schwerwiegenden Fehlern deaktivieren, können dadurch andere wichtige Systemnachrichten verpassen. Z.B. erhalten sie dann keine Benachrichtigung über Antivirus-Scans. Aktuell werden nicht viele Benachrichtigungen über diesen Dienst versendet, aber es gibt leider keine Möglichkeit, sie aufzulisten. Prüfen Sie daher, welche Systemnachrichten Sie vor dem Deaktivieren bekommen haben und welche Sie danach bekommen.

Siehe auch