4 points d'intégration
1. SSO via OIDC
Configuration :
- Google Cloud Console > APIs & Services > Credentials > Create Credentials > OAuth 2.0 Client ID
- Application type : Web application
- Authorized redirect URI :
https://[tenant].studeia.com/api/auth/sso/[slug]/oidc/callback - Copiez le Client ID + Client Secret
- Studeia > Settings > SSO > Add Provider > OIDC
- Discovery URL :
https://accounts.google.com/.well-known/openid-configuration(récupération automatique) - Allowed domains : ex. :
@ecole.edu.fr(protection contre les comptes fantômes)
Le provisionnement JIT crée automatiquement l'utilisateur lors de la première connexion. Attributs mappés : name, email, role.
2. Synchronisation Google Drive (bibliothèque multimédia)
Configuration :
- Google Cloud Console > APIs > activer Drive API + Google Picker API
- Même OAuth Client (ou en créer un dédié) + une browser API key restreinte à la Picker API
- Scope :
https://www.googleapis.com/auth/drive.file(non-sensitive — accès uniquement aux fichiers créés par Studeia + choisis par l'utilisateur dans le Google Picker). Nous n'utilisons PAS le scope restricteddrive(évaluation CASA + recertification annuelle) - Studeia > Settings > Integrations > Google Drive > Connect
- Flux de consentement OAuth de l'utilisateur lui-même
- Studeia stocke les tokens chiffrés en AES-256-GCM
Fonctionnalités (DriveIntegration + DriveSyncEngine) :
- Import : l'administrateur choisit les fichiers avec le Google Picker (multi-sélection) → MediaAsset dans Studeia
- Export : MediaAsset → Drive (fichiers créés par l'app)
- Backup : snapshot complet des MediaAssets dans un dossier Drive
Avec
drive.file, l'app ne découvre pas automatiquement les nouveaux fichiers externes d'un dossier. La synchronisation bidirectionnelle automatique de dossier n'existe donc que pour OneDrive (Microsoft Files.ReadWrite.All) ; sur Google, importez via le Picker quand il y a du nouveau matériel. Le cron/api/cron/drive-synccouvre la sync de dossier OneDrive et l'export sur Google.
3. Google Calendar (cours en direct)
Configuration : même OAuth Client, activer Calendar API.
Fonctionnalités :
- Lorsqu'un administrateur crée un LiveClass dans Studeia → un événement Calendar est créé pour tous les élèves de la classe
- Modification de l'horaire → mise à jour de l'événement Calendar
- Annulation → suppression de l'événement
- L'élève voit le cours dans son Google Calendar sur mobile (notifications natives)
4. Google Meet (fournisseur vidéo)
Configuration :
- Google Cloud Console > APIs > Activer Calendar API + Meet REST API v2
- OAuth 2.0 Client (le même que précédemment)
- Studeia > Settings > Video Provider > Google Meet > Connect
- Flux de consentement administrateur
Fonctionnement :
- LiveClass créé avec videoProvider=google_meet
- Studeia crée un événement Calendar avec conferenceData (génère automatiquement le lien Meet)
- L'élève rejoint via joinMethod=external (nouvel onglet, ouvre l'application/le site Meet)
Limitation : endMeeting non pris en charge via API — l'adaptateur marque la session comme terminée localement. Limitation : l'enregistrement/la transcription doit être lancé manuellement par l'hôte (Google n'expose pas d'API pour démarrer l'enregistrement automatiquement).
Configuration complète (30 minutes)
| Étape | Durée |
|---|---|
| 1. Activer les 4 APIs dans Google Cloud Console | 5 min |
| 2. Créer un OAuth 2.0 Client (web app) | 3 min |
| 3. Configurer le SSO dans Studeia | 5 min |
| 4. Connecter Drive + Calendar + Meet dans Studeia | 10 min |
| 5. Valider avec 1 utilisateur test | 5 min |
| 6. Informer les enseignants/élèves | 2 min |
Dépannage
Erreur « Token expired »
Les tokens OAuth Google expirent toutes les heures. Studeia stocke le refreshToken et le renouvelle automatiquement. Si l'erreur persiste : ré-autoriser via Settings > Integrations > Disconnect + Reconnect.
Synchronisation Drive lente
L'API Drive a des quotas (1 000 req/100s/utilisateur). Pour plus de 5 000 fichiers par heure, envisagez :
- De filtrer des dossiers spécifiques (pas la racine entière)
- D'augmenter l'intervalle du cron (ex. : toutes les 2h au lieu de 30 min)
Meet sans bouton « Enregistrer »
Seul l'hôte (organisateur de la réunion) peut lancer l'enregistrement. Studeia définit organizer = enseignant configuré. Si un autre utilisateur a lancé la réunion : Meet bloque l'enregistrement.
Considérations RGPD
- Tokens OAuth chiffrés AES-256-GCM (règle critique 15)
- OAuth state HMAC-SHA256 + nonce Redis 15 min (anti-replay)
- La synchronisation Drive respecte les scopes minimaux (drive.file recommandé vs drive complet)