Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Supporto oltre a Apple/Google #1718

Open
giupardeb opened this issue Apr 22, 2020 · 26 comments
Open

Supporto oltre a Apple/Google #1718

giupardeb opened this issue Apr 22, 2020 · 26 comments

Comments

@giupardeb
Copy link

Sarebbe molto utile permettere di scaricare l'applicazione da https://f-droid.org

@strk
Copy link

strk commented Jul 6, 2020

Bisogna inserire un ticket qui: https://gitlab.com/fdroid/rfp/-/issues

@giupardeb
Copy link
Author

giupardeb commented Nov 15, 2020

@strk potrei pensarci io..mi servirebbe capire se i mainteiner mi danno "l'autorizzazione" a procedere. Inoltre dovremmo essere compatibili con le inclusion policy (No firebase, no google play-services..etc..)

@strk
Copy link

strk commented Nov 15, 2020

@giupardeb: leggendo la licenza si direbbe tu non abbia bisogno di autorizzazioni.
https://github.com/pagopa/io-app/blob/master/LICENSE

The Licensor hereby grants You a worldwide, royalty-free, non-exclusive,
sublicensable licence to do the following, for the duration of copyright
vested in the Original Work:
— distribute the Work or copies thereof,

Vedi https://github.com/pagopa/io-app/blob/master/LICENSE#L59

@giupardeb
Copy link
Author

bene, mi era sfuggita quella frase..la cosa importante da fare a questo punto è creare una fork ed iniziare ad eliminare firebase e i playservices

@Rubo3
Copy link

Rubo3 commented Jun 22, 2021

È più stato fatto qualcosa?

@giupardeb
Copy link
Author

Beh ho provato a fare qualcosa...ma non avendo molta esperienza in firebase..ho avuto qualche problema all'inizio..poi purtroppo non ho avuto più il modo di lavorarci.

@Enrico204
Copy link

Io volevo darci un'occhiata e provare a fare una versione senza Firebase, da pubblicare su F-Droid. La domanda, più che sul codice della app, è se la nuova "app" sarà o no autorizzata a chiamare le API del backend. Non so se @Undermaken o qualche altro developer può fare da tramite per questo

@Undermaken
Copy link
Contributor

Undermaken commented Jul 4, 2021

Ciao @Enrico204, l'app non ha alcun meccanismo di HMAC o certificate pinning per cui il mittente della richiesta venga discriminato. Una volta ottenuto il token di sessione attraverso la login SPID o CIE ogni richiesta HTTP, con header Authentication impostato con il token di sessione, è valida.

Piuttosto, lato nostro, dovremmo fare in modo di inoltrare la notifica verso altri providers che non siano solo Firebase e APNS (es Onesignal ?!). IO pone le sue fondamenta sugli avvisi (la PA verso il cittadino e non il vice versa), quindi è una caratteristica che dovrebbe essere assicurata quella delle push notifications

[Update] la mia risposta è puramente tecnica. Fare un app clone di IO e distribuirla, è possibile? Questo è un tema di diritti di prodotto, immagino. Non so dire se sia lecito oppure no (@CaraDune thoughts?)

Sicuramente si potrebbe incanalare lo sforzo tra comunity e PagoPa che ne garantisce l'autorità e la bontà dell'artefatto

@Enrico204
Copy link

Enrico204 commented Jul 4, 2021

Si, come avrai intuito dopo l'update, la domanda era principalmente "burocratica". Tecnicamente parlando le cose si possono risolvere (c'è anche microG da valutare, per esempio), ma prima di fare qualsiasi sforzo dobbiamo capire se lato PagoPA è consentito che app di terze parti possano usare lo stesso backend. Senza backend chiaramente non ha senso neanche provare.

Dal punto di vista di licenze per il codice della app, non ci sono problemi alla redistribuzione della app vista la licenza in uso (sebbene il trademark e forse qualche asset siano da cambiare).

Se sarà consentito fare delle richieste al backend da app di terze parti, allora inizierò a metter su un repository e proporre qualche soluzione per i problemi tecnici (notifiche, etc)

@CaraDune
Copy link
Contributor

CaraDune commented Jul 7, 2021

TL;DR: l’App potrebbe essere distribuita in futuro su altri store, ma non da terze parti, solo da PagoPA S.p.A. che ha l’incarico esclusivo per legge di sviluppare, pubblicare e gestire l’App, e condividere la roadmap con la Presidenza del Consiglio dei Ministri. stessa cosa vale per i contributi (preziosissimi) della community, che data la gioventù dell’App sono ancora disorganici, ma abbiamo in programma di implementare una serie di action per razionalizzare e incrementare l’engagement della community, che ci piacerebbe appunto condividere con la community per raccogliere feedback. infatti, al momento siamo già aperti ai contributi e li integriamo regolarmente, ma vorremmo fare di più - per questo servono delle policy e dei ruoli definiti

@Enrico204
Copy link

@CaraDune purtroppo devo correggerti: la App può essere distribuita da terze parti. Lo avete stabilito nella licenza di questo repository (EUPL, e per alcuni asset Apache 2.0 e OFL).

Dunque, dato per assunto che la app è redistribuibile e anche modificabile, la domanda rimane: le API possono essere utilizzate da qualsiasi persona liberamente, o soltanto dalla app distribuita e rilasciata da PagoPA?

@CaraDune
Copy link
Contributor

CaraDune commented Jul 8, 2021

Grazie @Enrico204 per la domanda.
La licenza che abbiamo adoperato permette di per sé di redistribuire e modificare, e dunque prima di tutto di utilizzare il codice prodotto dai nostri team. Abbiamo scelto l’open source perchè per noi è un valore rendere trasparente ai cittadini la logica dei sistemi che creano le loro nuove esperienze digitali.
L’erogazione di servizi attraverso l’uso del codice in questione (e le relative API), se questa è la domanda, è influenzato però da altre condizioni della licenza (ad esempio, non è possibile redistribuire con i nostri marchi) ma soprattutto è necessario avere un mandato istituzionale ed accordi quadro con le PA Italiane.

Speriamo di aver chiarito la tua curiosità

@strk
Copy link

strk commented Jul 8, 2021

Quindi in sostanza l'uso delle API richiede un permesso dalla PA, ho capito bene ? Come si ottiene tale permesso ?

@Enrico204
Copy link

Enrico204 commented Jul 8, 2021

grazie @CaraDune della precisazione. In effetti logo e nome della app (ed eventualmente altri asset) possono essere protetti da diversa licenza, cosa che tuttavia non pregiudica la redistribuzione di un binario compilato dai sorgenti (come nel caso di Firefox, che su F-Droid usa un logo diverso ed il nome "Fennec" per gli stessi motivi).

Dunque, anche io, leggendo il messaggio, sono giunto alla stessa conclusione di @strk che sia necessaria un'autorizzazione per poter utilizzare le API che sta usando la app "Io". E anche io chiedo di conoscere le modalità per questo accreditamento.

Siamo impazienti di capire come possiamo aiutare "Io" a diffondersi anche tra le persone, come me e credo @strk , che usano un sistema libero e non possono legarsi a Google per accedere ai servizi della PA :-)

(ovviamente, la redistribuzione avverrà con un nome e logo diversi, in pieno rispetto delle licenze)

@CaraDune
Copy link
Contributor

CaraDune commented Jul 15, 2021

Grazie a @Enrico204 e @strk per queste domande, anzi saremo contenti se le info che seguono vorrete diffonderle ad altri contributori interessati.

In generale, potete consultare il sito ufficiale del progetto IO io.italia.it per avere un overview - è davvero molto ricco e dovreste trovare tutte le informazioni che vi interessano, in caso contrario fatecelo pure sapere, così che possiamo integrare i contenuti per altre persone che potrebbero avere le stesse vostre domande.

L’intero funzionamento del progetto si trova invece su Docs Italia, dove sono pubblicate le linee guida che stanno per essere adottate da AgID ex 71 CAD, che regoleranno il punto di accesso telematico (di cui l’app IO rappresenta il canale mobile): lì c’è il dettaglio di tutto il processo, i ruoli dei diversi attori coinvolti, gli obiettivi, gli SLA, le misure tecniche, e soprattutto le disposizioni in materia di privacy (a cui teniamo particolarmente).

Sull’uso delle API, come vedrete anche dalle linee guida, essendo pubbliche è consentito a chiunque di effettuare dei test (anche in produzione, utilizzando i vostri CF personali o CF fake che possiamo fornirvi), registrandosi al back office e consultando la documentazione API.

Per esporre servizi su IO, utilizzando le API per conto di pubbliche amministrazioni, invece, uno sviluppatore (in proprio o con la sua società) deve stipulare un accordo con la PA interessata in qualità di partner tecnologico. Questo può essere fatto con gli strumenti legali che la singola PA ha previsto (es. una gara). La singola PA, a sua volta, dovrà (se non l’ha già fatto) aderire a IO firmando l’accordo di adesione (sempre pubblico e aggiornato, lo trovate qui). Per abilitare il partner tecnologico, dovrà nominare con proprio atto la persona fisica che opererà sul backoffice in qualità di Delegato e inserire il suo nominativo e i suoi riferimenti nell’accordo stesso, comunicando a PagoPA qualsiasi variazione via PEC secondo le istruzioni contenute nell’allegato 4 dell’accordo. Solo a seguito di comunicazione formale, infatti, il partner tecnologico può essere abilitato dai nostri admin ad operare in produzione per esporre i servizi che la PA intende offrire su IO.

Si può dire che PagoPA sta considerando la rilevanza del caso d'uso di essere su F-Droid e potrebbe, in futuro, farlo (in virtù del mandato istituzionale conferito per legge).

Speriamo di esservi stati d’aiuto, e grazie ancora per l’interessamento. Abbiamo in programma di coinvolgere la community sempre di più e ci piacerebbe farlo anche con il vostro contributo.

@Enrico204
Copy link

grazie @CaraDune del vostro interessamento a questo ticket!

Sto leggendo con molta attenzione le linee guida che ha indicato, sono molto interessanti.

I "problemi" che io vedo con le linee guida indicate sono questi due:

  • in primis, viene indicata esplicitamente la "App IO" (6.1 primo paragrafo), questo escluderebbe la possibilità per altre persone di creare altre app come "canali di comunicazione"
  • in secondo luogo, viene indicato che, cito testualmente: "Il Punto di accesso telematico si compone di un front-end multicanale; esso DEVE almeno includere una applicazione per dispositivi mobili e tablet (“App IO”) e DOVREBBE includere una versione web." (enfasi aggiunta). Con questa frase non c'è certezza di avere un meccanismo alternativo alla app "IO" per l'accesso ai servizi (qualcosa che non richieda uno smartphone Apple o legato a Google).

Ho anche letto la documentazione delle API e le informazioni sul back-office, e tutto quello che riguarda la partnership tecnologica. Tuttavia sono cose che riguardano l'esporre servizi dentro "IO", mentre qui stiamo parlando di quello che, nella documentazione sopra citata, viene chiamato "Punto di accesso telematico" (ovvero la stessa app "IO").

Le linee guida sopra citate, riguardanti appunto il "Punto di accesso telematico", e la mancanza di un metodo di accesso completamente libero (APK libero disponibile, o sito web) obbligano le persone a legarsi alle due aziende private Google e Apple. Questo non è sempre possibile: ci sono casi documentati 1 2 3 4 in cui le due società, per motivi non comunicati alla persona interessata, hanno deciso di interrompere unilateralmente la fornitura di servizi a privati cittadini, per sempre.

In altre parole, se la app "IO" rimane soltanto sul Google Play Store e sull'Apple App Store, ci sono (e/o ci saranno) cittadini che non potranno accedere alla app per volontà delle due aziende (in gergo, un "lifetime ban").

Visto che le linee guida sono ancora in bozza, e visto che ci sono diversi di noi che si stanno offrendo di collaborare a questa cosa, credo sia molto importante per PagoPA e AgID prendere al volo questa occasione di risolvere il problema tecnico-legale sopra citato che presenterà sicuramente in futuro.

Comprendo che per strutturare un rilascio anche su piattaforme alternative serva del tempo (tecnico e non). Propongo quindi una soluzione: autorizzare l'uso delle API correnti della App "IO" a terze parti fino a quando PagoPA non sarà attrezzata per gestire il rilascio di APK liberamente (su F-Droid e altre parti), così da permettere alla community di creare una versione alternativa di "IO" (ovviamente con diverso logo/nome/etc) per colmare questo gap. La community si occuperà di questo fork (quindi partendo dal codice attuale, e tenendolo allineato) fino a quando PagoPA non sarà pronta a gestire la situazione.

Grazie per il tempo dedicato :-)
Enrico

@ema-pe
Copy link

ema-pe commented Sep 3, 2021

Ciao, ci sono novità?

@pietro909
Copy link
Contributor

Ciao a tutti e grazie ancora per la vostra pazienza.

Per quanto riguarda F-Droid (e altri stores) non siamo ancora in grado di fornire aggiornamenti in merito.
Per tutto il resto (app non ufficiali) rimando alle risposte gia’ date in precedenza.

Procedo a fare un pin di questa discussione.

@pietro909 pietro909 pinned this issue Sep 29, 2021
@pietro909 pietro909 changed the title [Proposta] rendere disponibile io-app sullo store F-droid Supporto oltre a Apple/Google Sep 29, 2021
@scriptavolant
Copy link

Salve a tutti,

vorrei sapere se è previsto un aversione dell'app per KaIOS. Il sistema operativo va diffondendosi soprattutto tra le fasce di popolazione a rischio digital divide. Credo sarebbe una cosa utile averre il supporto per questo sistema operativo per permettere alle persone di accedere ai servizi della PA senza avere telefoni di costo troppo elevato.

@ema-pe
Copy link

ema-pe commented Oct 2, 2021

Ciao @scriptavolant, meglio evitare di andare off-topic visto che qui si parla espressamente di F-Droid. Ho visto che KaiOS non è altro che il continuo di Firefox OS e mi pare che le applicazioni presenti siano basate sulle tecnologie Web, quindi presumo quanto ci sarà un'interfaccia Web a IO sarà più facile fare una versione per KaiOS. Inoltre non sono sicuro di quanto sia diffuso questo OS in Italia (ripeto in Italia, ho visto che è molto più diffuso in altri paesi come l'India).

@fpesari
Copy link

fpesari commented Apr 13, 2022

Salve, a che punto è la versione web? Alcuni servizi (come la Carta Giovani Nazionale) sono erogati esclusivamente tramite IO e non credo sia giusto subordinarne la fruizione al possesso di un account Apple o Google.

@d1nuc0m
Copy link

d1nuc0m commented Apr 21, 2022

Salve, a che punto è la versione web? Alcuni servizi (come la Carta Giovani Nazionale) sono erogati esclusivamente tramite IO e non credo sia giusto subordinarne la fruizione al possesso di un account Apple o Google.

Sottoscrivo, una versione web potrebbe essere una soluzione alternativa al problema dell'accesso senza essere legati a servizi proprietari (e come già evidenziato è prevista come possibilità dalle linee guida, par. 4.2. - Punto di accesso telematico).

Sarebbe anche un aiuto al problema del digital divide evidenziato da @scriptavolant : a quel punto il requisito minimo diventerebbe un browser, utilizzabile anche da un Internet Point.

Tag: @pietro909 @CaraDune

@Zekromaster
Copy link

Zekromaster commented Apr 21, 2022

Un inizio (ma assolutamente non un punto di arrivo) potrebbe essere semplicemente rilasciare l'APK tramite le release di GitHub.

La dipendenza dalle API di Google rimane, ma queste possono essere rimpiazzate da MicroG dall'utente finale stesso (l'utente che usi MicroG, al momento, non ha proprio modo di scaricare l'applicazione).

Ovviamente questo sarebbe solo un punto di inizio per permettere l'utilizzo basilare dell'applicazione a chi non voglia o non possa interfacciarsi con Google nell'uso dell'applicazione. L'ideale, eticamente parlando, sarebbe la possibilità di evitare ogni tecnologia proprietaria se l'utente finale lo desidera, ma visti i potenziali tempi di sviluppo e l'importanza dell'applicazione, nel frattempo un compromesso del genere eviterebbe interminabili attese a chi volesse già da ora usare l'applicazione su dispositivi "degoogled".

@hevelius hevelius unpinned this issue Nov 9, 2022
@spazziale
Copy link

Ciao @Enrico204, l'app non ha alcun meccanismo di HMAC o certificate pinning per cui il mittente della richiesta venga discriminato. Una volta ottenuto il token di sessione attraverso la login SPID o CIE ogni richiesta HTTP, con header Authentication impostato con il token di sessione, è valida.

Piuttosto, lato nostro, dovremmo fare in modo di inoltrare la notifica verso altri providers che non siano solo Firebase e APNS (es Onesignal ?!). IO pone le sue fondamenta sugli avvisi (la PA verso il cittadino e non il vice versa), quindi è una caratteristica che dovrebbe essere assicurata quella delle push notifications

[Update] la mia risposta è puramente tecnica. Fare un app clone di IO e distribuirla, è possibile? Questo è un tema di diritti di prodotto, immagino. Non so dire se sia lecito oppure no (@CaraDune thoughts?)

Sicuramente si potrebbe incanalare lo sforzo tra comunity e PagoPa che ne garantisce l'autorità e la bontà dell'artefatto

Per le push notification esiste unifiedpush ( completamente opensource e self-hostable ) :
https://unifiedpush.org/
Il progetto è maturo al tal punto da essere usato sia da mastodon che matrix.

@paolo-caroni
Copy link

Un inizio (ma assolutamente non un punto di arrivo) potrebbe essere semplicemente rilasciare l'APK tramite le release di GitHub.

La dipendenza dalle API di Google rimane, ma queste possono essere rimpiazzate da MicroG dall'utente finale stesso (l'utente che usi MicroG, al momento, non ha proprio modo di scaricare l'applicazione).

Ovviamente questo sarebbe solo un punto di inizio per permettere l'utilizzo basilare dell'applicazione a chi non voglia o non possa interfacciarsi con Google nell'uso dell'applicazione. L'ideale, eticamente parlando, sarebbe la possibilità di evitare ogni tecnologia proprietaria se l'utente finale lo desidera, ma visti i potenziali tempi di sviluppo e l'importanza dell'applicazione, nel frattempo un compromesso del genere eviterebbe interminabili attese a chi volesse già da ora usare l'applicazione su dispositivi "degoogled".

Sono perfettamente d'accordo, rilasciare i pacchetti ufficiali su github sarebbe un buon inizio.

@scollovati
Copy link

scollovati commented Apr 11, 2023

Vista la recente decisione di transitare, in un prossimo futuro, da SPID a CieID risulta necessario poter anche accedere al codice sorgente di quest'ultima app e valutare se può essere compilata per il rilascio su F-Droid o altri store alternativi.

L'unica discussione che ho trovato in merito è questa Codice sorgente app CieID - CIE - Forum Italia.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Development

No branches or pull requests