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

Problemi check codice ipa per Metadata Service Provider Pubblico #156

Closed
sil-vio opened this issue Jan 27, 2023 · 8 comments
Closed

Problemi check codice ipa per Metadata Service Provider Pubblico #156

sil-vio opened this issue Jan 27, 2023 · 8 comments
Assignees
Labels
enhancement New feature or request

Comments

@sil-vio
Copy link

sil-vio commented Jan 27, 2023

Buongiorno,

dobbiamo sviluppare un Service Provider Pubblico per l'ente "Cassa Nazionale di Previdenza e Assistenza Forense" censito su IPA con tipologia "Enti Nazionali di Previdenza ed Assistenza Sociale in Conto Economico Consolidato"
e con categoria "Enti di Previdenza ed Assistenza Sociale in Conto Economico Consolidato privati" (pagina dettaglio ipa).

Incontriamo delle difficoltà nella validazione del metadato da noi generato, in particolare non viene superato il check strict di produzione "test 80" che verifica la validità del codice IPA all'interno del metadata.
Questo test otteniamo come messaggio di errore "The IPACode element MUST have a valid value present on IPA". Tutti gli altri controlli vengono superati con successo.

Di seguito l'estratto del metadata di tipo Service Provider Pubblico da noi generato in cui è presente il codice IPA dell'ente:


<md:Extensions>
    <spid:IPACode>cnpaf_0</spid:IPACode>
    ...
</md:Extensions>

Da quello che abbiamo visto sembra che in validazione dl codice IPA dell'ente venga fatto una chiamata verso i servizi esposti dall'indice IPA effettuando la ricerca delle AOO per codice Ente. Questo servizio però non restituisce nessuna AOO in quanto gli Enti con categoria "Enti di Previdenza ed Assistenza Sociale in Conto Economico Consolidato privati" per normativa non possono censire le AOO su IPA, come descritto dal seguente spaccato di documentazione IPA che potete trovare su IpaPortale nella sezione Varie nel documento Categorie Enti.

Avevamo aperto una segnalazione sul progetto italia/spid-saml-check (italia/spid-saml-check#240) ma ci è stato indicato di aprire una issue in questo progetto dato che spid-saml-check utilizza questo progetto per la validazione dei metadata.

Grazie

@peppelinux
Copy link
Member

Ciao @sil-vio

mi sembra di capire che questa singolarità possa essere risolta in revisione durante l'operazione di onboarding, ti chiedo di sottomettere l'onboarding e di scrivere a spid.tech@agid.gov.it di questa problematica e di mettermi in cc (giuseppe.demarco@teamdigitale.governo.it)

capiremo insieme ai colleghi della AgID come trovare un workaround per questo tipo di caso

@peppelinux
Copy link
Member

Ad oggi la soluzione sarebbe quella di modificare il validatore del codice IPA per interrogare una risorsa di indicepa.gov.it che purtroppo ad oggi risulta essere protetta da un codice di autorizzazione

questo implicherebbe che gli utenti che dovessero avere bisogno di questa risorsa protetta dovrebbero registrarsi ed includere l'id di autorizzazione nella chiamata di spid-sp-test, questo rende la configurazione più complessa

ti tengo aggiornato, spero di raggiungerei colleghi della AgID per fare una valutazione sui dati che potrebbero essere aperti ed accessibili senza alcuna forma di autentica

@peppelinux peppelinux self-assigned this Jan 29, 2023
@peppelinux peppelinux added the enhancement New feature or request label Jan 29, 2023
@sil-vio
Copy link
Author

sil-vio commented Jan 30, 2023

Ciao @peppelinux

grazie per la rapida risposta.

Forse una possibile chiamata potrebbe essere quella utilizzata in questa pagina https://www.indicepa.gov.it/ipa-portale/consultazione/indirizzo-sede/ricerca-ente.

E' possibile invocare il servizio tramite curl senza nessuna autenticazione:

curl 'https://www.indicepa.gov.it/PortaleServices/api/ente/ricerca'   -H 'Accept: application/json, text/plain, */*'   -H  'Content-Type: application/json'  
--data-raw  
'{
   "paginazione":{
      "campoOrdinamento":"idEnte",
      "tipoOrdinamento":"asc",
      "paginaRichiesta":1,
      "numTotalePagine":null,
      "numeroRigheTotali":null,
      "paginaCorrente":null,
      "righePerPagina":null
   },
   "codiceFiscaleRicerca":null,
   "area":null,
   "denominazione":null,
   "codEnte":"cnpaf_0",
   "idTipoServizioDigitale":null,
   "lingueMinoritarie":null,
   "codiceCategoria":null
}'

Risposta:

{
  "errore": false,
  "risposta": {
    "listaResponse": [
      {
        "idEnte": 2577,
        "codEnte": "cnpaf_0",
        "codiceCategria": null,
        "denominazioneEnte": "Cassa Nazionale di Previdenza e Assistenza Forense",
        "codiceFiscalePG": "80027390584",
        "codiceFiscalePF": null,
        "indirizzo": null,
        "descrizioneToponimo": null,
        "strada": "Via Ennio Quirino Visconti, 8",
        "siglaAutomobilistica": "RM",
        "denominazioneComune": "Roma",
        "area": "Via Ennio Quirino Visconti, 8 - Roma (RM)",
        "tipologiaServizio": null,
        "descrizioneServizio": null,
        "urlServizio": null,
        "numAoo": 0,
        "numOu": 7
      }
    ],
    "paginazione": {
      "campoOrdinamento": "idEnte",
      "tipoOrdinamento": "asc",
      "paginaRichiesta": null,
      "numeroRigheTotali": 1,
      "righePerPagina": 30,
      "paginaCorrente": 1,
      "numTotalePagine": 1
    }
  },
  "descrizioneErrore": null,
  "dettagliErrori": null
}

@peppelinux
Copy link
Member

Mi sembra una buona soluzione, giro ai colleghi della AgID per validarla e con il loro ok farò la modifica al codice

@peppelinux
Copy link
Member

FYI la funzione in python che fa questa query la trovi qui
https://github.com/italia/spid-sp-test/blob/main/src/spid_sp_test/indicepa.py

questa modifica presenta un basso effort dal punto di vista tecnico, dobbiamo solo cambiare l'URL e mappare eventualmente la response

Grazie di cuore per il contributo, spero di poterlo adottare al più presto nella prossima release

@sil-vio
Copy link
Author

sil-vio commented Jan 31, 2023

Si mi torna, avevo indagato un po' nel codice e mi torna con quello che mi dici.
Credo basti cambiare la url e la request, il json path della response su cui fare il controllo mi sembra lo stesso:

res["risposta"]["paginazione"]["numeroRigheTotali"]

In caso dimmi che possiamo fare anche un pull request con la modifica, hai già una data per la prossima release?

@peppelinux
Copy link
Member

Devo attendere un riscontro della AgID per capire se la risorsa che hai proposto è stabile e sarà mantenuta nel tempo

@peppelinux
Copy link
Member

Risolto da #158

peppelinux pushed a commit that referenced this issue Feb 16, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants