EduShell

Raccorder votre fournisseur d'identite

OpenID Connect, SAML 2.0 et LTI 1.3 : ce qu'il faut donner de chaque cote.

OpenID Connect

Le raccordement le plus courant. Creez une application dans votre fournisseur, autorisez l'URI de redirection ci-dessous, puis reportez ses valeurs chez nous.

A donner a votre fournisseur

  • URI de redirection : /api/auth/oidc/callback
  • Point d'entree de connexion : /auth/oidc/{slug}/login

A nous donner

ChampCe que c'est
issuerL'emetteur annonce par votre fournisseur. C'est aussi lui qui est verifie dans le jeton.
https://login.microsoftonline.com/<tenant>/v2.0
client_idL'identifiant de l'application que vous venez de creer.
client_secretLe secret associe. Il n'est jamais reaffiche apres l'enregistrement.
authorize_urlLe point d'autorisation vers lequel l'utilisateur est envoye.
.../oauth2/v2.0/authorize
token_urlLe point d'echange du code contre un jeton.
.../oauth2/v2.0/token
jwks_urlLes cles publiques servant a verifier la signature du jeton.
.../discovery/v2.0/keys
default_role(facultatif)Le role attribue a une personne qui se connecte pour la premiere fois. Par defaut formateur.
trainer | admin

Revendications utilisees

Nous ne lisons que ces trois revendications du jeton d'identite : email, name, locale

L'adresse est obligatoire : c'est elle qui rattache la personne a un compte. Le nom et la langue sont utilises s'ils sont presents. Une personne deja connue garde la langue qu'elle avait choisie, une connexion SSO ne l'ecrase pas.

SAML 2.0

Notre metadonnee de fournisseur de service est generee : donnez son URL a votre fournisseur d'identite plutot que de recopier des champs a la main.

A donner a votre fournisseur

  • Metadonnees du fournisseur de service : /auth/saml/{slug}/metadata
  • URL du service consommateur d'assertion (ACS) : /auth/saml/{slug}/acs
  • Point d'entree de connexion : /auth/saml/{slug}/login

A nous donner

ChampCe que c'est
idp_metadata_xmlLe XML de metadonnees de votre fournisseur, colle tel quel. Il contient l'emetteur, l'URL de connexion et le certificat de signature.
default_role(facultatif)Le role attribue a une personne qui se connecte pour la premiere fois. Par defaut formateur.
trainer | admin

LTI 1.3

Pour lancer un atelier depuis un LMS (Moodle, Canvas). L'enregistrement se fait des deux cotes : votre LMS declare notre outil, et nous declarons votre plateforme.

A donner a votre fournisseur

  • URL de lancement : /api/lti/{registrationId}/launch

A nous donner

ChampCe que c'est
platform_issuerL'emetteur de votre LMS.
https://moodle.example.org
client_idL'identifiant client que votre LMS attribue a notre outil.
auth_login_urlLe point d'initiation de connexion de votre LMS.
.../mod/lti/auth.php
jwks_urlLes cles publiques de votre LMS.
.../mod/lti/certs.php
deployment_idsLe ou les identifiants de deploiement. Un LMS en genere un par emplacement d'installation.

Le role est deduit du lancement : un enseignant arrive en formateur, un apprenant arrive en apprenant, directement dans l'atelier.

Notes par fournisseur

Le chemin exact du reglage, en toutes lettres plutot qu'en captures d'ecran : ces consoles changent plusieurs fois par an et une capture perimee fait chercher un bouton qui n'existe plus.

Microsoft Entra ID

Inscriptions d'applications > Nouvelle inscription. L'URI de redirection est de type Web. Les URL d'autorisation, de jeton et de cles se lisent dans Points de terminaison, en version 2.0. Ajoutez la permission email si votre locataire ne la fournit pas par defaut.

Okta

Applications > Create App Integration > OIDC, type Web Application. L'emetteur et les points de terminaison viennent du serveur d'autorisation utilise, souvent default. Verifiez que la portee email est accordee.

Google Workspace

Console Google Cloud > Identifiants > ID client OAuth, type Application Web. L'emetteur est accounts.google.com. La langue n'est pas transmise, les comptes gardent donc la langue de l'interface.

Autre fournisseur OIDC

Tout fournisseur conforme convient. Si le votre publie un document de decouverte, les quatre URL demandees s'y trouvent sous authorization_endpoint, token_endpoint, jwks_uri et issuer.

Ca ne marche pas

Le fournisseur refuse la redirection
L'URI doit correspondre au caractere pres, protocole et barre finale compris. C'est la cause la plus frequente et la plus discrete.
La connexion aboutit mais aucun compte n'est cree
Le jeton ne porte pas de revendication email. Ajoutez la portee correspondante chez votre fournisseur : sans adresse, nous ne pouvons rattacher la personne a rien.
Tout le monde arrive avec le mauvais role
Le role par defaut ne s'applique qu'a la premiere connexion. Une personne deja membre garde le role qu'elle avait, changez-le dans Administration > Membres.
L'URL de connexion renvoie une erreur
Verifiez le {slug} : c'est l'identifiant court de l'organisation, pas son nom affiche.

Un raccordement resiste ? Ecrivez-nous