Autenticazione a Smart Services
Gli Smart Services utilizzano un sistema di autenticazione sicuro basato Bearer token e OAuth 2.0.
Metodi di autenticazione
1. Bearer token
Per applicazioni server-to-server:
curl --location --request POST 'https://tse.smart-api.teamsystem.cloud/api/v1/auth/token' \
--header 'accept-language: it-IT' \
--header 'Content-Type: multipart/form-data' \
--header 'Accept: application/json' \
--form 'username="admin_webapicorso"' \
--form 'scope="webapicorso_alywebapicorso"' \
--form 'token="Bearer YOUR_API_KEY....."'
2. Bearer token (Per applicazioni client)
Per applicazioni web e mobile:
// Richiesta del token
const myHeaders = new Headers();
myHeaders.append("accept-language", "it-IT");
myHeaders.append("Content-Type", "multipart/form-data");
myHeaders.append("Accept", "application/json");
const formdata = new FormData();
formdata.append("username", "admin_webapicorso");
formdata.append("scope", "webapicorso_alywebapicorso");
formdata.append("token", "Bearer YOUR_API_KEY...");
const requestOptions = {
method: "POST",
headers: myHeaders,
body: formdata,
redirect: "follow"
};
fetch("https://tse.smart-api.teamsystem.cloud/api/v1/auth/token", requestOptions)
.then((response) => response.text())
.then((result) => console.log(result))
.catch((error) => console.error(error));
Gestione dei token
Validità dei token
- API Key: Permanente al pari delle WebApi
- Access Token: ereditato da webapi core
- Refresh Token: ereditato da webapi core
Sicurezza
Importante
- Non esporre mai le credenziali nel codice client
- Utilizza HTTPS per tutte le comunicazioni
- Implementa la rotazione periodica delle chiavi
- Monitora l'utilizzo delle API per rilevare anomalie
Esempi di implementazione
.NET
public class SmartServicesClient
{
var client = new HttpClient();
var request = new HttpRequestMessage(HttpMethod.Post, "https://tse.smart-api.teamsystem.cloud/api/v1/auth/token");
request.Headers.Add("accept-language", "it-IT");
request.Headers.Add("Accept", "application/json");
var content = new MultipartFormDataContent();
content.Add(new StringContent("admin_webapicorso"), "username");
content.Add(new StringContent("webapicorso_alywebapicorso"), "scope");
content.Add(new StringContent("Bearer YOUR_API_KEY..."), "token");
request.Content = content;
var response = await client.SendAsync(request);
response.EnsureSuccessStatusCode();
Console.WriteLine(await response.Content.ReadAsStringAsync());
}
JavaScript/Node.js
class SmartServicesClient {
const axios = require('axios');
const FormData = require('form-data');
let data = new FormData();
data.append('username', 'admin_webapicorso');
data.append('scope', 'webapicorso_alywebapicorso');
data.append('token', 'Bearer YOUR_API_KEY....');
let config = {
method: 'post',
maxBodyLength: Infinity,
url: 'https://tse.smart-api.teamsystem.cloud/api/v1/auth/token',
headers: {
'accept-language': 'it-IT',
'Content-Type': 'multipart/form-data',
'Accept': 'application/json',
...data.getHeaders()
},
data : data
};
axios.request(config)
.then((response) => {
console.log(JSON.stringify(response.data));
})
.catch((error) => {
console.log(error);
});
}