Queste sono le differenze tra la revisione selezionata e la versione attuale della pagina.
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_secret) per 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 'Accept: application/jwt' \ | + | |
- | -H 'Content-Type: application/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 |}} |