Questa è una vecchia versione del documento!
Le informazioni seguenti sono ad uso e consumo del referente tecnico che amministra il Service Provider Shibboleth
Lato Service Provider configurare opportunamente l'attribute-map.xml per recepire gli attributi rilasciati:
Per tutti gli entityID non riferiti al dominio unipr.it occorre concordare il rilascio degli attributi, che saranno filtrati e rilasciati in maniera puntuale da parte del nostro IdP.
OpenID Connect Issuer: https://shibidp.unipr.it
OIDC Discovery (come da specifiche https://openid.net/specs/openid-connect-discovery-1_0.html):
https://shibidp.unipr.it/.well-known/openid-configuration
default scope: openid email profile
Il gestore del RP deve fornire il Metadata in formato JSON:
Nome chiave | Tipo del valore | Descrizione |
---|---|---|
client_id | string | Identificatore OIDC client per l'RP |
response_types | array of strings | Tipologia risposte del client (obbligatorio id_token) |
scope | string | Lista degli scope che rilasciano i claim |
redirect_uris | array of strings | URL di redirezione per la response verso RP |
Esempio:
{ "redirect_uris":["httpq://www.esempio.it/secure/redirect_uri"], "client_id":"lamiapp01", "client_secret":"stringaalfanumericasegreta", "response_types":["id_token"], "grant_types":["authorization_code"], "scope": "openid email profile spid" }
scope | claims - OP identifier | claims - oidc names | transcoder |
---|---|---|---|
openid | subject | sub | OIDCStringTranscoder |
profile | displayName, sn, givenName, codiceFiscale | name, family_name. given_name, codicefiscale | OIDCStringTranscoder |
spid | unipr_spid_email, spidName, spidFamilyName, spidCode, spidFiscalNumber, externalIDPLoA, externalIDPType, spid_shib_authnctx_class | unipr_spid_email, spidName, spidFamilyName, spidCode, spidFiscalNumber, externalIDPLoA, externalIDPType, spid_shib_authnctx_class | OIDCStringTranscoder |
OIDCStringTranscoder |
Esempio:
["OIDC_CLAIM_email"]=> string(25) "riccardo.cappone@unipr.it" ["OIDC_CLAIM_spid_shib_authnctx_class"]=> string(30) "https://www.spid.gov.it/SpidL2" ["OIDC_CLAIM_externalIDPLoA"]=> string(4) "LoA3" ["OIDC_CLAIM_family_name"]=> string(7) "CAPPONE" ["OIDC_CLAIM_iat"]=> string(10) "1709631164" ["OIDC_CLAIM_exp"]=> string(10) "1709634764" ["OIDC_CLAIM_name"]=> string(16) "Riccardo CAPPONE" ["OIDC_CLAIM_auth_time"]=> string(10) "1709631164" ["OIDC_CLAIM_spidName"]=> string(8) "RICCARDO" ["OIDC_CLAIM_spidFamilyName"]=> string(7) "CAPPONE" ["OIDC_CLAIM_codicefiscale"]=> string(16) "CPPRCR74P19Z112J" ["OIDC_CLAIM_eduPersonScopedAffiliation"]=> string(44) "member@unipr.it staff@unipr.it alum@unipr.it" ["OIDC_CLAIM_aud"]=> string(11) "sptestunipr" ["OIDC_CLAIM_sid"]=> string(33) "_2be7419256300bfc12ae5386638b8287" ["OIDC_CLAIM_spidFiscalNumber"]=> string(16) "CPPRCR74P19Z112J" ["OIDC_CLAIM_nonce"]=> string(43) "I3nOHwGpLWh2whVI-7LBsoPWhxAHo7PEW-VYUuc7GXw" ["OIDC_CLAIM_unipr_spid_email"]=> string(25) "riccardocappone@gmail.com" ["OIDC_CLAIM_given_name"]=> string(8) "Riccardo" ["OIDC_CLAIM_externalIDPType"]=> string(4) "spid" ["OIDC_CLAIM_spidCode"]=> string(14) "NAMI0007649168" ["OIDC_CLAIM_iss"]=> string(24) "https://shibidp.unipr.it" ["OIDC_CLAIM_sub"]=> string(32) "TYFP4PMTLC2VKCSGOCS7QEEPN2I2F4OU"
response_type ⇒ id_token
In questa modalità è attivo solamente l'Authorization Endpoint che dopo l'autenticazione rilascerà l'ID Token comprensivo dei claim sottoscritti dagli scope. La durata dell'ID Token è 1h.
Il servizio di autenticazione basato su protocollo OIDC (OpenID Connect via OAuth2) servito via reverse proxy è riservato esclusivamente ai Relying Party UNIPR (su dominio unipr.it). In vista della disattivazione del protocollo CAS, questo middleware semplifica notevolmente l'autenticazione presso il nostro Identity Provider, mettendo a disposizione dei service provider l'intera filiera di autenticazione 'a costo zero', senza cioè il bisogno da parte degli sviluppatori dei servizi web, di gestire il processo di autenticazione.
Inviare una richiesta a helpdesk.informatico@unipr.it richiedendo che il proprio servizio web possa avvalersi del middleware di autenticazione mediato dal reverse proxy UNIPR. Nella richiesta è opportuno indicare se l'intera risorsa debba essere protetta da autenticazione (“/”), oppure solo una o più location specifiche (“/secure”, “/percorso/specifico/”)
Quando la richiesta verrà accolta e lavorata, il sito web sarà automaticamente sottoposto ad autenticazione e protetto da certificato TLS.
Headers disponibili [X-Remote-Sub] => TYFP4PMTLC2VKCSGOCS7QEEPN2I2F4OU [X-Remote-Familyname] => ROSSI [X-Remote-Givenname] => Mario [X-Remote-Externalidploa] => LoA2 [X-Remote-Codicefiscale] => RSSMAR74P19Z112J [X-Remote-Name] => Mario ROSSI [X-Remote-Email] => mario.rossi@unipr.it
In php -> $_SERVER ["HTTP_X_REMOTE_SUB"]=> string(32) "TYFP4PMTLC2VKCSGOCS7QEEPN2I2F4OU" ["HTTP_X_REMOTE_FAMILYNAME"]=> string(7) "ROSSI" ["HTTP_X_REMOTE_GIVENNAME"]=> string(8) "Mario" ["HTTP_X_REMOTE_EXTERNALIDPLOA"]=> string(4) "LoA2" ["HTTP_X_REMOTE_CODICEFISCALE"]=> string(16) "RSSMAR74P19Z112J" ["HTTP_X_REMOTE_NAME"]=> string(16) "Mario ROSSI" ["HTTP_X_REMOTE_EMAIL"]=> string(25) "mario.rossi@unipr.it"
Headers disponibili [X-Remote-Sub] => TYFP4PMTLC2VKCSGOCS7QEEPN2I2F4OU [X-Remote-Familyname] => ROSSI [X-Remote-Givenname] => Mario [X-Remote-Externalidptype] => spid [X-Remote-Externalidploa] => LoA3 [X-Remote-Codicefiscale] => RSSMAR74P19Z112J [X-Remote-Name] => Mario ROSSI [X-Remote-Email] => mario.rossi@unipr.it
In php -> $_SERVER ["HTTP_X_REMOTE_SUB"]=> string(32) "TYFP4PMTLC2VKCSGOCS7QEEPN2I2F4OU" ["HTTP_X_REMOTE_FAMILYNAME"]=> string(7) "ROSSI" ["HTTP_X_REMOTE_GIVENNAME"]=> string(8) "Mario" ["HTTP_X_REMOTE_EXTERNALIDPTYPE"]=> string(4) "spid" ["HTTP_X_REMOTE_EXTERNALIDPLOA"]=> string(4) "LoA3" ["HTTP_X_REMOTE_CODICEFISCALE"]=> string(16) "RSSMAR74P19Z112J" ["HTTP_X_REMOTE_NAME"]=> string(16) "Mario ROSSI" ["HTTP_X_REMOTE_EMAIL"]=> string(25) "mario.rossi@unipr.itt"