Ambiente di test ed integrazione CIE - Keycloak - OIDC

purtroppo non ancora

nulla ancora? stesso problema sul portale, con il tool di validazione CIE per OIDC invece ottengo i codici di errore 1.2.2, 1.2.3, 1.2.4

Ancora nessuna novità.
Io sono sempre fermo alla creazione della “componente tecnica”, con l’errore “elemento [sub] mancante”.
Ho provato più volte a scrivere al supporto tecnico ma ogni volta ricevo sempre la stessa risposta: mi dicono che l’entità non risulta federata (ovvio, ricevo l’errore proprio mentre sto cercando di farlo) e mi invitano a consultare il manuale tecnico.
Ho anche provato a chiedere se non avessere qualche loggata con un errore più specifico ma mi hanno risposto sempre con lo stesso messaggio, evidentemente una risposta “preformattata”.
A questo punto mi chiedo:
1-Esiste una specie di supporto “di secondo livello”?
2-Ma qualcuno è poi riuscito a federarsi con CIE OIDC?

sulla piattaforma Slack trovi qualcuno che effettivamente dice di esserci riuscito, ma difficilmente trovi supporto da loro, ho provato

Chi è riuscito dice anche che libreria ha utilizzato?
Io sto provando con questa:

Magari però non è al momento perfettamente compatibile con la CIE…

non capisco perchè @IPZS-CIE non interviene con qualche aiuto su questo problema :bangbang:

CIao a tutti,
qualcuno è riuscito a capire come si deve fare l’Entity Configuration di un RP? IO sono arrivato allo stesso errore di altri:

LA VALIDAZIONE NON E’ ANDATA A BUON FINE PER I SEGUENTI MOTIVI:[SUB] ELEMENTO MANCANTE”

CON validazione dell’ambiente demo agid corretta. Puo’ essere che sia un errore fuorviante in quanto la piattaforma ancora non funziona bene? IN effetti il campo “sub” da specifiche puo’ trovarsi solo nell’Entity Configuration e nella resolve, e c’è in entrambi!!!
Nell’Entity COnfiguration ci deve essere quello dell’RP, mentre nella resolve quello del soggetto a cui si riferisce la federazione , che dovrebbe essere quello di CIE preproduzione. Ma l’EntityConfiguration di CIE pre prod DOVE SI TROVA??? E quello del Trust Anchor di CIE (per validate la trust chain???). Io ci ho messo i dati della piattaforma di test che agid ha messo a disposizione , ma quelli sono di SPID!

Ciao a tutti,

spero che qualcuno possa dare delle risposte, siamo anche noi nella stessa condizione da mesi e non riusciamo nemmeno a creare la componente tecnica nel portale federazione CIE, nonostante non ci ritorni nessun errore!

C’è qualcuno che è riuscito a implementare un client funzionante e interfacciata con l’ambiente pre-prod di CIE???

Buongiorno, anche io sto avendo problemi con il validatore CIE, stesso errore che stanno riscontrando altre persone ovvero un generico “[sub] Elemento mancante”.
Inoltre non ho ancora capito dove trovo URL di base della TA e dell’OP preproduzione di CIE. Qualcuno ha queste informazioni? Ciao

c’e Qualcuno che e riuscito a fare l’onboarding ?

ci sto provando anche io… ma ottengo l’errore: [sub] Elemento mancante, non credo l’onboarding CIE - OIDC sia già attivo…

anchio lo stesso problema

Ad oggi, anche per noi lo stesso problema.
Ho recentemente scritto al supporto pensando che il problema fosse con il campo “chiave pubblica” in quanto ero sicuro dei valori degli altri due, ma dopo aver letto questo thread, inizio a temere il problema sia con il portale.
Attendo aggiornamenti

Fate presto a fare funzionare bene questa APP di CIE ID

Il sottosegretario Butti preme sull’acceleratore!

@IPZS-CIE

https://lapostadelsindaco.it/servizi-pubblica-amministrazione/36733/

Dopo aver contattato il supporto, mi hanno indicato il formato da utilizzare per il campo chiave pubblica

{
  "keys": [
    {
      "kty": "RSA",
      "e": "AQAB",
      "n": "USCR59VQU2...................",
      "kid": "SIG1",
      "use": "SIG"
    },
    {
      "kty": "RSA",
      "e": "AQAB",
      "n": "JM7QHVHJF.....................",
      "kid": "ENC1",
      "use": "ENC"
    }
  ]
}

Utilizzando questo formato il processo procede, indicandomi altri problemi nel file metadata, ma almeno abbiamo risolto il problema [sub] Elemento mancante.

3 Mi Piace

Ciao,
io il problema [sub] Elemento mancante l’ho risolto generando la chiave pubblica di federazione con una struttura uguale a quella indicata da cfranc0 e avendo l’accortezza di inserire tutto su una unica riga eliminando gli spazi.

1 Mi Piace

Buongiorno,
io ho il problema inverso, nel senso ho risolto il problema del sub con le indicazioni di @cfranc0 ma ora mi ritorna l’errore “L’ENTITA’ NON RISPETTA I REQUISITI DI FEDERAZIONE”.
Potresti spiegarmi meglio la procedura che avevi fatto per risolverlo intervenendo sul sigillo di firma come indicato dal ministero?

Grazie mille

Stefano

Io sono riuscito a registrarmi con successo con le chiavi indicate in precedenza e l’endpoint openid-federationcostruito come segue:

{
	iss: this.clientID,
	sub: this.clientID,
	jwks: { keys: this.getCert() },
	metadata: {
		federation_entity,
		openid_relying_party: {
			application_type: "web",
			client_id: this.clientID,
			client_registration_types: ["automatic"],
			client_name: federation_entity.organization_name,

			redirect_uris: [...],
			grant_types: ["authorization_code", "refresh_token"],
			response_types: ["code"],
			// OpenID keys
			jwks: { keys: this.getCert() },
			jwks_uri,

			id_token_signed_response_alg: "RS256",
			userinfo_signed_response_alg: "RS256",
			userinfo_encrypted_response_alg: "RSA-OAEP",
			userinfo_encrypted_response_enc: "A128CBC-HS256",
			token_endpoint_auth_method: "private_key_jwt",
		},
	},
	authority_hints: ["https://registry.spid.gov.it"],
	trust_marks: [],
}

Utilizzando questo come claim di un JWT firmato con la chiave di signature (quella con use=sig). Nel header del JWT è indicata la keyid e il tipo typ: "entity-statement+jwt".

Ho seguito il thread, ho una domanda un po’ OT.

Premetto - Non sono programmatore per lo sviluppo di questi sistemi, le mie competenze IT sono in altri settori, ma in futuro vorrei potere testare soluzioni con CIE e TS.

Al momento accedo a numerosi siti, ad esempio per dati meteo, via cURL e chiavi assegnate dai fornitori. Il tutto sta in una request HTTP/ HTTPS, la risposta e’ un XML o JSON, funziona senza problemi.
Per l’identita’ digitale occorre piu’ sicurezza, giusto.
E’ impensabile un sistema semplice e sicuro allo stesso tempo? Ad esempio

  • invio una request a un provider nazionale, diciamo Agenzia delle Entrate, via HTTPS con il mio Codice fiscale
  • il server, diretto o via gestore CIE, risponde con una stringa random, diciamo 128 caratteri
  • una procedura locale combina con un qualche algoritmo la stringa alla mia chiave privata sulla CIE, genera una nuova stringa, che reinvio. Questa stringa diventa la chiave locale e temporanea di accesso al servizio.
  • il server remoto decide che va tutto bene e sblocca l’accesso che mi serve
    A questo potrebbero associare template generici, che uno facilmente replica nel linguaggio che vuole. Eventualmente con esempi Python, Java ecc.

In breve, e’ possibile pensare a procedure e moduli standard cURL, Python ecc. per un login con CIE/ TS?

Da laico ho l’impressione che il funzionamento attuale sia piu’ complicato di quanto serva, senza aggiungere molto in quanto a sicurezza. Potete confermare o confutare questa mia impressione? Mi sfugge qualcosa di fondamentale? Grazie!

Il motivo per cui si ha una complessità maggiore nell’integrazione con sistemi di autenticazione è solitamente per una questione di sicurezza e affidabilità.
A mio personalissimo parere, l’integrazione con protocolli più moderni come OIDC è un grande passo avanti rispetto al maldestro SAML. Utilizzando protocolli moderni, conosciuti e normati possiamo far uso di tutte le considerazioni di sicurezza fatte dagli autori dello standard stesso, che hanno avuto il compito di ideare il sistema per una vasta platea di possibili utilizzi. Qui spiccano i certificati per garantire che il richiedente è chi dice di essere e ci si può fidare a mandare informazioni personali, i token monouso per evitare che una richiesta valida venga rimandata uguale da qualcuno che ne è entrato in possesso, le chiavi per verificare che i dati inviati siano affidabili e noni siano stati compromessi.

Per quanto la tua proposta sembri apparentemente realizzabile, in fin dei conti CIE funziona nello stesso modo: nulla ti vieta di interfacciarti con curl/wget o altri strumenti “di basso livello”. Tutte le informazioni aggiuntive che sono state discusse in questo thread (chiavi, certificati, token) servono solo a garantire l’identificazione della persona da parte di CIE e lo scambio sicuro di questo “evento” con il servizio che l’ha richiesto.

Spero di aver colto il punto e di aver risposto in maniera sufficientemente chiara.

1 Mi Piace