Document toolboxDocument toolbox

Anbindung edu-sharing als Tool in einem lms

Auf repo Seite:

iframe integration erlauben

Globale Sytemkonfiguration → Cluster Override 

"frame-ancestors" setzen

angular.headers.Content-Security-Policy: {
    default-src: "* data: blob: 'self' gap://ready"
    connect-src: "*"
    img-src: "* data: blob:"
    style-src: "* 'unsafe-inline'"
    script-src: "* 'unsafe-inline' 'unsafe-eval' https://app-registry.edu-sharing.com"
    font-src: "'self' data:"
    frame-ancestors: "https://ltiplatform.there"
}

cookie über iframe mitsenden:

Erweiterte Systemkonfiguration → homeApplication.properties.xml

cookie_attributes

SameSite=None; Secure

lti als auth method erlauben

Erweiterte Systemkonfiguration → homeApplication.properties.xml


allowed_authentication_types

lti

Automatisches Anlegen der Benutzer

Standardmäßig werden lti nutzer mit dem LTIPlattform usernamen + issuer (domain) gescoped in edu-sharing angelegt.

Ist die sso auth mit createUser = false (SSOAuthrorityMapper) konfiguriert muss sichergestellt werden das die Benutzer die über lti kommen bereits im repo existieren.

Hängt die lti platform und edu-sharing an dem selben sso, kann die Einstellung  lti_scope_username=false verwendet werden. Damit wird verhindert das die usernamen gescoped werden. (Applikationsbeschreibung der registrierten LTI Plattform (Admin Tools → remote applikationen).

Dev environment lokal

  • litplattform (zb moodle) auch über nip.io adresse ansprechen um same site cookie probleme zu verhindern. moodle nutzt eine iframe für die lti integration. problem ist das da die jessionid vom edu-sharing tomcat nicht mitgeschickt wird
  • bei der dynamischen registrierung mach das repo einen backendcall zum moodle, dabei wird die nip.io adresse zu moodle mit localhost aufgelöst. um das zu verhindern muss in der repo /etc/hosts die domain auf die docker host ip gesetzt werden
docker exec -u root -it ${repocontainer} /bin/bash
nano /etc/hosts
172.17.0.1	moodle.127.0.0.1.nip.io


  • beim lti deeplink (übernehmen der resource) macht moodle einen backend call zum repo auf die keyset url. die muss auf  die dockerhostip:8080 oder wenn der moodle docker container im gleichen docker netz hängt auf repository-service:8080 gehen.
    • Achtung: scheinbar macht der interne curl von moodle da probleme moodle funktion "download_file_content"


Dev environment K8s mit bitnami moodle helm chart

helm upgrade --install testmoodle -f values.yaml oci://registry-1.docker.io/bitnamicharts/moodle

values.yaml:
global:
  storageClass: "ssd"
ingress:
  enabled: true
  #"hostname" is needed look at chart docu, "hosts" is unlear
  hosts:
    - moodle.services.staging.cloud.schulcampus-rlp.de
  hostname: moodle.services.staging.cloud.schulcampus-rlp.de
  tls: true
  annotations:
    cert-manager.io/cluster-issuer: letsencrypt
#  tls:
#    - secretName: moodle-server-tls
#      hosts:
#        - moodle.services.staging.cloud.schulcampus-rlp.de
moodlePassword: test1234!
mariadb:
  auth:
    rootPassword: test1234!
    password: test1234!
#mariadb:
#  primary:
#    persistence:
#      storageClass: "ssd"
resources:
  requests:
    memory: 1024Mi
    cpu: 1000m
  limits:
    memory: 2048Mi
    cpu: 2000m


Dynamische Registrierung am beispiel moodle

Edu-Sharing

In den edu-sharing admin tools bei remote systeme → LTI Plattform Registrierung einen "Token hinzufügen"


Moodle

In moodle bei den external tools die Token url einfügen und Add LTI Advantage drücken. Danach das Tool "aktivieren"


Bei den Tool Einstellungen "Tool configuration usage" auf "Show in activity chooser and as preconfigured tool" stellen.