Strumenti Utente

Strumenti Sito


guide_pubbliche:howto:identity:shibbolethsp_config

Differenze

Queste sono le differenze tra la revisione selezionata e la versione attuale della pagina.

Link a questa pagina di confronto

Entrambe le parti precedenti la revisione Revisione precedente
Prossima revisione
Revisione precedente
guide_pubbliche:howto:identity:shibbolethsp_config [2025/01/16 09:25]
riccardo.cappone@unipr.it [Ruoli]
guide_pubbliche:howto:identity:shibbolethsp_config [2025/02/13 06:55] (versione attuale)
riccardo.cappone@unipr.it
Linea 75: Linea 75:
 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. 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.
  
 +Logout URL che il service provider può utilizzare per attivare la funzione di SLO 
 +**https://​shibidp.unipr.it/​idp/​profile/​Logout**
  
 ===== Istruzioni ===== ===== Istruzioni =====
Linea 345: Linea 346:
 [[https://​shibidp.unipr.it/​.well-known/​openid-configuration]] [[https://​shibidp.unipr.it/​.well-known/​openid-configuration]]
  
-Questo URI consente di ottenere l informazioni principali contenute nel Metadata dell'​OP Server di autenticazione/​autorizzazione,​ come ad esempio l'​Authorization Endpoint, il token Endpoint, ​?introspection Endpoint, etc.+Questo URI consente di ottenere l informazioni principali contenute nel Metadata dell'​OP Server di autenticazione/​autorizzazione,​ come ad esempio l'​Authorization Endpoint, il token Endpoint, ​l'introspection Endpoint, etc.
  
 __Specifiche OAuth2 implementate e supportate__:​ __Specifiche OAuth2 implementate e supportate__:​
Linea 364: Linea 365:
   * client_id   * client_id
   * client_secret   * client_secret
-  * resource indicator (obbligatorio ​durante la request autorizzativa ​come parametro)+  * resource indicator (parametro ​obbligatorio ​nella request autorizzativa
 + 
 +il parametro ​resource richiesto dal client, sarà utilizzatto come audience nei token che verranno rilasciati. Questo valore di audience sarà verificabile solamente dal Server della risorsa che avrà il corrispondente client_id (e client_secretper verificarlo via introspezione. 
  
 Il client deve effettuare la request autorizzativa verso il server di autorizzazione richiedendo obbligatoriamente:​ Il client deve effettuare la request autorizzativa verso il server di autorizzazione richiedendo obbligatoriamente:​
Linea 370: Linea 374:
   * redirect_uri=<​da comunicare preventivamente per la registrazione del Metadata sul Server di autorizzazione>​   * redirect_uri=<​da comunicare preventivamente per la registrazione del Metadata sul Server di autorizzazione>​
   * scope=openid profile email spid offline_access   * scope=openid profile email spid offline_access
 +  * resource=<​fornito in fase di registrazione del Metadata>​
  
 Il metodo di autenticazione da utilizzare quando il Client si autentica con il Server autorizzativo è client_secret_basic (credenziali vengono inviate nell'​intestazione di autorizzazione come una stringa codificata in base64) Il metodo di autenticazione da utilizzare quando il Client si autentica con il Server autorizzativo è client_secret_basic (credenziali vengono inviate nell'​intestazione di autorizzazione come una stringa codificata in base64)
Linea 388: Linea 393:
  
 Esempio di request all'​introspection endpoint: Esempio di request all'​introspection endpoint:
-curl -Ss -X POST \ + 
-https://shibidp.unipr.it/​idp/​profile/​oauth2/​introspection \ +{{ :guide_pubbliche:​howto:​identity:​introspection_call.png?​direct&​600 |}} 
--H '​Acceptapplication/​jwt' ​\ + 
--H 'Content-Typeapplication/​x-www-form-urlencoded'​ \ +Esempio response caso token non valido: 
--d 'token=AAdzZWNyZXQxr7pZZUZLkWdIHNrZ_5Bic-_f5oRpesA61WOgUWt-1D3RES49xKBr6QiFTG9eIUMalUHZcOyj8y5kfFQnEv0n8NymOTq5R3fyYKPaVatKKlzWkPO6blttZOqLoS9opEzZDgf-1WsLW-v5P_PG5BRj4NltlpGm3Lv2r3M0a_PtYq4EFW3ZR0mSW0-pJ9XafF2CiEN8NJLH7OKz7RAgNjX_cLGN6XNdXMfL31bMQi9jNSe8D8PXD7HvpfgJZwWsqUIVLBAxaPmSSFihgajWndr0RyrcuEu4uL1nIisoQjpJmDlMJFQGc5jLgJdj8z9n0UMyLdGBbHipB1Ltn4IByo1eFkp7nE402tB-Sm62ott_OI6ZB1BrfYd-S1Vpjd3sxF8gLDp_D-Am19YCLYoPX50IyGpXOtZNdhzszj1rlsShwLGbcATgv_H_10wIm6nB3_iRecr6d1Io7KJKp_KyM1NIgYEpyhNsfQwN4tTtmRjufRjEOGE85VpN340tkicfl6ALlFV_weQSKcZx5PcKcA8HnQpF9agoo9SWVkzN6nNDcwFENoi7_nwgRCCF2Ukgo8cXy0hWiMdFLZFTB3svNtAHVMQOo8M8Lg5qF9eem3hYfg&token_type_hint=access_token&​client_id=https%3A%2F%2F8439rhuferhf9hf4r47&client_secret=uC3P9XXX9999'​+ 
 +{{ :​guide_pubbliche:​howto:​identity:​introspection_failed.png?​direct&​200 |}} 
 + 
 +Esempio response caso token valido: 
 + 
 +{{ :​guide_pubbliche:​howto:​identity:​introspection_ok.png?​direct&​300 |}} 
 + 
 +===== Utilizzo dell'Auth Code ===== 
 + 
 +Il Client può utilizzare l'Auth Code per ottenere
 +  * access_token 
 +  * refresh_token 
 +  * id_token 
 + 
 +Esempio di request utilizzando l'Auth Code: 
 + 
 +{{ :​guide_pubbliche:​howto:​identity:​auth_code_request.png?​direct&600 |}} 
 + 
 +===== Utilizzo del refresh_token ===== 
 + 
 +Il Client può utilizzare il refresh_token per ottenere: 
 +  * access_token 
 +  * refresh_token 
 + 
 +Esempio di request utilizzando un refresh_token:​ 
 + 
 +{{ :​guide_pubbliche:​howto:​identity:​refresh_token_request.png?​direct&600 |}} 
 + 
 +{{ :​guide_pubbliche:​howto:​identity:​refreeh_aut_code_requests.png?​direct&800 |}}