Buongiorno a tutti,
nell’ottica di offrire al cittadino servizi digitali su app native (iOS e Android) basate su servizi API Rest, vorrei capire come poter utilizzare al meglio SPID in questo contesto.
Supponiamo il seguente semplice scenario: si vuole costruire una app mobile che, dopo l’autenticazione del cittadino, fornisca l’elenco dei referti medici disponibili per il download. La funzione di business è implementata come un’API rest (ad esempio risponde a https://www.il-mio-sito.it/il_mio_codice_fiscale/referti) che risponde con l’elenco dei refeti solo se l’utente risulta autenticato su SPID.
Come possiamo implementare tale pattern?
OpenID consentirebbe l’implementazione ma da quanto sono riuscito a capire SPID è configurato come web sso e quindi l’unica possibilità ad oggi utilizzabile è l’uso di una webview. Esiste una configurazione senza OpenID? Quando prevedete di rilasciare OpenID su SPID?
Nei due repository https://github.com/italia/spid-ios-sdk e https://github.com/italia/spid-android-sdk è in corso del lavoro per implementare delle SDK che facilitano l’integrazione di SPID/SAML in app mobile (i repository sono al momento vuoti ma se guardate le Pull Request trovate del codice utile).
Per OpenID non esistono date previste di rilascio, e sicuramente faciliterebbe l’integrazione in un contesto mobile.
L’unica soluzione pulita per usare SPID/SAML in una app mobile richiede 1) l’apertura di una webview e 2) l’uso di un backend su cui mettere l’Assertion Consumer Service (può essere ad esempio https://www.il-mio-sito.it/samlsso). La sessione verrà quindi creata lato backend e poi propagata in qualche modo alla app.
@MarcoB se vuoi un esempio di flusso di login SPID basato su webview, qui trovi un esempio di flusso.
Essenzialmente devi aprire una webview che gestisce il flusso di autenticazione (tramite un backend di appoggio che interagisce con Shibboleth). Al completamento del login, all’interno dell’app devi intercettare l’url di destinazione che avevi passato all’inizio del flusso SPID. A quel punto Shibboleth passerà gli attributi dell’utente al backend sotto forma di header HTTP, e il backend potrà passarli all’app (tramite un API custom).
Avremmo l’esigenza di sviluppare e rilasciare un’app nativa per i cittadini entro l’estate 2018. Entro Giugno 2018 tutti gli Idp si saranno adeguati ad OpenID Connect? Gli ambienti di sviluppo quando saranno disponibili?
Ciao Marco,
dal momento che verranno rilasciate le linee guida entro poco tempo anche l’ambiente di sviluppo sarà allineato e sarà possibile testare OpenID Connect. L’obiettivo è entro l’estate 2018 la disponibilità presso gli IDP. Entro aprile la disponibilità sull’ambiente di test.
Ciao @Enrico,
prevedo l’uscita delle linee guida in draft pubblica entro la prima quindicina di marzo e con la possibilità di portare contributi. Entro febbraio, per trasparenza, verranno rilasciate per consultazione e contributi con un gruppo ristretto di Service Provider.
Entro la prima quindicina di aprile sarà rilasciato OpenId Connect sull’ambiente di test.
Salve…scusate se mi intrometto sono uno sviluppatore junior iOS e stavo guardando link su github per poter scaricare la versione ios per poterla testare e vedere come funziona ma credo che non sia molto aggiornata come versione. Ho notato che è scritta in ObjC o sbaglio? c’è una versione più aggiornata?
grazie mille
riferimento al project che ho scaricate lo trovate qui