# Gestione delle chiavi riservate e firma dei token

La generazione dei token richiede l’utilizzo di una **chiave riservata** (*secret key*), custodita esclusivamente lato server e non accessibile dal frontend.

Il backend dell’applicazione mantiene quindi il controllo sui principali elementi di sicurezza, tra cui:

* firma e validazione del token;
* tenant associato alla richiesta;
* parametri autorizzati;
* durata temporale della sessione;
* dashboard autorizzata richiamabile tramite token.

In questo modo, il contesto di accesso viene determinato dall’applicazione e non può essere alterato manualmente dall’utente finale.

L’utente non può quindi generare token autonomamente né modificare il tenant assegnato, impedendo accessi incoerenti rispetto ai permessi applicativi.

L’approccio riduce l’esposizione diretta delle credenziali applicative e centralizza i controlli di autorizzazione lato server.

#### Esempio semplificato di integrazione

Di seguito si riporta un esempio semplificato del flusso di integrazione tra componente client e backend applicativo.

**Frontend**

{% code title="Esempio semplificato lato client: il componente incorporato utilizza il token generato dal backend per caricare la dashboard autorizzata" %}

```html
<metabase-dashboard
  token="JWT_GENERATO_DAL_SERVER">
</metabase-dashboard>
```

{% endcode %}

**Backend**

{% code title="Esempio semplificato lato server: il token viene firmato tramite chiave riservata e contiene la dashboard autorizzata, il parametro ente e la scadenza temporale" %}

```python
payload = {
  "resource": {"dashboard": 70},
  "params": {"ente": ["ID"]},
  "exp": timestamp_scadenza
}

token = jwt.encode(payload, SECRET_KEY, algorithm="HS256")
```

{% endcode %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.opencityitalia.it/dashboard-di-monitoraggio-dei-servizi/sicurezza-e-gestione-accessi/integrazione-applicativa-tramite-embedding/gestione-delle-chiavi-riservate-e-firma-dei-token.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
