Autenticazione
Per effettuare richieste verso l'API TSE in Cloud è necessario utilizzare solo metodi di autenticazione supportati.
Nel prossimo paragrafo troverai un diagramma di flusso che ti guiderà nella scelta.
I metodi attualmente supportati sono con token di accesso.
Come posso ottenere l'autenticazione?
Questa sezione documenta i modelli di autenticazione supportati. Scenario M2M Molte volte è necessario un canale di comunicazione sicuro e autorizzato tra diverse parti di un sistema, come due servizi back-end di applicazioni diverse. L'aspetto chiave di queste comunicazioni risiede nel fatto che l'elemento per stabilire la fiducia nel sistema è il client. In TSE a un client viene assegnata una chiave API tecnica che viene utilizzata durante la fase di login per riconoscerlo e abilitarlo all'uso dei servizi.
La figura illustra il flusso di autenticazione (Login).

L'autenticazione avviene attraverso l'uso di servizi esposti sull'api gateway
Generazione del token
Durante questa fase, il client utilizza la chiave API per ottenere un token JWT che verrà utilizzato nelle chiamate successive per accedere alle risorse dell'applicazione. Per informazioni su come ottenere una chiave API, consulta questo link. L'applicazione deve richiedere il token tramite POST con parametri in x-www-form-urlencoded a un percorso specifico
- webapi_base_url/auth/token
Specificando nel corpo
| Parametro del modulo | Descrizione |
|---|---|
| grant_type obbligatorio | “token” Tipo: stringa |
| username obbligatorio | admin_<cid>Tipo: stringa |
| token obbligatorio | Bearer Chiave API Tipo: stringa |
| scope obbligatorio | Indica il contesto di accesso per cui si richiede l'autorizzazione. I valori possibili sono: webapi_admin - utilizzato ad esempio per recuperare l'elenco degli ambienti <environment> uno dei qualsiasi ambienti di lavoro registrati Tipo: stringa |
In risposta alla chiamata, si ottiene un codice di autorizzazione costituito da un token JWT, la cui durata è riportata nella risposta della chiamata nel parametro "expires_in" (solitamente della durata di 8 ore).
È importante che nella sezione del token la chiave API sia preceduta dalla parola Bearer ad esempio
Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJ3ZWJhcGlhZG1pbiIsIndlYmFwaTphdXRoZW50aWNhdGlvbjpzY29wZSI6Imh1Yl9hZG1pbix0c2UxMHdlYmFwaXRlc3QyX2FseXRzZTEwd2ViYXBpdGVzdDIiLCJqdGkiOiIwMjdkYmRlMC03OTg5LTQ0MTItODliOC0yM2FkYTVjNTdjZTIiLCJpYXQiOjE2NTg3NDA4NzcsImlzcyI6IkFseUNFU3J2MlNydklzc3VlciIsImF1ZCI6IkFseUNFU3J2MlNydkF1ZGllbmNlIn0.p1oEy4LJyFuTKIjJynYw4zQQQXIYPO3WfLe8VTNh7XA
Chiamata WebApi in azione
Le chiamate ai servizi dell'applicazione saranno autenticate con un token Bearer costituito da un token JWT ottenuto con la chiamata di Login. Di seguito sono riportati alcuni esempi di chiamate get per i clienti.
- React
- C#
- cURL
var https = require('follow-redirects').https;
var fs = require('fs');
var options = {
'method': 'GET',
'hostname': 'webapicorso1.ts-paas.com',
'path': '/api/v1/webapicorso1_alywebapicorso1/CO/CustomerSupplierCO/4?company=2',
'headers': {
'Authorization-Scope': 'webapicorso1_alywebapicorso1',
'Content-Type': 'application/json',
'Authorization': '••••••'
},
'maxRedirects': 20
};
var req = https.request(options, function (res) {
var chunks = [];
res.on("data", function (chunk) {
chunks.push(chunk);
});
res.on("end", function (chunk) {
var body = Buffer.concat(chunks);
console.log(body.toString());
});
res.on("error", function (error) {
console.error(error);
});
});
req.end();
using System.Net.Http.Headers;
// No more boilerplate needed with top level statements (https://docs.microsoft.com/en-us/dotnet/core/tutorials/top-level-templates)
var client = new HttpClient();
var request = new HttpRequestMessage(HttpMethod.Get, "https://webapicorso1.ts-paas.com/api/v1/webapicorso1_alywebapicorso1/CO/CustomerSupplierCO/4?company=2");
request.Headers.Add("Authorization-Scope", "webapicorso1_alywebapicorso1");
request.Headers.Add("Authorization", "••••••");
var content = new StringContent(string.Empty);
content.Headers.ContentType = new MediaTypeHeaderValue("application/json");
request.Content = content;
var response = await client.SendAsync(request);
response.EnsureSuccessStatusCode();
Console.WriteLine(await response.Content.ReadAsStringAsync());
curl --location --request GET 'https://webapicorso1.ts-paas.com/api/v1/webapicorso1_alywebapicorso1/CO/CustomerSupplierCO/4?company=2' \
--header 'Authorization-Scope: webapicorso1_alywebapicorso1' \
--header 'Content-Type: application/json' \
--header 'Authorization: ••••••'