.. _tokenPolicy_tokenForward: Token Forward ~~~~~~~~~~~~~ Azione di elaborazione che consiste nell'inoltro del token ricevuto al destinatario. Una volta attivata questa opzione, devono essere indicate le seguenti informazioni. .. note:: Quando la validazione DPoP è abilitata, nella sezione 'Token Forward' compare anche un'opzione *DPoP* per configurare l'inoltro della DPoP proof al backend. Per i dettagli si rimanda alla sezione ':ref:`tokenValidazionePolicy_dpop`'. Le opzioni disponibili sono: - *Originale*: opzione che consente di inoltrare il token originale al destinatario. Attivando questo flag è necessario specificare la modalità di inoltro a scelta tra le seguenti opzioni: - *Come è stato ricevuto*: Il token viene inoltrato al destinatario utilizzando lo stesso metodo con cui è stato ricevuto dal gateway. - *RFC 6750 - Bearer Token Usage (Authorization Request Header Field)*: Il token viene inoltrato al destinatario utilizzando l'header Authorization presente nella richiesta HTTP. - *RFC 6750 - Bearer Token Usage (URI Query Parameter)*: Il token viene inoltrato al destinatario tramite parametro access\_token della Query String. - *Header HTTP*: Il token viene inoltrato al destinatario utilizzando un header HTTP il cui nome deve essere specificato nel campo seguente. - *Parametro URL*: Il token viene inoltrato al destinatario utilizzando un parametro della Query String il cui nome deve essere specificato nel campo seguente. - *Informazioni Raccolte*: opzione disponibile quando è stata abilitata una delle azioni di validazione del token (introspection, user info o validazione JWT), consente di veicolare i dati ottenuti dal servizio di validazione, al destinatario. Una volta attivato il flag è necessario specificare la modalità di inoltro dei dati selezionando una tra le opzioni seguenti: .. note:: Le informazioni riguardanti il purposeId, consumerId, producerId, eserviceId e descriptorId sono presenti in caso di validazione di voucher PDND. .. note:: Le informazioni sull'organizzazione PDND sono presenti solamente se è stata attivata l'integrazione con le API PDND descritta nella sezione :ref:`modipa_passiPreliminari_api_pdnd`. Gli header 'GovWay-Token-PDND-OrganizationSubUnit', GovWay-Token-PDND-ClientName e GovWay-Token-PDND-ClientDescription sono disponibili solamente con la versione 2 delle API interop. - *GovWay Headers*: I dati raccolti dal token vengono inseriti nei seguenti header HTTP: :: GovWay-Token-Issuer GovWay-Token-Subject GovWay-Token-Username GovWay-Token-Audience GovWay-Token-ClientId GovWay-Token-IssuedAt GovWay-Token-Expire GovWay-Token-NotToBeUsedBefore GovWay-Token-Scopes GovWay-Token-FullName GovWay-Token-FirstName GovWay-Token-MiddleName GovWay-Token-FamilyName GovWay-Token-EMail GovWay-Token-Jti GovWay-Token-PurposeId GovWay-Token-ConsumerId GovWay-Token-ProducerId GovWay-Token-EServiceId GovWay-Token-DescriptorId GovWay-Token-PDND-OrganizationName GovWay-Token-PDND-OrganizationCategory GovWay-Token-PDND-OrganizationSubUnit GovWay-Token-PDND-OrganizationExternal GovWay-Token-PDND-ClientName GovWay-Token-PDND-ClientDescription - *GovWay JSON*: I dati raccolti dal token vengono inseriti in un oggetto JSON, il cui JsonSchema è il seguente: :: { "required" : [ "id" ], "properties": { "id": {"type": "string"}, "issuer": {"type": "string"}, "subject": {"type": "string"}, "username": {"type": "string"}, "audience": { "type": "array", "items": {"type": "string"} }, "clientId": {"type": "string"}, "iat": { "type": "string", "format": "date-time" }, "expire": { "type": "string", "format": "date-time" }, "nbf": { "type": "string", "format": "date-time" }, "roles": { "type": "array", "items": {"type": "string"} }, "scope": { "type": "array", "items": {"type": "string"} }, "userInfo": { "type": "object", "properties": { "fullName": {"type": "string"}, "firstName": {"type": "string"}, "middleName": {"type": "string"}, "familyName": {"type": "string"}, "email": {"type": "string"} }, "additionalProperties": false }, "jti": {"type": "string"}, "purposeId": {"type": "string"}, "consumerId": {"type": "string"}, "producerId": {"type": "string"}, "eserviceId": {"type": "string"}, "descriptorId": {"type": "string"}, "pdnd": { "type": "object", "properties": { "organization": { "type": "object", "properties": { "name": {"type": "string"}, "category": {"type": "string"}, "subUnit": {"type": "string"}, "external": {"type": "string"}, "externalOrigin": {"type": "string"}, "externalId": {"type": "string"} }, "additionalProperties": false }, "client": { "type": "object", "properties": { "name": {"type": "string"}, "description": {"type": "string"} }, "additionalProperties": false } }, "additionalProperties": false } "claims": { "type": "array", "items": { "name": {"type": "string"}, "value": {"type": "string"} }, "additionalProperties": false }, "processTime": { "type": "string", "format": "date-time" } }, "additionalProperties": false } Il JSON risultante viene inserito nell'Header HTTP *GovWay-Token*. - *GovWay JWS*: I dati raccolti dal token vengono inseriti in un oggetto JSON, come descritto al punto precedente. In questo caso il token JSON viene inserito successivamente in un JWT e quindi firmato. Il JWS risultante viene inserito nell'Header HTTP *GovWay-JWT*. - *JSON*: Le informazioni ottenute dai servizi di introspection, userinfo o il json estratto dal token jwt dopo la validazione, vengono inseriti negli header http o nelle proprietà della url indicati. .. note:: Le informazioni sono esattamente quelle recuperate dai servizi originali (o presenti nel token originale nel caso di validazione jwt). - *JWS/JWE*: Uguale alla modalità JSON con la differenza che negli header http, o nelle proprietà della url, vengono inseriti dei JWT firmati (caso JWS) o cifrati (caso JWE) contenenti al loro interno il JSON.