
# Recupera la configurazione OIDC di una connessione

`GET /v1/connections/{connection_id}/oidc` · permesso `connections:read`

Restituisce la configurazione relying party di una connessione OIDC aziendale: il `redirect_uri` da registrare presso l'identity provider, l'`issuer`, il `client_id`, il metodo di autenticazione del client e il profilo del provider. Il client secret non viene mai restituito: la risposta indica solo se ne è memorizzato uno (`client_secret_configured`) e quando scade, se hai indicato una data. L'header `ETag` riporta la versione della configurazione; inviala come `If-Match` quando aggiorni la configurazione. Le letture non vengono sottoposte ad audit.

## Richiesta

| Campo | Tipo | Obbligatorio | Descrizione |
|---|---|---|---|
| `connection_id` | path | sì | ID della connessione aziendale (`conn_…`). |

## Risposta

`200 OK` con la configurazione e un `ETag`.

```json
{
  "redirect_uri": "https://acme.eu1.keenauth.app/sso/conn_01j9xp6q0r1s5t7v9w1x3y5z7b/callback",
  "issuer": "https://idp.example.com",
  "client_id": "keenauth-acme",
  "client_auth_method": "client_secret_basic",
  "provider_profile": "generic",
  "client_secret_configured": true,
  "client_secret_expires_at": "2027-04-01T00:00:00Z"
}
```

| Campo | Descrizione |
|---|---|
| `redirect_uri` | Il callback da registrare presso l'identity provider. Viene fissato alla prima scrittura della configurazione. |
| `issuer` | L'URL dell'issuer dell'identity provider. |
| `client_id` | Il client ID registrato presso l'identity provider. |
| `client_auth_method` | `private_key_jwt`, `client_secret_basic` oppure `client_secret_post`. |
| `provider_profile` | `entra`, `okta`, `google`, `keycloak`, `ping`, `onelogin`, `jumpcloud` oppure `generic`. |
| `client_secret_configured` | Indica se è memorizzato un client secret. Il suo valore non viene mai restituito. |
| `client_secret_expires_at` | Quando l'identity provider fa scadere il secret; `null` se non è stata indicata una data. |

## Errori

| HTTP | code | Quando |
|---|---|---|
| 404 | `not_found` | La connessione non esiste in questo ambiente, non è una connessione OIDC aziendale oppure non ha ancora una configurazione OIDC. |
| 401 | `unauthenticated` | La credenziale è mancante, non valida o revocata. |
| 403 | `insufficient_permissions` | La credenziale non ha il permesso richiesto. |
| 429 | `rate_limited` | È stato superato il limite di frequenza; riprova dopo il periodo `Retry-After`. |
| 503 | `service_unavailable` | Una dipendenza non è temporaneamente disponibile; riprova dopo il periodo `Retry-After`. |

## Esempio

```bash
curl -i "https://api.eu.keenauth.com/v1/connections/conn_01j9xp6q0r1s5t7v9w1x3y5z7b/oidc" \
  -H "Authorization: Bearer $KEENAUTH_SECRET_KEY"
```

```bash
keenauth connections oidc get conn_01j9xp6q0r1s5t7v9w1x3y5z7b
```
