REGIONE TOSCANA ARPA - INTEGRAZIONE CIE - Linee Guida - ambito mobile

Pagina creata da Rachele Gargiulo
 
CONTINUA A LEGGERE
REGIONE TOSCANA

ARPA – INTEGRAZIONE CIE

Linee Guida – ambito mobile
ARPA – INTEGRAZIONE CIE

Controllo del Documento

 Numero di Versione          1.0
 Data del Documento          12/04/2021
 Autori                      Redatto da       Francesco Fornasari, Giuseppe Graziano (TAI)
                             Revisionato da   Grazia Ugolini (Regione Toscana)
                             Approvato da
 Stato                       Pubblicato

Storia del documento

         Versione            Data                            Descrizione
           1.0            12/04/2021                       Prima Versione

                                                                                             2
ARPA – INTEGRAZIONE CIE

Indice del documento

1.    Introduzione           4
2.    Integrazione in ARPA   5
3.    Progetti di esempio    8

                             3
ARPA – INTEGRAZIONE CIE

1. Introduzione
Il sistema di autenticazione ed autorizzazione ARPA, implementato da Regione Toscana accetta tutti gli
strumenti di autenticazione a norma, ossia SPID, Carta d’identità Elettronica (CIE) e CNS.

Il documento fornisce delle linee guida per facilitare l’integrazione della modalità di autenticazione tramite
CIE, in un applicativo progettato per dispositivi mobili , utilizzabile sia in ambito con hardware NFC abilitato.

L’utilizzo della CIE prevede l’installazione sui dispositivi finali compatibili di un runtime1 ad-hoc (distribuito
tramite l’app CIE ID) realizzato dal Ministero dell’Interno, Istituto Poligrafico e Zecca dello Stato. Questo
runtime permette il corretto colloquio tra la CIE ed il dispositivo finale. Si prevede che il lettore abbia
conoscenza pregressa in questo ambito, fuori dallo scopo del presente documento.

L’app CIE ID può essere utilizzata su tutti gli smartphone Android versione 6 (Marshmallow) o successiva,
dotati di interfaccia NFC e su tutti gli iPhone 7 o successivi, dotati di iOS 13 o superiore.

1
    https://www.cartaidentita.interno.gov.it/identificazione-digitale/software-cie/

                                                                                                                4
ARPA – INTEGRAZIONE CIE

2. Integrazione in ARPA
L’accesso a risorse protette è mediato dal corretto riconoscimento dell’utente finale che tramite il sistema
ARPA può usare la propria CIE per l’autenticazione. All’utente dovrà essere messo a disposizione attraverso
un’apposita sezione di autenticazione nell’app il bottone “Entra con CIE”, la cui presentazione grafica dovrà
essere seguire lo standard e le linee guida AgID. Maggiori informazioni sono reperibili al seguente link.

                                  Figura 1: Rappresentazione bottone in standard AgID

Il flusso di autenticazione rientra nello standard Oauth2 e non è oggetto di questo documento. Per tutti i
dettagli sulle modalità di integrazione si rimanda al documento “Linee guida per l'integrazione di applicazioni
nella infrastruttura di Autenticazione di Regione Toscana su standard OAuth2.pdf”.

Una volta predisposto il flusso di autenticazione e ottenute le credenziali client è possibile procedere con
l’integrazione CIE.

I passi logici previsti a partire dal click sul bottone presente nella APP sono:

    •   Apertura di un browser esterno (a carico di APP), necessariamente o Google Chrome o Apple Safari.
    •   Controllo e conseguente apertura della app CIE ID da parte del sistema operativo mobile.
    •   Autenticazione utente su app CIE ID mediante inserimento del PIN.
    •   Browser web con uri popolata con il code di autenticazione redirect verso URL APP.
    •   APP intercetta redirect url ed estrae il parametro code utile per completare l’autenticazione secondo
        il flusso OAUTH.

Al click sul bottone “Entra con CIE” da integrare nativamente nell’app sarà necessario aprire sul browser
embedded esterno la seguente url (Google Chrome per Android e Safari per iOS):

 https://accessosicuro.rete.toscana.it/opensso/SpidAccess?idpEntityId=https://idserver.servizicie.interno.
 gov.it/idp/profile/SAML2/POST/SSO&minRequiredAuthLevel=2&goToUrl=AUTH_GO_TO_URL

                                          Tabella 1: URL – Autenticazione CIE

Il parametro dell’url AUTH_GO_TO_URL dovrà essere popolato con l’url costruita per l’autenticazione auth.
Ad esempio con valori:

    •   Client_id: test_cie_client
    •   Redirect_uri = https://cie.my-app://callback
    •   Scope = profile, rtroles

L’AUTH_GO_TO_URL diventa di conseguenza:

                                                                                                             5
ARPA – INTEGRAZIONE CIE

https://accessosicuro.rete.toscana.it/auth/realms/arpa/protocol/openid-
connect/auth?response_type=code&client_id=test-cie-client&redirect_uri=https://cie.my-
app://callback&scope=profile%20rtroles

                         Tabella 2: Esempio di costruzione parametro AUTH_GO_TO_URL

                                                                                         6
ARPA – INTEGRAZIONE CIE

Attenzione che per essere inserita come parametro, sarà necessario effettuare l’URL encoding del valore di
AUTH_GO_TO_URL:

 https%3A%2F%2Faccessosicuro.rete.toscana.it%2Fauth%2Frealms%2Farpa%2Fprotocol%2Fopenid-
 connect%2Fauth%3Fresponse_type%3Dcode%26client_id%3Dtest-cie-
 client%26redirect_uri%3Dhttps%3A%2F%2Fcie.my-
 app%3A%2F%2Fcallback%26scope%3Dprofile%2520rtroles

                                               Tabella 3: Url Encoding

L’url finale da aprire sul browser web al click sul bottone “Entra con CIE” diventerà quindi:

 https://accessosicuro.rete.toscana.it/opensso/SpidAccess?idpEntityId=https://idserver.servizicie.interno.
 gov.it/idp/profile/SAML2/POST/SSO&minRequiredAuthLevel=2&goToUrl=https%3A%2F%2Faccessosicur
 o.rete.toscana.it%2Fauth%2Frealms%2Farpa%2Fprotocol%2Fopenid-
 connect%2Fauth%3Fresponse_type%3Dcode%26client_id%3Dtest-cie-
 client%26redirect_uri%3Dhttps%3A%2F%2Fcie.my-
 app%3A%2F%2Fcallback%26scope%3Dprofile%2520rtroles

                                 Tabella 4: Esempio di URL finale – Autenticazione CIE

All’apertura di questa url nel browser web esterno, da parte del sistema operativo mobile, verrà controllata
la presenza dell’app CIE ID e questa verrà aperta per proseguire l’autenticazione dell’utente.

Una volta terminata l’autenticazione sull’app CIE ID si verrà reindirizzati di nuovo sul browser web che dopo
alcune operazioni di autenticazione reindirizzerà l’utente alla redirect_uri con il parametro code popolato
per proseguire con il flusso di autenticazione.

A questo punto, sarà necessario associare la redirect_uri come URL SCHEMA dell’applicazione che si sta
sviluppando, in modo tale da poter aprire in automatico l’applicazione quando sul browser web viene
invocata questa url.

L’app quindi potrà intercettare l’apertura del redirect url ed estrarre il parametro code utile per completare
l’autenticazione.

Su Android e iOS le modalità di registrare l’URL custom sono differenti e hanno nomi diversi:

    •   Android Deep Link: https://developer.android.com/training/app-links/deep-linking
    •   iOS Custom URL SCHEME:
        https://developer.apple.com/documentation/xcode/allowing_apps_and_websites_to_link_to_your
        _content/defining_a_custom_url_scheme_for_your_app

                                                                                                             7
ARPA – INTEGRAZIONE CIE

3. Progetti di esempio
Su OSCAT agli indirizzi:

    •   arpa-demo-cie-android:        https://oscat.rete.toscana.it/anonscm/git/arpaoauth/arpa-demo-cie-
        android.git
    •   arpa-demo-cie-ios: https://oscat.rete.toscana.it/anonscm/git/arpaoauth/arpa-demo-cie-ios.git

sono stati resi disponibili progetti di esempio per le piattaforme mobile Android e iOS rispettivamente. Tali
progetti sono da considerarsi a puro titolo esemplificativo e di aiuto nell’integrazione come dimostratore di
fattibilità.

                                                                                                           8
Puoi anche leggere