Frage zu Konfiguration bei Keycloak und Moodle

Hallo!
Ich habe einen Keycloak Server und möchte Moodle per OpenID-Connect plugin anbinden. Ich weiß, dass das einige hier schon am Laufen haben, bekomme es aber nicht hin, wahrscheinlich, weil ich nicht weiß, was ich bei den ganzen URIs eintragen muss.
Es läuft immerhin soweit, dass Moodle auf den Keycloak weiterleitet und ich mich dort authentifizieren kann, zurück geht nicht mehr und Moodle merkt auch nix von der authentifizierung.
Könnte mir bitte jemand die Einstellungen im Moodle-Plugin und in den Client-Einstellungen des Keycloak mitteilen?
DANKE! und liebe Grüße
Max

jau und das gleiche Verhalten bei Nextcloud mit „OpenID Connect Login“…
hier würde u.a. die keycloak.config.php der nextcloud helfen oder der Name eines geeigneten Plugins, welches die vorhandenen LDAP-Konten korrekt mit den keycloak-Konten verknüpft.

LG
Max

Moodle hatte ich mal mit oauth2 und keycloak probiert und das hatte geklappt, war damit aber mit der Sicherheit beim ausloggen unzufrieden. da ist openid vermutlich besser - nur gab das letztes Jahr im belwue moodle noch nicht. Aber schule@bw verwendet das glaub ich auch… kann dir da nicht weiterhelfen weil ich es nicht ausprobiert hab.

bei nextcloud kann ich das openid Connect plugin von pulsejet empfehlen.
Allerdings muss man da alles händisch in der config.php einarbeiten. und da die Anleitung am besten gut durchlesen von der GitHub Seite bzw. das Muster config dort…

Das Grundprinzip ist immer dasselbe. Du generierst die in Keycloak für den „Client“ eine clientid und Secret und trägst das dann in der anderen app (nextcloud) ein
über Scope kannst du in openid ldapattribute openid scopes zuordnung und dadurch klappt das dann dass man beim einloggen im richtigen account landet.
ich poste hier mal die eintrage meiner config.php das hilft dir wahrscheinlich nur ein bissle weiter, weil da die keycloak Seite mit den Scores noch fehlt…

'oidc_login_provider_url' => 'https://keycloak.meineschule.de/realms/meineschule/‘,
  'oidc_login_client_id' => ‘my’clientid, #wichtig!
  'oidc_login_client_secret' => ‘my secret’, #wichtig!
  'oidc_login_auto_redirect' => false,
  'oidc_login_logout_url' => 'https://nextcloud.meineschule.de/apps/oidc_login/oidc',
  'oidc_login_end_session_redirect' => true,
  'oidc_login_button_text' => 'Log in with Keycloak',
  'oidc_login_hide_password_form' => false,
  'oidc_login_use_id_token' => false,
  'oidc_login_attributes' =>
  array (                                                 
     #die attribute hier sind die Schlüssel zur richtigen Zuordnung der Accounts, die Attribute auf der rechten Seite
 #erstellst du in keycloak quasi selber, sie müssen aber per ldap innerhalb keycloak gefüllt werden
    'id' => 'username',
    'ldap_uid' => 'ldapipd',                        
    'login_filter' => 'realm_access_roles',   
 #im realm access roles habe ich die zugehörogeit zu ldapgruppen hinerlegt, glaube ich
  ),
  'oidc_login_filter_allowed_values' =>
  array (
    0 => 'LDAP-LehrerGruppe',   
  ),
#diese option filtert raus dass nur Lehrer einloggen können
  'oidc_login_use_external_storage' => false,
  'oidc_login_scope' => 'openid profile',
 #auch dieser eintrag ist wichtig, und hängt von der keycloak Konfiguration ab
  'oidc_login_proxy_ldap' => true,
  'oidc_login_disable_registration' => true,
  'oidc_login_redir_fallback' => false,
  'oidc_login_alt_login_page' => false,
  'oidc_login_tls_verify' => true,
  'oidc_create_groups' => false,
  'oidc_login_webdav_enabled' => false,
  'oidc_login_password_authentication' => false,
  'oidc_login_public_key_caching_time' => 86400,
  'oidc_login_min_time_between_jwks_requests' => 10,
  'oidc_login_well_known_caching_time' => 86400,
  'oidc_login_update_avatar' => false,
  'oidc_login_skip_proxy' => false,
  'oidc_login_code_challenge_method' => '',

aber vielleicht kann as ja jemand anders noch besser erklären hier… die keycloak Seite möchte hier eigentlich nicht posten :slight_smile:

danke, übermorgen schau ich es an!!! Das hilft bestimmt, außer ich hab bei keycloak was verdummbeutelt… (da es bei moodle UND NC nicht geht, durchaus möglich).

Liebe Grüße
Max

Hallo sucher!

Ich habe das selbe Plugin installiert und eigentlich die gleichen config-Einträge. Da muss es wohl doch am Keycloak hängen. Mit scopes meinst Du die „Mappings“, die man bei User federation → Provider → Ldap einstellen kann, oder?

ich habe das Attribut „cn“ (ich denke, das ist der Login von linuxmuster, nextcloud und so) auf „username“ gemapped und diesen dann wie oben bei Dir auf „id“.
Was ich nicht habe, ist das ldap_uid, da wäre es toll, Du würdest mir sagen, wass Du im keycloak auf „ldapipd“ mappst…

Viele Grüße
Max

LG
Max

also das ldapipd kommt sicherlich von einem Tippfehler. da wollte ich eigentlich ldapuid vermutlich schreiben. es ist aber ja nur ein name der in keycloak verankert sein muss.
ich kenne dein ldap Setup in nexcloud jetzt nicht genau, auch weil ich von ldap in linuxmuster wenig Ahnung habe.
In der Nextcloud Ldap App gibt es den Bereich Experten wo man die Nextcloud UUID eintragen kann. Da ist bei mir „cn“, also der Loginname aus LDAP.
Du hast ja sicherlich ein Realm in keycloak erstellt für deine Schule und dort LDAP angelegt als quelle für die Daten. Also bei User Federation LDAP ist da bei mir „cn“ bzw „uid“ eingetragen. Und und cn sind bei uns identisch.

Mein Ldapipd (mit dem Tippfehler) ist hier angelegt: Als UserMapper:

Dieser UserMapper mappt auf

Der externkey wird für Nextcloud nicht gebraucht. Ich nutze den für die Anbindung an webuntis, das nämlich auch funktioniert :slight_smile: Ja und jetzt passt der Title von dem thread nicht mehr so ganz spätestens grins

Für Nextcloud musst du ja in keycloak ein client erstellen und dort im Menü client Scopes sollte dann auch LDAP_ID drin stehen.

Ich hab das damals auch viel durch probieren gemacht. Nextcloud war das erste, bei webuntis hatte ich es dann besser verstanden. Aber jetzt hab ich das meiste schon wieder vergessen :upside_down_face:

jau und mehr weiss ich jetzt auch nicht mehr.

wenn du es bei moodle hinkriegst. hier bitte rein posten. :grin: Geht ja sicher nach dem selben Prinzip…

Also der Eintrag ldap_uid ist der entscheidende wenn man das openid plugin von nextcloud anschaut. wir verwenden ja das plugin im „proxy Mode“ und dann geht die Zuordnung der accounts über diesen Eintrag. Der ProxyMode ist auch die Entscheidung glaub ich gewesen für die Nutzung dieses plugins. Es gibt in Nexcloud noch ein anderes plugin „social login“, das man auch verwenden könnte. aber da gibt es glaub ich den proxymode nicht und ich will ja openid nur für das einloggen verwenden und nicht für die Erstellung von accounts.
Für Linuxmuster sind vermutlich die geeigneten LDAP eintrage wie hier beschrieben: