Sintesi
Negli ultimi mesi, i partner edX e i membri della comunità Open edX hanno progettato e implementato nuove funzionalità di accesso che consentono agli studenti di utilizzare le credenziali del proprio campus per accedere ai corsi edX. Simile al modo in cui edX attualmente supporta l'accesso con Google o Facebook, gli studenti degli istituti partecipanti possono autenticarsi in edX utilizzando il provider di identità della loro scuola. Inoltre, le istituzioni possono scegliere di condividere i dati con edX per fornire un'esperienza più personalizzata, come nome e cognome per popolare automaticamente i profili edX degli studenti o identificatori univoci degli studenti per creare un supporto successivo per la sincronizzazione dell'elenco o del voto.
La caratteristica
Quando gli studenti visitano l'ambiente edX Edge, verrà loro presentata la possibilità di accedere utilizzando le credenziali dell'istituto o del campus. Gli studenti potranno anche accedere a questo metodo di accesso alternativo quando si avviano dai loro sistemi di campus online o visitando il sito tramite uno speciale link di invito che i team del corso possono inviare via email.

Quando gli studenti accedono direttamente a edge.edx.org, per prima cosa scelgono "usa le credenziali del mio istituto/campus".

Quindi, vengono collegati alla pagina di accesso del loro istituto.

Quando gli studenti sono invitati a iscriversi a un corso, vengono indirizzati direttamente a questa pagina di accesso. Se gli studenti seguono un collegamento da un sistema del campus, possono essere immediatamente registrati, gli viene chiesto di accedere con le credenziali di quel campus o viene mostrata la normale pagina di accesso. Il comportamento dipende da come è stato costruito il collegamento, se lo studente ha effettuato l'accesso in precedenza, se lo studente ha effettuato o meno l'accesso al sistema del campus e come è configurata l'integrazione.
In tutti i casi, tuttavia, dopo aver fornito le credenziali appropriate (a seconda dei requisiti della loro particolare istituzione), gli studenti vengono automaticamente reindirizzati alla risorsa edX richiesta. Quando gli studenti accedono per la prima volta, viene loro chiesto di inserire alcuni dettagli dell'account aggiuntivi (ad esempio, nome e indirizzo e-mail). Queste informazioni vengono utilizzate per associare l'identità basata sull'account dello studente con la sua identità edX. Lo studente non ha bisogno di eseguire nuovamente questa azione a meno che non scolleghi gli account.
La tecnologia
Questa funzione utilizza SAML 2.0 (Security Assertion Markup Language, versione 2.0), che fornisce un mezzo standardizzato per lo scambio di dati di autenticazione e autorizzazione tra le parti. In uno scambio SAML, il provider di identità afferma in modo sicuro l'identità e i diritti di accesso di un utente finale a un provider di servizi e consente quindi all'utente di accedere alle risorse specificate. In questo caso, il provider di identità è uno qualsiasi dei servizi di accesso istituzionali attualmente implementati e il provider di servizi è edX. Una volta completata l'autenticazione, lo studente ottiene l'accesso a qualsiasi risorsa disponibile su edge.edx.org, a condizione che sia iscritto al corso associato a quella risorsa.
Poiché è stato creato con SAML, il nuovo servizio di accesso è completamente compatibile con parola d'ordine, un'implementazione open source del protocollo SAML ampiamente utilizzata dagli istituti di istruzione superiore. In un sondaggio tra i membri del nostro gruppo di lavoro, abbiamo rapidamente scoperto che tutti avevano almeno una parte della loro base di studenti su Shibboleth e alcune istituzioni hanno tutti i loro utenti in singoli negozi di identità basati su Shibboleth. Nella nostra versione iniziale, stiamo configurando edX Edge per supportare gli accessi Shibboleth; nelle versioni successive, prevediamo di espandere il supporto ad altri provider di identità conformi a SAML2, in base alla domanda.
Questa funzione si basa sul nostro implementazione dell'autenticazione di terze parti esistente, contribuito nel 2014 da John Cox di Google. Si avvale anche del Funzionalità del modello di configurazione, implementato da Cale Pennington di edX, che fornisce una soluzione di "configurazione tramite database" per Django.
Abbiamo anche fatto molto affidamento sul lavoro di altri due progetti open source: Autenticazione sociale Python e Python saml. Entrambi i team di progetto sono stati molto reattivi e questa collaborazione tra tre progetti open source è degna di nota. Braden MacDonald, lo sviluppatore principale, ha apportato modifiche che sono state aggiunte supporto per SAML a Python Social Auth, oltre ad aggiungere funzionalità di cui avevamo bisogno per Python-saml. I revisori a monte hanno fatto uno sforzo per rivedere e incorporare i contributi in modo tempestivo, garantendo un rilascio puntuale della funzione a fine giugno. Invece di eseguire il fork del codice e apportare queste modifiche solo per edX, l'intera comunità Python può ora beneficiare di questo lavoro.
Questi progetti ci hanno permesso di sfruttare l'ampio corpo di lavoro esistente e di concentrarci sulle caratteristiche di integrazione uniche di cui avevamo bisogno per la piattaforma Open edX, riducendo così notevolmente i tempi di sviluppo complessivi.
Come funziona
Il progetto di autenticazione di terze parti è nato dalle esigenze identificate nell'edX Campus Applications Working Group, che si riunisce per affrontare le sfide dell'integrazione del campus. Il gruppo è stato fondato con il principio che tutti i membri avrebbero contribuito al processo con uno dei seguenti:
- Capitale di pensiero sotto forma di partecipazione a discussioni e revisione di documenti, in particolare per far emergere diversi casi d'uso per soddisfare un'ampia gamma di esigenze.
- Sviluppo di applicazioni sotto forma di contributi alla base di codice Open edX.
- Validazione sotto forma di test delle soluzioni sviluppate dai suoi membri.
Per supportare il gruppo di lavoro e tutti i progetti risultanti - che attualmente includono questo progetto di autenticazione e un progetto per supportare edX come fornitore di strumenti LTI - edX fornisce supporto continuo allo sviluppo del prodotto, creando una struttura per il coinvolgimento, guidando le decisioni sull'architettura e, in ultima analisi, valutando soluzioni per l'inclusione nella piattaforma Open edX.
Cosa c'è di nuovo?
Oggi, questa funzionalità è distribuita su edge.edx.org ed è utilizzata da un partner, l'Università della British Columbia. Stiamo lavorando con altri partner per testare e distribuire la soluzione per i loro studenti. In futuro, speriamo di estendere le capacità nei seguenti modi interessanti:
- Crea un meccanismo per le scuole partner con forti restrizioni sulla privacy per trasmettere il loro ID studente opaco e recuperare l'ID utente edX, a fini di analisi e integrazione.
- Integra con le federazioni Shibboleth come InCommon, in modo che gli studenti di quasi tutte le università statunitensi possano utilizzare SSO.
- Personalizza l'esperienza di accesso con il branding dei partner.
Se qualcuno nella comunità di Open edX è interessato a lavorare su queste funzionalità, per favore contattare il team edX Open Source.
Grazie!
Un ringraziamento speciale va al nostro team di progetto SSO:
Saverio Antoviaque, OpenCraft
Braden MacDonald, OpenCraft (sviluppatore principale)
Derek White, UBC
Pan Luo, UBC
William Ono, UBC
Brian Talbot, edX
Frances Botsford, edX
Per favore non esitate a entrare in contatto con me per ulteriori informazioni sul progetto, o controlla la fonte su GitHub (https://github.com/edx/edx-platform/tree/master/common/djangoapps/third_party_auth).
![]()