Accedi con ChatGPT
Il 2 agosto 2026 OpenAI ha trasformato ChatGPT in un provider di identità. "Accedi con ChatGPT" è ora in beta pubblica, sullo stesso rack di pulsanti di Accedi con Google, Apple e Microsoft — e sta ridisegnando silenziosamente dove finirà a vivere buona parte dell'auth B2B. Questa pagina è per due lettori insieme: l'utente che vuole sapere cosa attraversa davvero il confine cliccando il pulsante, e lo sviluppatore che deve decidere se aggiungerlo alla propria app (e in caso positivo, come, senza rendere OpenAI una dipendenza portante).
- Capire cosa riceve un'app partner quando un utente accede con ChatGPT — e cosa no
- Conoscere i sei partner del lancio e perché sono stati scelti (è un segnale, non una coincidenza)
- Percorrere l'esatto flusso OAuth 2.1 + PKCE + OIDC che ChatGPT si aspetta sul tuo server
- Vedere i controlli per admin enterprise già disponibili — e il default che sorprende
- Conoscere le modalità di fallimento da progettare prima di mettere il pulsante sulla schermata di login
La versione da 60 secondi
- Cosa è stato lanciato. Un sistema di identità cross-platform: gli utenti possono creare o collegare un account su siti partner usando le proprie credenziali ChatGPT, come farebbero con Google o Apple. Annunciato il 2 ago 2026 come beta.
- Cosa attraversa il confine al sign-in. Tre claim: nome, email, foto profilo. Niente altro, e niente sulla cronologia chat dell'utente.
- Chi è sul palco per primo. Sei partner di lancio dal mondo dev-tools: Airtable, GitLab, HubSpot, Notion, Supabase, Vercel. Non è una lista casuale — è il gruppo muscolare che permette a una sessione ChatGPT di costruire e deployare software end-to-end.
- Cosa devono costruire gli sviluppatori. Un flusso standard OAuth 2.1 authorization-code con PKCE (S256) e discovery OIDC — ChatGPT si registra da solo via Dynamic Client Registration al tuo
registration_endpointe chiama il tuoauthorization_endpoint/token_endpointcome qualsiasi altro client. Se già supporti OIDC, sei all'80% del lavoro. - Il default enterprise che frega. Le organizzazioni che non hanno impostato una policy esplicita sono opt-in di default; gli admin possono spegnere Sign in with ChatGPT a livello di org o limitarlo a un allow-list di app partner.
Perché è più importante di "un altro pulsante di login"
I pulsanti di login sembrano intercambiabili finché non ti accorgi di chi diventa il provider di identità. Google Sign-in ha normalizzato il pattern in cui un fornitore di produttività possiede anche la tua identità. Sign in with ChatGPT fa lo stesso trucco — ma dal lato assistente del workflow, non dal lato casella email.
Da lì seguono due cose, e vale la pena nominarle:
- Il provider di identità è ora il posto dove i tuoi utenti hanno già una sessione attiva con un agente. Quell'agente può, per conto dell'utente, invocare connettori Apps SDK su siti partner (Notion, Vercel, Supabase, ...) con un token che l'utente ha appena approvato. Il pulsante non è solo "fammi accedere"; è "lascia che questo assistente allunghi la mano dentro quello strumento per me".
- I partner del lancio sono gli strumenti di cui un agente di coding autonomo ha bisogno. Modello + DB (Supabase) + backend (GitLab / Vercel) + documentazione (Notion) + foglio di calcolo di riferimento (Airtable) + CRM (HubSpot). È la forma di una sessione che inizia in ChatGPT e finisce con qualcosa spedito. È un'anteprima di dove OpenAI si aspetta che vivranno le sessioni Apps SDK.
Se stai costruendo su Claude e stai leggendo pensando "questo non mi tocca" — ti tocca, indirettamente. Qualunque assistente i tuoi utenti usino anche loro, vorrà allungare la mano negli stessi tool B2B che usi tu, con lo stesso layer di login. Capire questo pattern presto è come decidi se accettarlo, rispecchiarlo (Sign in with Claude non è un prodotto pubblico oggi), o girarci intorno con il tuo OIDC.
Cosa attraversa davvero il confine
Il perimetro dei claim al sign-in è deliberatamente stretto. Quando un utente completa il flusso, il partner riceve:
| Claim | Incluso? | Note |
|---|---|---|
name | ✅ | Il display name dell'utente sul suo account ChatGPT |
email | ✅ | L'email associata all'account ChatGPT |
picture | ✅ | URL della foto profilo |
| Cronologia chat | ❌ | Mai condivisa con il partner |
| Memorie / istruzioni personalizzate | ❌ | Mai condivise |
| Piano (Free / Plus / Pro / Enterprise) | ❌ | Non esposto come claim al sign-in |
| Dati di pagamento | ❌ | Non nello scope di questo flusso |
Il corollario — la parte che gli utenti tendono a perdersi — è cosa OpenAI impara dal lato partner: in quali app hai fatto sign-in, e quando. È la forma di ogni identità federata: l'IdP vede i tuoi login, il RP vede la tua identità. È lo stesso patto che fai con Google o Apple; sta solo venendo fatto con una nuova controparte la cui ragion d'essere è diversa.
- Sign in with ChatGPT è una federazione di login, non un tunnel di condivisione dati. Il partner riceve claim di identità, non le tue chat — ma OpenAI vede in quali partner accedi.
- Il default enterprise è opt-in. Se gestisci un'org Enterprise o Team e non hai toccato le impostazioni, i tuoi utenti possono già usarlo su una qualsiasi delle sei app partner oggi.
I sei partner del lancio — leggili come una forma
L'elenco del lancio è la storia qui. Raggruppati per cosa permettono a una sessione di realizzare:
- Dati / fogli di calcolo — Airtable
- Documenti / conoscenza — Notion
- Codebase / SCM — GitLab
- Database / backend — Supabase
- Deploy / hosting — Vercel
- CRM / dati GTM — HubSpot
Non è "sei early adopter presi a caso". È lo stack operativo di una sessione builder guidata da ChatGPT: pesca un lead da HubSpot, guarda il record in Airtable, scrivi il cambio in Notion, spedisci il codice via GitLab, migra il DB in Supabase, deploya via Vercel. Ognuno di quei passi è un posto in cui i connettori Apps SDK di OpenAI già vogliono stare.
Se il tuo prodotto è adiacente a uno di questi — issue tracker, CRM, low-code, vector store, analytics — assumi che il supporto a Sign in with ChatGPT diventerà una domanda table-stakes dai tuoi buyer enterprise nei prossimi due trimestri.
Cosa deve costruire uno sviluppatore
La buona notizia: è semplice OAuth 2.1 + OIDC. Se hai già un authorization server che parla OIDC discovery e Dynamic Client Registration, per lo più configuri, non scrivi codice. Ecco la forma che ChatGPT si aspetta.
Gli endpoint che ChatGPT chiama
- Esponi /.well-known/openid-configuration (e, se questo è un resource server MCP, /.well-known/oauth-protected-resource che punta a esso). ChatGPT lo legge per trovare i tuoi authorization_endpoint, token_endpoint, registration_endpoint e jwks_uri.
- ChatGPT fa POST al tuo registration_endpoint per registrarsi come client pubblico. Salvi il client_id restituito. Nessun secret condiviso viene emesso — PKCE è il meccanismo anti-replay.
- ChatGPT redirige l'utente al tuo authorization_endpoint con response_type=code, code_challenge, code_challenge_method=S256, gli scope richiesti, e il parametro resource che identifica la tua API.
- La tua schermata di consenso mostra all'utente cosa sta chiedendo ChatGPT. Mostra gli scope richiesti alla lettera; non nasconderli dietro un riassunto amichevole. Questa è l'unica occasione dell'utente per vederli.
- ChatGPT invia il code e il code_verifier al tuo token_endpoint. Emetti un access token il cui aud combaci con il parametro resource, e (se supporti gli scope OIDC) un id_token.
- Alla scadenza, ChatGPT rilancia il flusso. Se hai emesso un id_token, ChatGPT lo ripassa via id_token_hint così l'utente non deve rifare il sign-in — vede solo il consenso incrementale.
I requisiti non ovvi
La maggior parte dei team che sbaglia perde una giornata su uno di questi:
- PKCE è obbligatorio e deve essere
S256. Pubblicizza"code_challenge_methods_supported": ["S256"]nel tuo documento di discovery.plainnon è accettato. - Devi legare l'access token alla resource. Usa il parametro
resourcee copia il suo valore nel claimauddel token. Se non lo fai, un attacco di audience-confusion è la tua vulnerabilità principale. - Client pubblico, niente secret. ChatGPT usa
token_endpoint_auth_method: none(o, se preferisci,private_key_jwtcontro la JWKS pubblicata di ChatGPT). Non richiedere unclient_secretnello scambio del token o il flusso fallisce e basta. - Ruota a ogni refresh. Tratta i refresh token come one-time-use, ruotati a ogni scambio. È guidance standard di OAuth 2.1, ed è la differenza tra un refresh token rubato che è fastidioso e uno catastrofico.
- Gestisci la revoca centrale. Un admin enterprise può revocare Sign in with ChatGPT a livello di org in qualsiasi momento. La tua app deve degradare con grazia — un 401 sul refresh del token non è un bug da mandare in pager; è un segnale per chiedere all'utente di ricollegare o fare fallback al tuo login nativo.
Il documento di discovery minimo
Abbastanza per far parlare ChatGPT con te (riempi il tuo issuer e i path):
Minimo /.well-known/openid-configuration per Sign in with ChatGPT
{
"issuer": "https://auth.example.com",
"authorization_endpoint": "https://auth.example.com/oauth/authorize",
"token_endpoint": "https://auth.example.com/oauth/token",
"registration_endpoint": "https://auth.example.com/oauth/register",
"jwks_uri": "https://auth.example.com/.well-known/jwks.json",
"response_types_supported": ["code"],
"grant_types_supported": ["authorization_code", "refresh_token"],
"code_challenge_methods_supported": ["S256"],
"token_endpoint_auth_methods_supported": ["none", "private_key_jwt"],
"subject_types_supported": ["public"],
"id_token_signing_alg_values_supported": ["RS256"],
"scopes_supported": ["openid", "email", "profile"]
}Lo scope che probabilmente vuoi
Se stai costruendo un'app partner e vuoi accettare Sign in with ChatGPT puramente come segnale di identità — nessun accesso data-plane all'account ChatGPT dell'utente — richiedi solo gli scope OIDC:
Richiesta di autorizzazione solo-identità (nessun accesso data-plane)
GET /oauth/authorize?
response_type=code
&client_id={registered_client_id}
&redirect_uri=https://chatgpt.com/connector/oauth/{callback_id}
&scope=openid+email+profile
&code_challenge={base64url(sha256(verifier))}
&code_challenge_method=S256
&state={csrf_nonce}
&resource=https://api.example.comLa forma dell'URI di redirect (https://chatgpt.com/connector/oauth/{callback_id}) è importante — è quella attraverso cui ChatGPT stesso instrada il ritorno, non una che configuri dal tuo lato.
Controlli enterprise (e il default che ti morderà)
Per le organizzazioni sui piani Team / Enterprise, gli admin hanno due controlli oggi:
- Disabilitare Sign in with ChatGPT a livello di org. Spegne il pulsante per tutti nell'org.
- Limitare a una lista approvata di app partner. Gli utenti possono completare il flusso solo verso i partner nella tua allow-list.
La sfumatura: le org senza una policy esplicita sono opt-in di default — per i sei partner del lancio, tutti i tuoi utenti possono usare il pulsante proprio adesso. Se la tua postura di sicurezza non permette identità federata verso terze parti arbitrarie, devi cambiare il default esplicitamente. È la singola frase che influenza di più i deployment enterprise reali di questo mese.
Come si confronta con Google / Apple / Microsoft sign-in
| Dimensione | Sign in with ChatGPT | Apple | Microsoft | |
|---|---|---|---|---|
| Claim di identità al sign-in | nome, email, foto | Ampi (nome, email, foto, più scope opzionali per dati) | Nome, opzione email private-relay | Nome, email, info tenant |
| Accesso data-plane con la stessa auth | Sì — i connettori Apps SDK possono ricevere i propri scope nella stessa sessione | Sì — API Google via OAuth scoped | Limitato (Sign in with Apple è principalmente identità) | Sì — Graph API via OAuth scoped |
| Opzione email anonimizzata | No (oggi) | No | Sì — email private-relay | No |
| Controlli admin enterprise | Disabilitazione org-wide + allow-list partner | Console admin Workspace completa | Gestito da MDM | Console Entra ID completa |
| Client pubblico + PKCE richiesto | Sì, S256 obbligatorio | Opzionale (raccomandato) | Sì | Sì |
| Sessione cross-app con un agente | Sì — è il punto | No | No | No (Copilot è una storia separata) |
Due righe da notare: niente email private-relay (a differenza di Apple, gli utenti non possono nascondere il loro indirizzo reale), e sessione cross-app con un agente (la riga che spiega perché questa cosa esiste in primo luogo).
Quando aggiungerlo — e quando girarci intorno
- Aggiungilo se i tuoi buyer sono AI-forward e il tuo prodotto sta dentro le sei categorie adiacenti ai partner (dev tools, dati, docs, CRM, deploy). Il pulsante è un segnale, economico da aggiungere se già supporti OIDC.
- Aggiungilo se vuoi che la tua app sia raggiungibile da una sessione ChatGPT come connettore Apps SDK. Sign in with ChatGPT è la porta d'ingresso naturale per questo.
- Giragli intorno se i tuoi utenti sono regolamentati (sanità, finanza, PA) e OpenAI non è nella lista dei sub-processor approvati — l'identità federata implica fiducia sul trattamento dati.
- Giragli intorno se la differenziazione del tuo prodotto è essere AI-neutrale. Aggiungere il pulsante di un assistente e non degli altri è una dichiarazione di posizionamento, lo volessi o no.
Il pattern pragmatico su cui la maggior parte dei team atterra: spediscilo affiancato a Google, Apple e Microsoft (non al posto di nessuno di loro), limitato ai claim solo-identità, con l'interruttore admin enterprise cablato ai tuoi controlli SSO esistenti.
Modalità di fallimento da progettare
Prima di mandare in produzione il pulsante, cabla i quattro percorsi di fallimento:
- Un admin enterprise disabilita Sign in with ChatGPT mentre l'utente ha una sessione live. Il tuo prossimo refresh del token restituisce 401. Non fare logout dell'utente in silenzio — mostra un prompt chiaro 'ricollega il tuo account' con un fallback al login nativo.
- L'utente ha ancora una sessione valida nella tua app ma la sua email ChatGPT-linked è ora dormiente. Lascialo attaccare una password / passkey all'account esistente invece di renderlo orfano.
- L'admin rimuove la tua app dall'allow-list. Stessa gestione della revoca centrale. Fornisci un endpoint lato support che logga la ragione così gli admin possono fare audit.
- La tua schermata di login non deve bloccarsi sulla discovery OIDC di ChatGPT. Cacha il documento di discovery con un TTL sano e falliscilo velocemente se è stantio — non far mai appendere la pagina di login in attesa di un IdP di terze parti.
Verifica veloce
Check yourself
0/4Correlato su AILmanac
- ChatGPT per utenti Claude — la mappa dei modelli mentali se stai attraversando da Claude
- MCP 2026-07-28: la spec stateless — il cambio gemello sul lato Anthropic dell'ecosistema
- MCP Apps (SEP-1865) — la prima estensione ufficiale MCP per UI interattive, la controparte dell'Apps SDK di OpenAI
- Scegliere un modello — framework di decisione cross-provider
Fonti e approfondimenti
- OpenAI — Introducing Sign in with ChatGPT
- OpenAI Developers — Apps SDK: Authentication
- OpenAI — ChatGPT release notes
- OpenAI — GPT Action authentication
- Stytch — Guide to authentication and user consent in the OpenAI Apps SDK
- IETF — OAuth 2.1 draft
- OpenID Foundation — OpenID Connect Core 1.0