Personalizza le preferenze di consenso

Utilizziamo i cookie per aiutarti a navigare in maniera efficiente e a svolgere determinate funzioni. Troverai informazioni dettagliate su tutti i cookie sotto ogni categoria di consensi sottostanti. I cookie categorizzatati come “Necessari” vengono memorizzati sul tuo browser in quanto essenziali per consentire le funzionalità di base del sito.... 

Sempre attivi

I cookie necessari sono fondamentali per le funzioni di base del sito Web e il sito Web non funzionerà nel modo previsto senza di essi. Questi cookie non memorizzano dati identificativi personali.

I cookie funzionali aiutano a svolgere determinate funzionalità come la condivisione del contenuto del sito Web su piattaforme di social media, la raccolta di feedback e altre funzionalità di terze parti.

I cookie analitici vengono utilizzati per comprendere come i visitatori interagiscono con il sito Web. Questi cookie aiutano a fornire informazioni sulle metriche di numero di visitatori, frequenza di rimbalzo, fonte di traffico, ecc.

I cookie per le prestazioni vengono utilizzati per comprendere e analizzare gli indici di prestazione chiave del sito Web che aiutano a fornire ai visitatori un'esperienza utente migliore.

Nessun cookie da visualizzare.

I cookie pubblicitari vengono utilizzati per fornire ai visitatori annunci pubblicitari personalizzati in base alle pagine visitate in precedenza e per analizzare l'efficacia della campagna pubblicitaria.

Nessun cookie da visualizzare.

Guide

Security Token Service (STS): cos’è, come funziona e vantaggi 

Scopriamo cos'è il Security Token Service (STS), come funziona e quali vantaggi offre rispetto ad altri metodi tradizionali

Come funziona un Security Token Service

Indice dei contenuti

  • Come funziona un Security Token Service 
  • Vantaggi dell’Utilizzo di un Security Token Service (STS) 
  • Sfide e best practices nella gestione di un STS 
  • Confronto tra STS e altri sistemi di autenticazione 

Il Security Token Service (STS) è un servizio che genera, convalida e gestisce token di sicurezza utilizzati per l’autenticazione e l’autorizzazione nelle applicazioni e nei sistemi informatici.

Questo meccanismo consente di centralizzare la gestione delle credenziali, migliorando la sicurezza e facilitando l’accesso a più servizi con un’unica identità digitale. 

Negli ultimi anni, i sistemi di autenticazione tradizionali basati su username e password hanno mostrato limiti significativi, come vulnerabilità agli attacchi di phishing e gestione inefficiente delle credenziali.

Il STS offre una soluzione più sicura grazie all’uso di token temporanei, riducendo il rischio di furto di credenziali e migliorando l’esperienza utente attraverso il Single Sign-On (SSO) e la federazione delle identità. 

Come funziona un Security Token Service 

Un Security Token Service (STS) è un mediatore di fiducia tra un utente (o un’applicazione) e un servizio protetto. Il suo compito è gestire l’autenticazione e l’autorizzazione emettendo token di sicurezza che certificano l’identità dell’utente e i suoi diritti di accesso. 

Flusso di autenticazione con un STS 

Richiesta di autenticazione 
Un utente o un’applicazione tenta di accedere a una risorsa protetta, come un’app aziendale o un’API cloud. 

Verifica delle credenziali
Il Security Token Service autentica l’utente con uno dei seguenti metodi: 

  • password e username;
  • certificati digitali;
  • Autenticazione Multi-Fattore (MFA);
  • autenticazione tramite un provider di identità federata (es. Google, Microsoft, Okta). 

Emissione del token
Dopo una verifica positiva, l’STS genera un token di sicurezza che contiene informazioni sull’utente, come: 

  • identità dell’utente (es. email o ID univoco);
  • permessi di accesso;
  • scadenza del token;
  • firma crittografica per garantire l’integrità del token 

Accesso alla risorsa
L’utente presenta il token al servizio richiesto (es. un’app web, un database o un’API). Il servizio verifica il token e, se valido, concede l’accesso. 

Esempio 1: accesso a Microsoft 365 con Azure AD STS 

Un utente aziendale vuole accedere a Microsoft 365 con il proprio account aziendale: 

  • l’utente apre Outlook Web App e inserisce la propria email aziendale;
  • il browser reindirizza l’utente a Azure AD STS, che richiede la password;
  • dopo l’autenticazione, Azure AD STS emette un token SAML o OAuth 2.0;
  • outlook verifica il token e concede l’accesso senza richiedere nuovamente le credenziali. 

Questo meccanismo consente il Single Sign-On (SSO): se l’utente accede a Teams o SharePoint, non dovrà più inserire la password. 

Esempio 2: accesso temporaneo a un’API AWS con AWS STS 

Un’applicazione su AWS Lambda deve accedere a un database Amazon DynamoDB, ma senza credenziali statiche: 

  • l’app richiede un token temporaneo a AWS Security Token Service (STS);
  • AWS STS verifica l’identità dell’applicazione e genera credenziali temporanee con permessi limitati;
  • l’app usa il token per interrogare il database DynamoDB;
  • DynamoDB verifica il token con AWS STS e concede l’accesso. 

Questo metodo riduce il rischio di esposizione delle credenziali, migliorando la sicurezza. 

Punti chiave 

  • Un Security Token Service (STS) autentica gli utenti ed emette token di sicurezza per un accesso sicuro alle risorse digitali;
  • I token contengono informazioni crittografate sull’identità e le autorizzazioni dell’utente;
  • Le soluzioni STS come Azure AD, AWS STS e Okta supportano standard di settore come OAuth 2.0, SAML e OpenID Connect;
  • L’implementazione di un STS migliora la sicurezza, la conformità e l’esperienza utente abilitando l’autenticazione federata e Single Sign-On (SSO)

Protocolli di autenticazione supportati 

Un Security Token Service utilizza protocolli standard per garantire l’interoperabilità tra sistemi diversi: 

  • OAuth 2.0
    Usato per l’autenticazione e l’accesso alle API web senza condividere le credenziali dell’utente. 
  • SAML (Security Assertion Markup Language)
    Ampiamente adottato nelle aziende per l’autenticazione federata e il Single Sign-On. 
  • OpenID Connect (OIDC)
    Basato su OAuth 2.0, permette di autenticare utenti tramite provider di identità esterni come Google o Microsoft. 

Vantaggi dell’utilizzo di un Security Token Service (STS) 

L’adozione di un Security Token Service (STS) offre numerosi vantaggi per la sicurezza, l’integrazione con il cloud e la gestione degli accessi. Un STS migliora la protezione delle credenziali, semplifica l’autenticazione e facilita l’auditing delle attività utente. 

Maggiore sicurezza delle credenziali 

  • Come funziona
    I token generati da un STS hanno una durata limitata e possono essere revocati in caso di compromissione, riducendo il rischio di accessi non autorizzati. A differenza delle password statiche, i token sono temporanei e protetti con crittografia avanzata. 

Esempio: accesso sicuro con AWS STS 

  • Un amministratore AWS utilizza AWS Security Token Service (STS) per concedere credenziali temporanee ai propri utenti. 
  • Se un token viene compromesso, scadrà automaticamente dopo 15 minuti (o il tempo configurato). 
  • A differenza di una password statica, l’attaccante non può riutilizzare il token dopo la scadenza

Accesso federato e Single Sign-On (SSO) 

  • Come funziona
    Con il Single Sign-On (SSO), gli utenti possono autenticarsi una sola volta ed accedere a più servizi senza dover inserire ripetutamente le credenziali. Questo riduce il numero di password da ricordare e migliora l’esperienza utente

Esempio: accesso a Microsoft 365 con Azure AD STS 

  • Un utente aziendale si autentica su Azure Active Directory (AD) utilizzando le proprie credenziali. 
  • Dopo il login, Azure AD STS emette un token SAML che consente l’accesso automatico a Teams, Outlook, SharePoint e altre applicazioni Microsoft 365
  • L’utente non deve inserire nuovamente la password, migliorando produttività e sicurezza

Facilità di integrazione con il Cloud e ambienti ibridi 

  • Come funziona
    Molti provider STS supportano sia ambienti on-premise che Cloud, facilitando l’integrazione di applicazioni aziendali tradizionali con servizi cloud come AWS, Azure e Google Cloud

Esempio: integrazione di un CRM on-premise con Google Cloud 

  • Un’azienda utilizza un CRM interno e vuole integrarlo con Google Workspace
  • Grazie a Google Cloud Identity-Aware Proxy (IAP), gli utenti si autenticano con le credenziali aziendali e ricevono un token OAuth 2.0 per accedere sia al CRM on-premise che ai servizi Google Cloud. 
  • L’azienda evita la gestione di account separati per il CRM e Google, semplificando la sicurezza. 

Riduzione del rischio di phishing 

  • Come funziona
    I token di autenticazione eliminano la necessità di inserire continuamente le credenziali, riducendo l’efficacia dei tentativi di phishing. Senza una password fissa, un attaccante non può rubare le credenziali dell’utente. 

Esempio: accesso sicuro a un’API con Okta STS 

  • Un’applicazione mobile utilizza Okta STS per autenticare gli utenti. 
  • Dopo il login, Okta genera un token JWT (JSON Web Token) che l’app usa per accedere alle API. 
  • Anche se un attaccante intercetta la richiesta API, il token ha una durata breve e non può essere riutilizzato. 

Maggiore controllo e auditing 

  • Come funziona
    Un STS consente di monitorare e registrare tutte le autenticazioni e gli accessi alle risorse, garantendo la conformità a normative di sicurezza come GDPR, ISO 27001 e SOC 2

Esempio: audit dei token in un’azienda con Active Directory Federation Services (ADFS) 

  • Un’azienda utilizza ADFS per gestire l’autenticazione dei dipendenti. 
  • Il team di sicurezza può monitorare tutti i token generati, verificare gli accessi e rilevare attività sospette. 
  • Se un utente tenta di accedere da un paese non autorizzato, l’azienda può bloccare il token e generare un alert di sicurezza

Le moderne piattaforme cloud offrono STS per garantire autenticazione sicura e gestione delle identità. Vediamo le soluzioni più utilizzate, con esempi pratici e codice

Microsoft Active Directory Federation Services (ADFS) 

  • Descrizione 
    ADFS (Active Directory Federation Services) consente autenticazione federata tra diversi sistemi utilizzando SAML 2.0 e OAuth 2.0. È usato nelle aziende per gestire accessi sicuri a Microsoft 365, applicazioni interne e servizi cloud

Esempio: Implementazione di ADFS per il Single Sign-On (SSO) con SAML 

L’azienda vuole configurare ADFS per consentire ai dipendenti di autenticarsi una sola volta ed accedere a più applicazioni aziendali. 

Configurazione di un Relying Party Trust in ADFS:

  • aprire la console di ADFS Management;
  • aggiungere un nuovo Relying Party Trust;
  • configurare il provider di identità e il certificato SAML;
  • creare le regole di autenticazione.

Esempio di richiesta SAML inviata da un’applicazione a ADFS 

xml 

<samlp:AuthnRequest  

    xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol" 

    ID="_123456" 

    Version="2.0" 

    IssueInstant="2024-03-10T12:00:00Z" 

    Destination="https://adfs.example.com/adfs/ls/" 

    AssertionConsumerServiceURL="https://app.example.com/sso/consume"> 

    <saml:Issuer>https://app.example.com</saml:Issuer> 

</samlp:AuthnRequest>

Risposta SAML inviata da ADFS 

xml 

<samlp:Response  

    xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol" 

    ID="_response123" 

    InResponseTo="_123456" 

    Version="2.0"> 

    <saml:Assertion> 

        <saml:Subject> 

            <saml:NameID>user@example.com</saml:NameID> 

        </saml:Subject> 

        <saml:AttributeStatement> 

            <saml:Attribute Name="Role"> 

                <saml:AttributeValue>Admin</saml:AttributeValue> 

            </saml:Attribute> 

        </saml:AttributeStatement> 

    </saml:Assertion> 

</samlp:Response>

La gestione sicura dell’autenticazione in ambienti cloud e on-premise

AWS Security Token Service (AWS STS) 

  • Descrizione 
    AWS STS permette di generare credenziali temporanee per accedere in modo sicuro a servizi AWS. È utilizzato per implementare accesso limitato alle risorse AWS senza esporre credenziali statiche. 

Esempio: generazione di credenziali temporanee per un’applicazione AWS Lambda 

Un’app AWS Lambda deve accedere a S3 senza utilizzare credenziali fisse. 

Codice Python per ottenere un token da AWS STS

python 

import boto3 

# Creazione del client STS 

sts_client = boto3.client('sts') 

# Ottenere credenziali temporanee 

response = sts_client.assume_role( 

    RoleArn="arn:aws:iam::123456789012:role/MyRole", 

    RoleSessionName="MySession" 

) 

# Estrarre le credenziali 

credentials = response['Credentials'] 

print("Access Key:", credentials['AccessKeyId']) 

print("Secret Key:", credentials['SecretAccessKey']) 

print("Session Token:", credentials['SessionToken'])

Il token dura solo 1 ora, migliorando la sicurezza rispetto a credenziali statiche. 

Azure Active Directory STS 

  • Descrizione 
    Azure AD STS gestisce l’autenticazione per applicazioni cloud e on-premise, supportando OAuth 2.0 e OpenID Connect. È ampiamente utilizzato con Microsoft 365 e Azure

Esempio: autenticazione con OAuth 2.0 su Azure AD 

Un’app deve autenticarsi con Azure AD e ottenere un token di accesso per chiamare Microsoft Graph API

Richiesta di un token di accesso con curl:

bash 

curl -X POST https://login.microsoftonline.com/{tenant_id}/oauth2/v2.0/token \ 

    -H "Content-Type: application/x-www-form-urlencoded" \ 

    -d "client_id={client_id}" \ 

    -d "client_secret={client_secret}" \ 

    -d "scope=https://graph.microsoft.com/.default" \ 

    -d "grant_type=client_credentials"

Risposta con token JWT:

json 

{ 

  "access_token": "eyJhbGciOiJIUzI1NiIs...", 

  "expires_in": 3600, 

  "token_type": "Bearer" 

}

L’app può ora accedere a Microsoft Graph API per leggere i dati dell’utente. 

Okta STS

  • Descrizione 
    Okta STS è un servizio cloud per la gestione delle identità, supporta OAuth 2.0 e OpenID Connect e permette integrazione con applicazioni aziendali e SaaS

Esempio: login con OpenID Connect in un’app web 

Un’app usa Okta per autenticare gli utenti con OAuth 2.0

Configurazione della richiesta di autenticazione OpenID Connect:

html 

<a href="https://your-okta-domain.com/oauth2/default/v1/authorize? 

    client_id=your_client_id& 

    response_type=code& 

    scope=openid profile email& 

    redirect_uri=https://yourapp.com/callback"> 

    Login con Okta 

</a>

L’utente viene reindirizzato a Okta, autenticato e riceve un token JWT. 

Google Cloud Identity-Aware Proxy (IAP) 

  • Descrizione 
    Google Cloud IAP protegge l’accesso alle applicazioni ospitate su Google Cloud Platform (GCP) e verifica l’identità degli utenti con OAuth 2.0

Esempio: verifica di un token di accesso IAP in un’app Node.js 

javascript 

const {OAuth2Client} = require('google-auth-library'); 

const client = new OAuth2Client(); 

async function verifyToken(token) { 

    const ticket = await client.verifyIdToken({ 

        idToken: token, 

        audience: "your-client-id.apps.googleusercontent.com" 

    }); 

    const payload = ticket.getPayload(); 

    console.log("User email:", payload.email);

L’app verifica se l’utente ha un token valido prima di concedere l’accesso. 

Sfide e best practices nella gestione di un STS 

  • Scalabilità e gestione delle sessioni 
    Un STS deve essere progettato per gestire un alto volume di richieste senza impattare le prestazioni. 
  • Configurazione sicura dei token 
    L’uso di chiavi di firma robuste e la definizione di una scadenza breve per i token aiuta a prevenire abusi. 
  • Monitoraggio e auditing continuo 
    Implementare log e strumenti di analisi aiuta a rilevare comportamenti sospetti e potenziali violazioni di sicurezza. 
  • Aggiornamento degli standard di sicurezza 
    È fondamentale adottare le versioni più recenti di OAuth, SAML e OpenID Connect per evitare vulnerabilità. 

Confronto tra STS e altri sistemi di autenticazione 

Caratteristica Security Token Service (STS) Identity Provider (IdP) API Gateway 
Scopo principale Emissione e gestione dei token di autenticazione Gestione dell’identità e autenticazione Protezione e gestione delle API 
Protocolli supportati OAuth, SAML, OpenID Connect SAML, LDAP, OAuth OAuth, JWT 
Uso principale Accesso federato e SSO Centralizzazione degli utenti e autenticazione Sicurezza delle API e gestione delle richieste 

Per concludere 

Un Security Token Service (STS) è essenziale per la gestione sicura dell’autenticazione e dell’autorizzazione in ambienti cloud e on-premise.

Utilizzando protocolli standard e integrandosi con altre soluzioni di sicurezza, un STS offre un accesso sicuro e centralizzato alle risorse digitali. 


Domande e risposte 

  1. Cos’è un Security Token Service e a cosa serve? 
    È un servizio che emette token di autenticazione per accedere in modo sicuro a risorse digitali. 
  1. Quali protocolli supporta un STS? 
    OAuth 2.0, SAML e OpenID Connect sono i più utilizzati. 
  1. Quali vantaggi ha rispetto alle password? 
    Riduce il rischio di furto di credenziali e permette l’SSO. 
  1. Come funziona l’autenticazione con STS? 
    Il STS autentica l’utente e genera un token che viene utilizzato per accedere ai servizi richiesti. 
  1. Supporta l’autenticazione multi-fattore (MFA)? 
    Sì, molti STS possono integrarsi con sistemi MFA. 
  1. Quali aziende offrono servizi STS? 
    Microsoft, AWS, Google, Okta e altre aziende tech. 
  1. Come proteggere un STS dagli attacchi? 
    Implementando crittografia avanzata, log e auditing. 
  1. Differenza tra STS e Identity Provider? 
    Un STS emette token, mentre un IdP gestisce identità. 
  1. Un STS può essere usato in ambienti on-premise? 
    Sì, può essere integrato con sistemi locali e cloud. 
  1. Best practices per la gestione di un STS? 
    Configurare scadenze sicure per i token, monitorare gli accessi e usare MFA. 
To top