Man mano che le applicazioni di IA generativa passano dai prototipi alle soluzioni di livello aziendale, garantire la sicurezza diventa imprescindibile. Queste applicazioni interagiscono spesso con dati sensibili degli utenti, database interni e logiche decisionali che devono essere protetti da accessi non autorizzati. Streamlit, pur essendo ottimo per sviluppare rapidamente interfacce IA interattive, non dispone di meccanismi di controllo degli accessi integrati. Pertanto, l'integrazione di robusti flussi di lavoro di autenticazione e autorizzazione è fondamentale per salvaguardare sia l'interfaccia utente che le API backend.
Panoramica dell'architettura AgentCreator Streamlit
Questa guida si concentra sulla protezione di un'applicazione generativa di agente di vendita basata su IA, realizzata con SnapLogic AgentCreator e distribuita tramite Streamlit. L'applicazione integra Salesforce OAuth 2.0 come provider di identità e protegge le sue API backend utilizzando SnapLogic API Management. Grazie a questa configurazione, solo gli utenti Salesforce autorizzati provenienti da un dominio affidabile possono accedere all'applicazione, garantendo la sicurezza end-to-end sia per il frontend che per il backend.
Comprendere lo stack applicativo
Ruolo del AgentCreator di SnapLogic
Lo SnapLogic AgentCreator consente agli sviluppatori e ai tecnici commerciali di creare sofisticati agenti basati sull'intelligenza artificiale senza dover gestire infrastrutture complesse. Questi agenti operano all'interno delle pipeline SnapLogic, facilitando l'integrazione della logica aziendale, delle integrazioni API e dell'elaborazione dei dati in modo modulare. Ad esempio, un assistente commerciale creato con AgentCreator esposto come API utilizzando Triggered Tasks può estrarre dati CRM in tempo reale, generare risposte intelligenti e restituirli tramite un'interfaccia web pulita.
Streamlit come interfaccia utente
Sul frontend, Streamlit viene utilizzato per creare un'interfaccia web semplice e interattiva che consente agli utenti di interrogare l'agente di vendita.
Importanza della gestione delle API nei flussi di lavoro dell'IA
Una volta che questi agenti sono esposti tramite API HTTP, è fondamentale gestire chi vi accede e in che modo. È qui che entra in gioco SnapLogic API Management. Fornisce strumenti di livello aziendale per la pubblicazione di API, la protezione degli endpoint, l'applicazione di controlli di accesso basati sui ruoli e il monitoraggio del traffico. Queste funzionalità garantiscono che solo gli utenti e i client verificati possano interagire con le vostre API, riducendo il rischio di accesso non autorizzato ai dati o di abuso.
Tuttavia, la vera sfida consiste nel garantire entrambe le estremità:
- L'interfaccia utente Streamlit, che deve limitare l'accesso agli utenti autorizzati.
- Le API SnapLogic, che espongono le AgentCreator che devono convalidare e autorizzare ogni richiesta in entrata.
Autenticazione OAuth 2.0: fondamenti e vantaggi
Che cos'è OAuth 2.0?
OAuth 2.0 è un protocollo standard aperto progettato per garantire un accesso delegato sicuro. Anziché condividere direttamente le credenziali, gli utenti concedono alle applicazioni l'accesso alle proprie risorse utilizzando token di accesso. Questo modello è particolarmente utile negli ambienti aziendali, dove la gestione centralizzata delle identità è fondamentale. Utilizzando OAuth 2.0, le applicazioni possono autenticare gli utenti tramite provider di identità (IDP) affidabili, mantenendo una separazione tra autenticazione, autorizzazione e logica dell'applicazione.
Perché utilizzare Salesforce come provider di identità (IDP)?
Salesforce è un solido provider di identità su cui molte organizzazioni già fanno affidamento per CRM, gestione degli utenti e sicurezza. Sfruttando Salesforce per l'autenticazione OAuth 2.0, gli sviluppatori possono attingere a una base utenti preesistente e a un framework di fiducia organizzativo. In questo tutorial, Salesforce viene utilizzato per gestire il login e l'emissione dei token, garantendo che solo gli utenti Salesforce autorizzati possano accedere all'applicazione Streamlit. Questa integrazione semplifica anche la conformità alle politiche di identità aziendali come SSO, MFA e restrizioni basate sul dominio.
Per risolvere il problema dell'autenticazione, utilizziamo il flusso di codici di autorizzazione OAuth 2.0, con Salesforce che funge sia da provider di identità che da provider di token.
Ecco la documentazione ufficiale di Salesforce sugli endpoint OAuth, utile per configurare la tua app connessa.
Nota: sebbene Salesforce sia una scelta logica per questo esempio, dato che l'agente di vendita interagisce con i dati di Salesforce, è possibile utilizzarequalsiasi provider di identità (IDP) conforme a OAuth2, come Google, Okta o Microsoft Entra ID (precedentemente Azure AD). Il flusso di autenticazione di base rimane lo stesso, con variazioni principalmente negli endpoint OAuth e nelle fasi di registrazione dell'app.
Panoramica dell'architettura e obiettivi di sicurezza
Frontend (Streamlit) vs Backend (API SnapLogic)
L'architettura dell'applicazione separa l'interfaccia frontend dalla logica backend. Il frontend è realizzato utilizzando Streamlit, che consente agli utenti di interagire con una dashboard visivamente intuitiva. Gestisce il login, visualizza le risposte generate dall'IA e acquisisce gli input degli utenti. Il backend, alimentato da AgentCreator di SnapLogic, ospita la logica di business principale all'interno di pipeline esposte come API. Questa separazione garantisce flessibilità e sviluppo modulare, ma introduce anche la sfida di proteggere entrambi i componenti in modo indipendente ma coeso.
Modello di minaccia e obiettivi di sicurezza
Le principali minacce alla sicurezza in un sistema di questo tipo includono l'accesso non autorizzato all'interfaccia utente, la fuga di dati attraverso API non protette e l'uso improprio dei token. Per mitigare questi rischi, sono stati stabiliti i seguenti obiettivi di sicurezza:
- Autenticazione: assicurarsi che solo gli utenti legittimi provenienti da un provider di identità affidabile (Salesforce) possano effettuare l'accesso.
- Autorizzazione: concedere l'accesso alle API in base ai ruoli e ai domini degli utenti, verificati tramite le politiche APIM di SnapLogic.
- Integrità dei token: convalida e ispeziona i token di accesso prima di consentire la comunicazione backend con le politiche APIM di SnapLogic.
- Gestione dei segreti: archivia le credenziali sensibili (come ID cliente e segreto) in modo sicuro utilizzando le funzionalità di gestione dei segreti di Streamlit.
Questo approccio stratificato è in linea con gli standard di sicurezza aziendali e fornisce un modello scalabile per le future applicazioni di IA generativa.
Flusso di autenticazione e autorizzazione
Ecco come gestiamo l'accesso in modo sicuro:
1. Accedi tramite Salesforce:
- Gli utenti vengono reindirizzati alla schermata di accesso di Salesforce.

Reindirizzamento alla pagina di accesso a Saleforce
- Dopo aver effettuato correttamente l'accesso, Salesforce reindirizza all'app con un token di accesso.
- Il token e le informazioni sull'identità dell'utente sono memorizzati nello stato della sessione di Streamlit.
2. Richiamo delle API SnapLogic:
- Il frontend invia richieste alle API delle attività attivate di SnapLogic, allegando il token di accesso Salesforce nell'intestazione HTTP di autorizzazione.
3. Protezione delle API tramite le politiche SnapLogic:
- Criterio di autenticazione Callout: convalida il token inviandolo all'endpoint di convalida dei token di Salesforce, poiché i token Salesforce sono opachi e non autonomi come i JWT.
- Criterio AuthorizeByRole: dopo aver estratto l'indirizzo e-mail dell'utente, questo criterio verifica se il dominio (ad esempio, @snaplogic.com) è consentito. In caso affermativo, l'accesso viene concesso.
Di seguito è riportato il flusso completo del codice di autorizzazione OAuth 2 potenziato con l'introspezione dei token.

Flusso di autenticazione e autorizzazione
Questa configurazione garantiscela sicurezza end-to-end, combinando l'autenticazione basata su OAuth con le funzionalità di gestione delle API di livello aziendale di SnapLogic. Nelle sezioni seguenti, illustreremo come implementare ciascuna parte, dalla configurazione dell'app Salesforce Connected alla configurazione delle politiche in SnapLogic, in modo da poter replicare o adattare questo modello alle proprie applicazioni di IA generativa.
Passaggio 1: configurare l'app connessa a Salesforce
Accedi alla console per sviluppatori Salesforce
Per avviare il flusso di autenticazione OAuth 2.0, è necessario registrare l'applicazione come app connessa in Salesforce. Inizia accedendo al tuo account sviluppatore o amministratore Salesforce. Dall'icona a forma di ingranaggio in alto a destra, vai su Impostazioni → Gestione app. Fai clic su "Nuova app connessa" per creare un nuovo profilo di applicazione abilitato per OAuth.
Definisci gli URL di callback OAuth e gli ambiti
Nel nuovo modulo Connected App, imposta i seguenti campi nella sezione API (Abilita impostazioni OAuth):
- URL di callback: dovrebbe essere l'URL della tua applicazione Streamlit (ad esempio, https://snaplogic-genai-builder.streamlit.app/Sales_Agent).
- Ambiti OAuth selezionati: includere almeno openid, email e profile. È possibile includere anche altri ambiti a seconda del livello di accesso richiesto.
Assicurati che la casella "Abilita impostazioni OAuth" sia selezionata per rendere questa app conforme a OAuth.
Recupera ID cliente e segreto cliente
Dopo aver salvato la configurazione dell'app, Salesforce genererà una chiave consumatore (ID cliente) e un segreto consumatore. Questi sono fondamentali per lo scambio OAuth e devono essere conservati in modo sicuro. Utilizzerai questi valori in seguito durante la configurazione dell'integrazione OAuth di Streamlit e delle impostazioni ambientali. Non esporre questi segreti nel tuo codice o nel controllo di versione.
Per ulteriori dettagli sugli endpoint OAuth di Salesforce, consultare: Documentazione sugli endpoint OAuth di Salesforce
Passaggio 2: integrare OAuth con Streamlit utilizzando streamlit-oauth
Installare e configurare il pacchetto streamlit-oauth
Per incorporare l'autenticazione OAuth 2.0 nella tua applicazione Streamlit, puoi utilizzare il pacchetto di terze parti streamlit-oauth (streamlit-oauth). Questo pacchetto astrae il flusso OAuth e semplifica l'integrazione con i provider di identità più diffusi come Salesforce. Per installarlo, esegui il seguente comando nel tuo terminale:
pip install streamlit-oauth
Dopo l'installazione, configurerai OAuth2Component per avviare il processo di accesso e gestire la ricezione del token una volta completata l'autenticazione.
Gestisci ClientID e ClientSecret in modo sicuro
Una volta che gli utenti effettuano l'accesso tramite Salesforce, l'app riceve un token di accesso e un token ID. Questi token non devono mai essere esposti nell'interfaccia utente né registrati pubblicamente. È invece necessario memorizzarli in modo sicuro in st.session_state, il sistema di gestione delle sessioni nativo di Streamlit. In questo modo si garantisce che i token siano collegati alla sessione dell'utente e che sia possibile accedervi per le chiamate API successive nel flusso.
Archivia le credenziali tramite Streamlit Secrets Management
Memorizzare segreti come CLIENT_ID e CLIENT_SECRET direttamente nel codice sorgente rappresenta un rischio per la sicurezza. Streamlit fornisce un sistema integrato di gestione dei segreti che consente di memorizzare informazioni sensibili in un file .streamlit/secrets.toml, che dovrebbe essere escluso dal controllo di versione.
Esempio:
# .streamlit/secrets.toml
SF_CLIENT_ID = "your_client_id"
SF_CLIENT_SECRET = "your_client_secret"
Nel tuo codice, puoi accedervi in modo sicuro:
CLIENT_ID = st.secrets["SF_CLIENT_ID"]
CLIENT_SECRET = st.secrets["SF_CLIENT_SECRET"]
Passaggio 3: Gestire le impostazioni dell'ambiente con python-dotenv
Perché le variabili d'ambiente sono importanti
La gestione delle configurazioni specifiche dell'ambiente è essenziale per mantenere applicazioni sicure e scalabili. Oltre a memorizzare le credenziali sensibili utilizzando la gestione dei segreti di Streamlit, la memorizzazione di parametri OAuth dinamici come URL, ambiti e URI di reindirizzamento in un file di ambiente (ad esempio .env) consente di mantenere il codice pulito e la configurazione flessibile. Ciò è particolarmente utile se si prevede di eseguire l'implementazione in più ambienti (sviluppo, staging, produzione) con impostazioni diverse.
Memorizza gli endpoint OAuth nei file .env
Per gestire le impostazioni dell'ambiente, utilizza il pacchetto python-dotenv (python-dotenv), che carica le variabili di ambiente da un file .env nella tua applicazione Python. Innanzitutto, installa la libreria:
pip install python-dotenv
Crea un file .env nella directory del tuo progetto con il seguente formato:
SF_AUTHORIZE_URL=https://login.salesforce.com/services/oauth2/authorize
SF_TOKEN_URL=https://login.salesforce.com/services/oauth2/token
SF_REVOKE_TOKEN_URL=https://login.salesforce.com/services/oauth2/revoke
SF_REDIRECT_URI=https://your-streamlit-app-url
SF_SCOPE=id openid email profile
Quindi, utilizza la funzione dotenv_values per caricare le variabili nello script:
from dotenv import dotenv_values
env = dotenv_values(".env")
AUTHORIZE_URL = env["SF_AUTHORIZE_URL"]
TOKEN_URL = env["SF_TOKEN_URL"]
REVOKE_TOKEN_URL = env["SF_REVOKE_TOKEN_URL"]
REDIRECT_URI = env["SF_REDIRECT_URI"]
SCOPE = env["SF_SCOPE"]
Questo approccio garantisce che i dati sensibili e specifici dell'ambiente siano separati dal codice base, migliorando la manutenibilità e la sicurezza.
Passaggio 4: configurare il flusso OAuth in Streamlit
Definire il componente OAuth2 e la logica di reindirizzamento
Una volta impostate le variabili di ambiente e i segreti, è il momento di configurare il flusso OAuth in Streamlit utilizzando il componente OAuth2Component del pacchetto streamlit-oauth. Questo componente gestisce il reindirizzamento dell'utente alla pagina di accesso di Salesforce, il recupero del token e l'analisi della risposta al ritorno alla tua app.
from streamlit_oauth import OAuth2Component
oauth2 = OAuth2Component(
client_id=CLIENT_ID,
client_secret=CLIENT_SECRET,
authorize_url=AUTHORIZE_URL,
token_url=TOKEN_URL,
redirect_uri=REDIRECT_URI
)
# create a button to start the OAuth2 flow
result = oauth2.authorize_button(
name="Log in",
icon="https://www.salesforce.com/etc/designs/sfdc-www/en_us/favicon.ico",
redirect_uri=REDIRECT_URI,
scope=SCOPE,
use_container_width=False
)
Questo pulsante avvia il flusso OAuth2 e gestisce il reindirizzamento in modo trasparente. Una volta che l'utente ha effettuato correttamente l'accesso, Salesforce lo reindirizza all'app con un token valido.
Gestione dello stato della sessione per token e dati utente
Dopo l'autenticazione, i token restituiti vengono memorizzati in st.session_state per mantenere un contesto sicuro per ogni utente. Ecco come decodificare il token ed estrarre i dettagli dell'identità dell'utente:
if result:
#decode the id_token and get the user's email address
id_token = result["token"]["id_token"]
access_token = result["token"]["access_token"]
# verify the signature is an optional step for security
payload = id_token.split(".")[1]
# add padding to the payload if needed
payload += "=" * (-len(payload) % 4)
payload = json.loads(base64.b64decode(payload))
email = payload["email"]
username = payload["name"]
#storing token and its parts in session state
st.session_state["SF_token"] = result["token"]
st.session_state["SF_user"] = username
st.session_state["SF_auth"] = email
st.session_state["SF_access_token"]=access_token
st.session_state["SF_id_token"]=id_token
st.rerun()
else:
st.write(f"Congrats **{st.session_state.SF_user}**, you are logged in now!")
if st.button("Log out"):
cleartoken()
st.rerun()
Questo meccanismo garantisce che il contesto dell'utente autenticato venga preservato durante tutte le interazioni e che i token sensibili rimangano protetti all'interno della sessione.
Il nome utente viene visualizzato nell'interfaccia utente dopo aver effettuato correttamente l'accesso.

Passaggio 5: Creare ed esporre l'attività attivata da SnapLogic
Costruisci la logica di backend con AgentCreator
Una volta gestita l'autenticazione degli utenti sul frontend, il passo successivo consiste nel creare la logica di business sul backend utilizzando SnapLogic AgentCreator. Questo toolkit consente di progettare pipeline basate sull'intelligenza artificiale che si integrano con le fonti di dati, eseguono elaborazioni intelligenti e restituiscono risposte contestualizzate. È possibile utilizzare Snap predefiniti (connettori SnapLogic) per Salesforce, OpenAI e altri servizi per assemblare la pipeline dell'agente di vendita.
Genera l'URL di attivazione per l'accesso all'API
Una volta che la pipeline è stata testata e risulta funzionante, esponila come API utilizzando un'attività attivata:
- In SnapLogic Designer, apri la pipeline Agente di vendita.
- Clicca su "Crea attività" e seleziona "Attività attivata".
- Assegnare un nome significativo e impostare i parametri di esecuzione, se necessario.
- Dopo aver salvato, prendi nota dell'URL di attivazionegenerato: questo fungerà da endpoint backend a cui l'app Streamlit invierà le richieste.
Questo URL è il ponte tra il frontend autenticato e la logica AI sicura sulla piattaforma SnapLogic. Tuttavia, prima di collegarlo a Streamlit, è necessario proteggerlo utilizzando SnapLogic API Management, che tratteremo nella sezione successiva.
Passaggio 6: Proteggi l'API con SnapLogic API Manager
Introduzione alle politiche API: autenticazione e autorizzazione
Per impedire l'accesso non autorizzato al backend, è necessario proteggere l'endpoint Triggered Task utilizzando SnapLogic API Management. SnapLogic abilita la sicurezza basata su criteri, consentendo di applicare l'autenticazione e l'autorizzazione utilizzando token emessi da Salesforce. Verranno applicati due criteri principali: Callout Authenticator e Authorize By Role.

Aggiungi criterio di autenticazione callout
Questa politica convalida il token di accesso ricevuto da Salesforce. Poiché i token Salesforce sono opachi (non autonomi come i JWT), la politica Callout Authenticator invia il token all'endpoint di introspezione di Salesforce per la convalida. Se il token è attivo, Salesforce restituisce i metadati dell'utente (e-mail, ambito, ID cliente, ecc.).
Esempio di risposta di introspezione token valida:
{
"active": true,
"scope": "id refresh_token openid",
"client_id": "3MVG9C...",
"username": "[email protected]",
"sub": "https://login.salesforce.com/id/...",
"token_type": "access_token",
"exp": 1743708730,
"iat": 1743701530,
"nbf": 1743701530
}
Se il token non è valido o è scaduto, la risposta mostrerà semplicemente:
{
"active": false
}
Di seguito è possibile vedere la configurazione della politica di autenticazione delle chiamate:


Aggiungi politica AuthorizeByRole
Una volta convalidato il token, la politica Authorize By Role (Autorizza per ruolo) controlla il nome utente (e-mail) restituito da Salesforce. È possibile configurare questa politica per consentire l'accesso solo agli utenti provenienti da un dominio attendibile (ad esempio, @snaplogic.com), assicurando che gli utenti esterni non possano sfruttare l'API.
Ad esempio, è possibile configurare la politica in modo da verificare la presenza di "snaplogic" nella parte del dominio dell'indirizzo e-mail. Ciò aggiunge un secondo livello di sicurezza dopo la verifica del token e supporta modelli di accesso solo interni.

Passaggio 7: collegare il frontend Streamlit all'API protetta
Trasmettere i token di accesso nell'intestazione di autorizzazione HTTP
Una volta che l'utente ha effettuato correttamente l'accesso e il token di accesso è stato memorizzato in st.session_state, è possibile utilizzare questo token per comunicare in modo sicuro con l'endpoint SnapLogic Triggered Task. Il token di accesso deve essere incluso nell'intestazione Authorization della richiesta HTTP utilizzando lo schema Bearer token.
headers = {
'Authorization': f'Bearer {st.session_state["SF_access_token"]}'
}
Ciò garantisce che SnapLogic API Manager possa convalidare la richiesta e applicare sia le politiche di autenticazione che quelle di autorizzazione prima di eseguire la logica di backend.
Visualizza le risposte API nell'interfaccia utente Streamlit
Per rendere l'interazione fluida, è possibile acquisire l'input dell'utente, inviarlo all'API protetta e visualizzare la risposta direttamente nell'app Streamlit. Ecco un esempio di come potrebbe apparire questa interazione:
import requests
import streamlit as st
prompt = st.text_input("Ask the Sales Agent something:")
if st.button("Submit"):
with st.spinner("Working..."):
data = {"prompt": prompt}
headers = {
'Authorization': f'Bearer {st.session_state["SF_access_token"]}'
}
response = requests.post(
url="https://your-trigger-url-from-snaplogic",
data=data,
headers=headers,
timeout=10,
verify=False # Only disable in development
)
if response.status_code == 200:
st.success("Response received:")
st.write(response.text)
else:
st.error(f"Error: {response.status_code}")
Questo collega completamente il frontend al backend protetto, consentendo interazioni sicure e in tempo reale con il tuo agente AI generativo.
Problemi comuni e risoluzione dei problemi
Gestione dei token scaduti o non validi
Uno dei problemi più comuni nelle applicazioni protette da OAuth è la gestione dei token scaduti o non validi. Poiché i token di accesso Salesforce hanno una durata limitata, gli utenti che rimangono inattivi per un certo periodo potrebbero vedere le loro sessioni invalidate. Per risolvere questo problema:
- Controlla sempre la validità del token prima di effettuare chiamate API.
- Gestisci con eleganza le risposte 401 Non autorizzato richiedendo all'utente di effettuare nuovamente l'accesso.
- Implementa un meccanismo di aggiornamento dei token se la tua applicazione supporta sessioni di lunga durata (richiede la configurazione dei token di aggiornamento in Salesforce).
Gestendo in modo proattivo il ciclo di vita dei token, si prevengono interruzioni dell'esperienza utente e si garantisce la sicurezza delle comunicazioni API.
Risoluzione degli errori di reindirizzamento OAuth
Le configurazioni errate del reindirizzamento OAuth possono bloccare il flusso di autenticazione. Di seguito sono riportati i problemi più comuni e le relative soluzioni:
- URL di callback errato: assicurati che SF_REDIRECT_URI nel tuo file .env corrisponda esattamente a quanto definito nelle impostazioni dell'app connessa a Salesforce.
- Ambiti mancanti: se il token non contiene i campi di identità previsti (come l'indirizzo e-mail), verificare che tutti gli ambiti richiesti (openid, email, profile) siano inclusi sia nella configurazione dell'app che nella richiesta OAuth.
- Restrizioni di dominio: se l'accesso viene negato anche dopo aver effettuato correttamente il login, verificare che il dominio e-mail dell'utente corrisponda alla politica impostata in SnapLogic API Manager.
Registrare i messaggi di errore restituiti e utilizzare gli strumenti di sviluppo del browser può aiutarti a individuare il problema durante le fasi di reindirizzamento e callback.
Migliori pratiche per l'implementazione sicura delle applicazioni di intelligenza artificiale
Ruota regolarmente i segreti
Per ridurre il rischio di fuga di informazioni riservate e potenziali abusi, è essenziale ruotare regolarmente le credenziali sensibili, come CLIENT_ID e CLIENT_SECRET. Anche se Secrets Management di Streamlit archivia questi valori in modo sicuro, la rotazione periodica garantisce la resilienza contro l'esposizione accidentale, le minacce interne o le configurazioni errate del repository.
Per semplificare questa operazione, imposta dei promemoria sul calendario o utilizza pipeline DevSecOps automatizzate che sostituiscono i segreti e aggiornano i file di ambiente o gli archivi segreti di conseguenza.
Monitorare i log API e gli errori di autenticazione
La sicurezza non si esaurisce con l'implementazione. Il monitoraggio continuo è fondamentale per identificare potenziali abusi o tentativi di intrusione. L'interfaccia API Management di SnapLogic fornisce metriche dettagliate che possono aiutarti a:
- Traccia l'utilizzo dell'API per utente o indirizzo IP.
- Identificare errori ripetuti di autorizzazione o errori di ispezione dei token.
- Individua modelli anomali come volumi di chiamate inaspettati o richieste malformate.

Estensione dell'architettura
Supporto di altri provider OAuth (Google, Okta, Entra ID)
Sebbene questo tutorial si concentri su Salesforce come provider di identità OAuth 2.0, la stessa architettura di sicurezza può essere estesa per supportare altri provider popolari come Google, Okta e Microsoft Entra ID (precedentemente Azure AD). Questi provider sono completamente conformi a OAuth e in genere offrono endpoint simili per l'autorizzazione, lo scambio di token e l'introspezione degli utenti.
Per cambiare provider, aggiorna quanto segue nel tuo file .env:
- SF_AUTHORIZE_URL
- SF_TOKEN_URL
- SF_SCOPE (come da documentazione del fornitore)
Inoltre, assicurati che la tua app sia registrata nel portale degli sviluppatori del rispettivo provider e configurata con l'URI di reindirizzamento e gli ambiti corretti.
Aggiunta di controlli di accesso basati sui ruoli
Per implementazioni più grandi, il semplice filtraggio basato sul dominio potrebbe non essere sufficiente. È possibile estendere la logica di autorizzazione incorporando controlli di accesso basati sui ruoli (RBAC). Ciò può essere ottenuto:
- Inclusione di ruoli personalizzati nel payload del token OAuth (ad esempio tramite attestazioni personalizzate).
- Analisi di questi ruoli nella politica AuthorizeByRole di SnapLogic.
- Limitare l'accesso a specifiche API o funzionalità in base ai ruoli degli utenti (ad esempio, amministratore, analista, visualizzatore).
RBAC consente di creare applicazioni multilivello con autorizzazioni differenziate, mantenendo al contempo una solida governance della sicurezza.
Considerazioni finali sull'implementazione sicura delle app di IA
La protezione delle applicazioni di IA generativa non è più facoltativa, soprattutto quando sono progettate per casi d'uso aziendali che coinvolgono dati sensibili, interazioni con i clienti e automazione delle decisioni. Questo tutorial ha illustrato un modello di sicurezza completo che utilizzaSnapLogic AgentCreator e Streamlit, autenticato tramite Salesforce OAuth 2.0 e protetto tramite SnapLogic API Management.
Seguendo questo approccio graduale, garantisci che solo gli utenti verificati possano accedere alla tua app e che le API backend siano protette da politiche di autenticazione a più livelli e autorizzazione basata sui ruoli. La stessa architettura può essere facilmente estesa ad altri provider o scalata su più flussi di lavoro AI all'interno della tua organizzazione.
Risorse per approfondimenti
- Risorse e casi d'uso di SnapLogic
- Documentazione per sviluppatori Salesforce
- Documentazione Streamlit
- Specifiche ufficiali OAuth 2.0
Con una base solida, ora hai la possibilità di creare e scalare con sicurezza potenti applicazioni di intelligenza artificiale di livello aziendale.





