> This page is for Piattaforma, version V4 (default).
> For other versions, use one of these documentation indexes:
> - V4 (default): https://next.developer.frame.io/platform/v4/llms.txt
> - V4 sperimentale: https://next.developer.frame.io/platform/v4-experimental/llms.txt
> - Versione precedente: https://next.developer.frame.io/platform/v2/llms.txt

> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://next.developer.frame.io/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://next.developer.frame.io/_mcp/server.

# Autenticazione

L'API V4 Frame.io usa [Adobe Identity Management Service (IMS)](https://developer.adobe.com/developer-console/docs/guides/authentication/), la piattaforma di identità OAuth 2.0 di Adobe. Esistono due categorie di autenticazione:

#### Autenticazione server-to-server

Consente agli utenti di account tecnici o di servizio di intervenire senza interazioni da parte dell'utente. Disponibile solo per gli account Frame.io V4 amministrati tramite [Adobe Admin Console](https://adminconsole.adobe.com).

#### Autenticazione utente

Agisce come l'utente di cui possiede il token. Disponibile per tutti gli account Frame.io V4 amministrati tramite Adobe Admin Console, nonché per gli account gestiti da Frame che sono [passati all'autenticazione Adobe](https://help.frame.io/it/articles/11758018-connecting-to-adobe-authentication).

---

## Guide all'autenticazione SDK

Gli SDK Frame.io gestiscono per conto tuo l'intero ciclo di vita OAuth: URL di autorizzazione, scambio di token, aggiornamento automatico e revoca. Per prima cosa, scegli il linguaggio:

#### [SDK Python](./python-sdk)

`ServerToServerAuth`, `WebAppAuth`, and `SPAAuth` con supporto sincrono e asincrono.

#### [SDK TypeScript](./typescript-sdk)

`ServerToServerAuth`, `WebAppAuth`, `SPAAuth` e `NativeApp` per l'autenticazione in ambienti Node.js e browser.

> **Tip**
>
> Se stai creando un servizio di backend o automazione, inizia con **Server-to-Server**. Se la tua app ha utenti che accedono, scegli **Web app** (se puoi archiviare un client secret) o **SPA** (se non puoi).

---

## Autenticazione utente

Le credenziali per l'autenticazione utente vengono create in [Adobe Developer Console](https://developer.adobe.com/console). Adobe supporta tre tipi di credenziali: scegli quelle che corrispondono all'architettura della tua applicazione:

#### [Web app OAuth](https://developer.adobe.com/developer-console/docs/guides/authentication/UserAuthentication/implementation/#oauth-web-app-credential)

Per applicazioni lato server che possono archiviare in modo sicuro un secret del client (Flask, Django, FastAPI, Express ecc.).

#### [App a singola pagina OAuth](https://developer.adobe.com/developer-console/docs/guides/authentication/UserAuthentication/implementation/#oauth-single-page-app-credential)

Per applicazioni basate su browser, CLI o applicazioni desktop che non possono archiviare un secret del client. Utilizza PKCE.

#### [App nativa OAuth](https://developer.adobe.com/developer-console/docs/guides/authentication/UserAuthentication/implementation/#oauth-native-app-credential)

Per app mobile o desktop native che utilizzano reindirizzamenti con schema URI personalizzato.

> **Note**
>
> L'SDK Python di Frame.io non include una classe di credenziali per app native, poiché Python non ha un modo standard per registrare i gestori di schemi URI personalizzati. Usa **Web app** con un server di callback locale. L'SDK TypeScript supporta tutti e tre i tipi di credenziali.

---

## Autenticazione server-to-server

L'autenticazione server-to-server consente alla tua applicazione di agire come **utente di account di servizio**: non occorre nessun intervento umano. La tua app si autentica con le credenziali client e riceve direttamente un token di accesso. Le azioni dell'account di servizio sono visibili in Frame.io sotto il nome dell'account di servizio. L'accesso all'account di servizio è gestito tramite [Adobe Admin Console](https://adminconsole.adobe.com/) e [Developer Console](https://developer.adobe.com/console). Al momento non è possibile modificare il nome dell'account di servizio. Consulta le guide specifiche per SDK riportate sopra per i dettagli di implementazione.

> **Info**
>
> Consulta [Automatizza la configurazione usando il supporto server-to-server di Frame.io](https://helpx.adobe.com/enterprise/using/automate-using-frame-io.html) per ulteriori informazioni sulla configurazione di un account di servizio.

---

## Come funziona l'autenticazione Adobe IMS

Adobe Identity Management Service (IMS) è la funzionalità di gestione delle identità di Adobe basata su OAuth 2.0 che supporta l'autenticazione. La generazione del token di accesso richiede due passaggi:

#### Autorizzazione utente

Innanzitutto, l'utente autorizza l'applicazione prima che venga generato un token. I dettagli sono disponibili [qui](https://developer.adobe.com/developer-console/docs/guides/authentication/UserAuthentication/ims/#authorize-request).

#### Scambio di token

Successivamente, recupera il token di accesso. Il passaggio precedente restituisce un codice nel corpo della risposta necessario per questo passaggio. Consulta gli endpoint esatti da utilizzare e i parametri da usare [qui](https://developer.adobe.com/developer-console/docs/guides/authentication/UserAuthentication/ims/#fetching-access-tokens).

> **Note**
>
> I passaggi precedenti sono necessari per tutti e tre i tipi di credenziali dell'app. Esistono differenze nel modo in cui vengono utilizzati gli endpoint IMS `/authorize/v2` e `/token/v3` per ottenere il token. Una volta ottenuto il token di accesso, puoi usarlo per interagire con l'API Frame.io V4.

Per l'autenticazione **server-to-server**, non è previsto alcun passaggio di autorizzazione utente: l'applicazione utilizza direttamente le credenziali client per ottenere un token di accesso tramite la concessione di `client_credentials`.

### Utilizzo del token di accesso

Una volta ottenuto il token di accesso, includilo nell'intestazione `Authorization` di ogni richiesta API:

```
Authorization: Bearer <ACCESS_TOKEN>
```

Gli SDK Frame.io gestiscono questa operazione automaticamente: devi solo trasmettere il token (o un callable che fornisce il token) durante la creazione del client.

### TTL del token

I token di accesso hanno una **durata limitata**: scadono generalmente entro 1 ora. Per i flussi di autenticazione utente (web app, SPA, app nativa), Adobe IMS restituisce anche un **token di aggiornamento** che può essere utilizzato per ottenere un nuovo token di accesso senza richiedere all'utente di accedere nuovamente. I token di aggiornamento hanno una durata maggiore, ma alla fine scadono anch'essi.

Per l'autenticazione server-to-server, non sono previsti token di aggiornamento. Le credenziali client non scadono mai (a meno che non vengano ruotate manualmente), quindi l'applicazione può sempre richiedere un nuovo token di accesso.

Gli SDK Frame.io gestiscono l'aggiornamento del token automaticamente: consulta le [guide specifiche degli SDK](#sdk-authentication-guides) per i dettagli.

### Ambiti

Durante la creazione delle credenziali in [Adobe Developer Console](https://developer.adobe.com/console), configurerai gli ambiti OAuth che determinano a cosa può accedere la tua applicazione. Gli SDK Frame.io utilizzano i seguenti ambiti predefiniti:

| Flusso                                               | Ambiti predefiniti                                          |
| ---------------------------------------------------- | ----------------------------------------------------------- |
| **Server-to-server**                                 | `openid AdobeID frame.s2s.all`                              |
| **Autenticazione utente** (web app, SPA, app nativa) | `openid email profile offline_access additional_info.roles` |

> **Note**
>
> L'ambito `offline_access` è richiesto per i flussi di autenticazione utente al fine di ricevere un token di aggiornamento. Senza di esso, otterrai solo un token di accesso e gli utenti dovranno autenticarsi nuovamente alla sua scadenza.

---

## Token sviluppatore legacy

Per gli account migrati da V4 che **non sono ancora amministrati tramite [Adobe Admin Console](https://adminconsole.adobe.com/)**, puoi continuare a utilizzare i token sviluppatore legacy gestiti nel [sito per sviluppatori di Frame.io](https://developer.frame.io/app/tokens). Passa il token direttamente all'SDK:

```python
from frameio import Frameio

client = Frameio(
    token="YOUR_LEGACY_DEVELOPER_TOKEN",
    headers={"x-frameio-legacy-token-auth": "true"},
)
```

> **Warning**
>
> Quando utilizzi un token sviluppatore legacy con l'API V4, devi aggiungere l'intestazione `x-frameio-legacy-token-auth` con un valore `true` a tutte le richieste API. Se stai utilizzando l'SDK, impostalo tramite le opzioni di richiesta del client.

I token sviluppatore legacy non scadono, ma sono un meccanismo di transizione. Per le nuove integrazioni e i carichi di lavoro di produzione, consigliamo di utilizzare uno dei flussi OAuth 2.0 indicati di seguito. Consulta la [guida alla migrazione](/platform/docs/resources/migration#authentication) per i dettagli.

> **Note**
>
> Se sei un cliente Enterprise che esegue la migrazione da Frame.io legacy a V4, contatta il tuo CSM per ricevere assistenza nella configurazione del token sviluppatore legacy e V4

> **Tip**
>
> Per i dettagli sulla transizione dai token legacy all'autenticazione Adobe IMS, consulta la [guida alla migrazione](/platform/docs/resources/migration#authentication).