Registrazione applicazione OAuth 2.0

Una registrazione applicazione OAuth 2.0 di FoxIDs rappresenta una risorsa API protetta oppure un’applicazione backend che usa l’autenticazione machine-to-machine. Registra una API per esporre gli scope e una Backend Application per ottenere token di accesso con Client Credentials Grant.

Registrazione applicazione OAuth 2.0 di FoxIDs

Le funzionalità principali includono più audience API in un singolo token di accesso, accesso alle API limitato tramite scope, autenticazione client con segreti o certificati, trasformazione dei claim e token exchange.

Configurazione

In FoxIDs Control:

  1. Seleziona l’ambiente in cui registrare l’API o l’applicazione backend.
  2. Apri Applications e fai clic su Add application.
  3. Abilita Show all options.
  4. Scegli API o Backend Application.
  5. Configura l’applicazione e fai clic su Create.

Scegliere un tipo di applicazione OAuth 2.0

Dopo la creazione, fai clic su Change application per esaminare o modificare tutte le impostazioni dell’applicazione. Abilita Show advanced soltanto quando l’impostazione richiesta è avanzata.

API OAuth 2.0

Scegli API per registrare un’API backend protetta come risorsa OAuth 2.0. La registrazione dell’API definisce il nome della risorsa, gli scope e l’audience usata nei token di accesso.

L’esempio seguente registra una Customers API:

  1. Inserisci Customers come Name.
  2. Inserisci customers-api come Resource name.
  3. Aggiungi gli scope read e write.
  4. Fai clic su Create.

Creare un’API OAuth 2.0 con scope

I valori completi degli scope sono customers-api:read e customers-api:write. Un client richiede uno o entrambi i valori all’endpoint token e il token di accesso risultante include customers-api come audience.

L’API deve convalidare issuer, audience, durata e scope richiesto del token di accesso. L’accesso di un’applicazione chiamante viene concesso separatamente aggiungendo la risorsa API e gli scope che può richiedere.

Applicazione backend e Client Credentials Grant

Scegli Backend Application per un servizio, daemon, processo pianificato o processo in background. FoxIDs la crea come confidential client che richiede un token di accesso senza utente tramite Client Credentials Grant.

L’esempio seguente crea il servizio chiamante:

  1. Inserisci Backend service come Name.
  2. Inserisci backend-service come Client ID oppure lascia che FoxIDs lo generi.
  3. Copia il Client secret generato prima di chiudere il risultato della creazione. Il segreto generato completo viene mostrato soltanto durante la creazione.
  4. Fai clic su Create.

Creare un’applicazione backend OAuth 2.0

Concedere l’accesso a un’API

Dopo aver creato l’applicazione backend, fai clic su Change application e configura Resource and scopes nella scheda OAuth 2.0 Client:

  1. Lascia deselezionato Default resource 'backend-service' for the application itself, perché questo client non agisce come propria API.
  2. Fai clic su Add Resource and scopes.
  3. Inserisci customers-api come Resource.
  4. Aggiungi gli scope read e write.
  5. Fai clic su Update.

Consentire a un’applicazione backend di chiamare la Customers API

L’applicazione backend può ora richiedere customers-api:read, customers-api:write oppure entrambi. Gli scope richiesti dal client vengono convalidati rispetto agli scope esposti dalla registrazione dell’API.

I token di accesso possono contenere più audience e quindi concedere l’accesso a più API registrate come risorse OAuth 2.0 in FoxIDs. Aggiungi all’applicazione backend ogni risorsa richiesta e i relativi scope consentiti.

Autenticazione client

Il metodo predefinito di autenticazione client dell’endpoint token è client secret post. Per modificarlo, fai clic su Change application, abilita Show advanced e seleziona:

  • client secret basic per inviare il client ID e il segreto mediante autenticazione HTTP Basic.
  • client secret post per inviare il client ID e il segreto nel corpo della richiesta token.
  • private key JWT per autenticarsi con una client assertion firmata.

Configurare l’autenticazione client OAuth 2.0

È possibile configurare fino a 10 segreti e 4 certificati client per supportare la rotazione delle credenziali. Conserva segreti e chiavi private in modo sicuro e non inserirli nel codice sorgente o nei log.

La richiesta seguente usa il metodo predefinito client secret post per ottenere un token di accesso per la Customers API:

POST https://foxids.com/tenant-x/environment-y/backend-service(*)/oauth/token HTTP/1.1
Host: foxids.com
Content-Type: application/x-www-form-urlencoded

client_id=backend-service
&client_secret=<client-secret>
&grant_type=client_credentials
&scope=customers-api%3Aread

La risposta token contiene un token di accesso per l’audience customers-api con lo scope customers-api:read.

Autenticazione con un certificato

Seleziona private key JWT e carica il certificato client dopo aver creato l’applicazione backend. Il client conserva la chiave privata corrispondente e firma una client assertion di breve durata per ogni richiesta token.

Registra certificati con periodi sovrapposti prima di sostituire un certificato in scadenza, in modo che il client possa ruotare le chiavi senza interrompere le richieste token.

Segreti client

FoxIDs esegue l’hash dei segreti client usando l’algoritmo di hash delle password configurato. Un segreto generato non può essere recuperato dopo la creazione. Per i segreti più lunghi di 20 caratteri, FoxIDs conserva i primi tre caratteri come informazione identificativa e li mostra con i puntini di sospensione, ad esempio 6j9....

Aggiungi un segreto sostitutivo prima di rimuovere quello precedente per ruotare le credenziali senza interruzioni.

I claim emessi a un client o a un’API possono essere modificati con trasformazioni e attività dei claim.

Resource Owner Password Credentials Grant

FoxIDs non supporta Resource Owner Password Credentials Grant perché richiede all’applicazione di gestire la password dell’utente e non è adatto a un’autenticazione moderna e sicura.