Autenticazione CIE su iOS device

Sono uno sviluppatore di APP, per le quali dovrei consentire diverse modalità di login, tra le quali CIE.
Su richiesta di Apple, per far approvare le mie APP non posso gestire l’autenticazione su browser esterno ma sono obbligata ad utilizzare una WKWebView oppure un SFSafariViewController. Purtroppo queste due possibilità non consentono di terminare correttamente l’autenticazione: l’utilizzo della WKWebView risponde subito con il messaggio “L’app Cie ID non supporta il tuo browser”, mentre l’utilizzo di SFSafariViewController mi consente di completare la procedura di autenticazione passando appunto dall’App Cie ID (dopo aver appoggiato la carta mi dice “Autenticazione eseguita con successo”) ma la pagina su cui si viene successivamente redirezionati dice “Non è possibile procedere. La sessione non è più valida. E’ necessario eseguire una nuova autenticazione.” Sembra che, anzichè tornare al browser che ha aperto Cie ID, venga aperta una nuova pagina su browser che, giustamente, non ha alcun dato della sessione “chiamante”.
Pensate che possa essere corretta questa anomalia con SFSafariViewController?

2 Mi Piace

Ciao Irene, forse questo potrebbe fare al caso tuo…
https://github.com/italia/cieid-ios-sdk

Grazie, l’sdk l’avevo visto, ma purtroppo è una soluzione che non ho la possibilità di utilizzare.

Riscontro lo stesso problema in una App flutter che usa App auth per l’autenticazione. Su Android invece funziona senza problemi. Avete qualche riscontro?

1 Mi Piace

Buongiorno @Eros,

si riscontra la stessa anomalia, segnalata da @Irene_Muscella, di terminazione non corretta nel flusso di autenticazione su ios con app CIE.
Ci sono aggiornamenti a riguardo nella correzione di questa anomalia?

Grazie

hai trovato qualche soluzione per integrare Cie con Flutter?

Buongiorno a tutti,

abbiamo un progetto react native che effettua l’autenticazione anche con CIE.

In maniera apparentemente casuale il processo di autenticazione fallisce quando viene utilizzata l’applicazione CieID:

completata l’interazione tra CieID e l’Identity Provider CIE, all’apertura della pagina del browser (Safari e/o Chrome) si viene reindirizzati su una pagina generica di errore anziché sulla pagina di gestione del consenso dei dati dell’utente, che dovrebbe successivamente riportare all’applicazione da noi sviluppata.

Più precisamente il flusso di autenticazione è il seguente:

  • Dall’applicazione react native premendo il bottone “Accedi” (tramite la libreria react-native-app-auth GitHub - FormidableLabs/react-native-app-auth: React native bridge for AppAuth - an SDK for communicating with OAuth2 providers che utilizza SFAuthenticationSession e SFSafariViewController) si apre il browser utilizzando SFSafariViewController e si atterra sulla pagina di scelta dell’Identity Provider (ad es. un accreditato di SPID o CIE) fornita dal nostro Identity Server.

  • Premendo sul bottone “Entra con CIE” (sempre all’interno del SFSafariViewController) si atterra sulla pagina idserver.servizicie.interno.gov.it che permette la scelta del metodo di autenticazione.

  • Scegliendo Entra con l’app CieID si apre l’applicazione CieID installata sul proprio device e si esegue l’autenticazione. Andata a buon fine l’autenticazione, l’app CieID apre il browser di default impostato dall’utente su iOS anziché riportare il controllo alla pagina aperta dal SFSafariViewController (all’interno della nostra app).

  • A questo punto il browser dovrebbe visualizzare la pagina di gestione del consenso dei dati dell’utente:

  • Nei casi in cui il processo non va a buon fine viene visualizzata nel browser di default una pagina di errore fornita da idserver.servizicie.interno.gov.it;

  • Nei casi in cui il processo va a buon fine, viene visualizzata nel browser di default, la pagina di gestione dei consensi e successivamente passato il controllo all’app chiamante.

Qualcuno di voi ha poi risolto questa problematica simile a quella riscontrata nella discussione?

Grazie mille!