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.
Headers disponibili [X-Remote-Sub] => TYFP4PMTLC2VKCSGOCS7QEEPN2I2F4OU [X-Remote-Familyname] => CAPPONE [X-Remote-Givenname] => Riccardo [X-Remote-Externalidptype] => spid [X-Remote-Externalidploa] => LoA3 [X-Remote-Codicefiscale] => CPPRCR74P19Z112J [X-Remote-Name] => Riccardo CAPPONE [X-Remote-Email] => riccardo.cappone@unipr.it
In php -> $_SERVER ["HTTP_X_REMOTE_SUB"]=> string(32) "TYFP4PMTLC2VKCSGOCS7QEEPN2I2F4OU" ["HTTP_X_REMOTE_FAMILYNAME"]=> string(7) "CAPPONE" ["HTTP_X_REMOTE_GIVENNAME"]=> string(8) "Riccardo" ["HTTP_X_REMOTE_EXTERNALIDPLOA"]=> string(4) "LoA2" ["HTTP_X_REMOTE_CODICEFISCALE"]=> string(16) "CPPRCR74P19Z112J" ["HTTP_X_REMOTE_NAME"]=> string(16) "Riccardo CAPPONE" ["HTTP_X_REMOTE_EMAIL"]=> string(25) "riccardo.cappone@unipr.it"
[X-Remote-Sub] => TYFP4PMTLC2VKCSGOCS7QEEPN2I2F4OU [X-Remote-Familyname] => CAPPONE [X-Remote-Givenname] => Riccardo [X-Remote-Externalidptype] => spid [X-Remote-Externalidploa] => LoA3 [X-Remote-Codicefiscale] => CPPRCR74P19Z112J [X-Remote-Name] => Riccardo CAPPONE [X-Remote-Email] => riccardo.cappone@unipr.it
["HTTP_X_REMOTE_SUB"]=> string(32) "TYFP4PMTLC2VKCSGOCS7QEEPN2I2F4OU" ["HTTP_X_REMOTE_FAMILYNAME"]=> string(7) "CAPPONE" ["HTTP_X_REMOTE_GIVENNAME"]=> string(8) "Riccardo" ["HTTP_X_REMOTE_EXTERNALIDPTYPE"]=> string(4) "spid" ["HTTP_X_REMOTE_EXTERNALIDPLOA"]=> string(4) "LoA3" ["HTTP_X_REMOTE_CODICEFISCALE"]=> string(16) "CPPRCR74P19Z112J" ["HTTP_X_REMOTE_NAME"]=> string(16) "Riccardo CAPPONE" ["HTTP_X_REMOTE_EMAIL"]=> string(25) "riccardo.cappone@unipr.it"