Salta ai contenuti

Autenticazione

Restorm non ha un menu a tendina «tipo di autenticazione». Ha qualcosa di più generale: la richiesta di autenticazione, una richiesta a tutti gli effetti il cui ruolo è produrre header per le altre.

Il vantaggio: qualsiasi schema è modellabile, compresi quelli che nessun elenco a tendina prevede — uno scambio in due tempi, un token firmato, un’API sviluppata in casa. Lo svantaggio: va scritto una volta.

Clic destro su una cartella di variabiliAggiungi ▸ Richiesta di autenticazione.

Prima si configura la chiamata come qualsiasi richiesta HTTP: metodo, URL, header, corpo. Poi si apre la scheda Configurazione, che ospita le tre impostazioni specifiche dell’autenticazione.

La scheda Configurazione di una richiesta di autenticazione, con le sue tre sezioni: gli header prodotti, la scadenza in secondi e i codici di errore di autenticazione

L’elenco degli header che questa rotta inietterà in ogni richiesta che la referenzia. Ogni valore è un’espressione valutata sul corpo della risposta della richiesta di autenticazione.

HeaderValore
Authorization{{token_type}} {{access_token}}

Un’espressione, anch’essa valutata sul corpo della risposta, che indica la durata di validità in secondi — tipicamente {{expires_in}}. Se lasciata vuota, il token non scade mai da solo.

Gli stati HTTP che, se ricevuti da una richiesta che usa questa rotta, innescano un rinnovo del token seguito da un nuovo tentativo automatico. Per impostazione predefinita: 401 e 403.

Una richiesta di autenticazione è l’elemento che si crea nell’albero. Una rotta di autenticazione è quello stesso elemento visto da un’altra richiesta, nel selettore che lo collega. I due termini designano la stessa entità, in due punti dell’interfaccia.

Nella scheda della richiesta, all’interno della smartbar, un selettore Rotta di autenticazione elenca le rotte della cartella di variabili. L’etichetta predefinita è Nessuna autenticazione.

Una volta collegata, gli header prodotti vengono iniettati a ogni invio, il token viene messo in cache fino alla scadenza e un 401 provoca un rinnovo trasparente.

Richiesta: POST https://auth.exemple.test/oauth/token, corpo x-www-form-urlencoded con grant_type=client_credentials, client_id={{clientId}}, client_secret={{clientSecret}} (dove il segreto è un valore di tipo Segreto).

Header prodotto: Authorization = {{token_type}} {{access_token}}. Scadenza: {{expires_in}}.

Non serve alcuna richiesta se si dispone già delle credenziali: basta impostare l’header sulla richiesta (o sulla cartella):

Authorization = Basic {{base64Encode (append (append user ":") password)}}

È sufficiente un header o un parametro di query: X-API-Key = {{apiKey}}, dove la chiave è una variabile di tipo Segreto.

Occorre creare uno scenario: prima chiamata, estrazione del codice intermedio, seconda chiamata, poi Definisci variabile per impostare il token nelle variabili di run. Le richieste successive dello scenario lo leggono con {{jeton}}.

All’importazione di una specifica, gli schemi di sicurezza dichiarati vengono tradotti in header o parametri precablati, con una variabile d’ambiente creata automaticamente:

Schema nella specificaCiò che Restorm imposta
apiKey (header o query)Una coppia denominata come lo schema, valore {{<schema>}}
http / basicAuthorization: Basic {{<schema>_credentials}}
http / bearer, oauth2, openIdConnectAuthorization: Bearer {{<schema>_token}}

Non resta che compilare la variabile, oppure sostituirla con una rotta di autenticazione se si desidera il rinnovo automatico.

Alcuni protocolli non passano da header HTTP. Le loro credenziali sono campi della richiesta stessa:

ProtocolloCampi
MQTTusername, password, identificatore client
AMQPusername, password, vhost
Redispassword
KafkaMeccanismo SASL (plain, scram-sha-256, scram-sha-512), identificativo, password, TLS
STOMPHeader login e passcode del CONNECT
gRPCMetadati della chiamata

Ognuna di queste password accetta un valore di tipo Segreto.