Tipo di concessione credenziali client

Utilizzare questo tipo di privilegio quando l'ambito di autorizzazione è limitato alle risorse protette sotto il controllo del client o alle risorse protette registrate con il server di autorizzazione OAuth.

Il diagramma riportato di seguito visualizza il flusso Tipo di concessione credenziali client.

Diagramma che illustra il flusso Tipo di concessione credenziali client.

In questo flusso OAuth:

  1. Un evento avviato dal client (ad esempio, un aggiornamento in background pianificato per un'applicazione sul dispositivo mobile) richiede l'accesso a una risorsa protetta da un'applicazione client OAuth.

  2. L'applicazione client presenta le proprie credenziali per ottenere un token di accesso e spesso un token di aggiornamento. Questo token di accesso è associato alle risorse proprie del client e non a un determinato proprietario di risorse oppure è associato a un proprietario di risorse per il quale l'applicazione client è autorizzata ad agire in altro modo.

  3. Il server di autorizzazione restituisce il token di accesso all'applicazione client.

  4. L'applicazione client utilizza il token di accesso in una chiamata API per aggiornare l'applicazione sul dispositivo.

Funzione Disponibili
Richiede l'autenticazione del client
Richiede al client di conoscere le credenziali utente No
Interazione con l'utente finale basata sul browser No
Può utilizzare un provider di identità esterno per l'autenticazione No
Il token di aggiornamento è consentito No
Il token di accesso si trova nel contesto dell'applicazione client

Per un flusso di esempio, vedere Esempio di flusso di autorizzazione tipo di concessione credenziali client.

Esempio di flusso di autorizzazione tipo di concessione credenziali client

Il tipo di privilegio Credenziali client fornisce un flusso di concessione specifico in cui il proprietario della risorsa non è coinvolto. In questo esempio di scenario, l'applicazione client esegue processi che non prevedono la partecipazione del proprietario della risorsa, ad esempio un processo batch o un task da server a server.

Quando si utilizza questo privilegio, l'applicazione client richiede un token di accesso con le proprie credenziali (ID e segreto) o un'asserzione e utilizza il token di accesso per conto dell'applicazione client stessa. Questo flusso di concessione è più adatto quando un provider di servizi desidera fornire alcuni metodi API che devono essere utilizzati dall'applicazione client in generale, anziché i metodi che si applicano a un determinato proprietario di risorse, ad esempio i metodi API per la manutenzione.

Quando si crea un'applicazione utilizzando il tipo di privilegio Credenziali client nella console del dominio di Identity:

  • Specificare Applicazione sicura come tipo di applicazione perché un'applicazione mobile/browser non dispone di un segreto client e non può utilizzare il privilegio Credenziali client.

  • Selezionare Credenziali client come tipo di privilegio.

Per ulteriori informazioni sul tipo di privilegio Credenziali client e un diagramma del flusso di autorizzazione, vedere Tipo di privilegio Credenziali client.

Flusso autorizzazione

  1. Un evento avviato dal client (ad esempio, un task pianificato) richiede l'accesso a risorse protette da un'applicazione client OAuth.

    L'URL dell'evento contiene parametri di query che indicano il tipo di accesso richiesto:

    Richiesta di esempio mediante l'intestazione autorizzazione

       curl -i
       -H 'Authorization: Basic <base64Encoded clientid:secret>'
       -H 'Content-Type: application/x-www-form-urlencoded;charset=UTF-8'
       --request POST https://<domainURL>/oauth2/v1/token 
       -d 'grant_type=client_credentials&scope=<scope value>'

    Richiesta di esempio mediante un'asserzione client JWT

       curl -i
       -H 'Content-Type: application/x-www-form-urlencoded;charset=UTF-8'
       --request POST https://<domainURL>/oauth2/v1/token 
       -d 'grant_type=client_credentials&client_id=<client-id>&client_assertion_type=urn%3Aietf%3Aparams%3Aoauth%3Aclient-assertion-type%3Ajwt-bearer&client_assertion=<client-assertion>&scope=<scope value>'
  2. L'applicazione client richiede un token di accesso dal server di autorizzazione OAuth.
  3. Il server di autorizzazione OAuth esegue l'autenticazione dell'applicazione client in base all'intestazione di autorizzazione o all'asserzione inviata e restituisce un token di accesso contenente tutti gli ambiti applicabili in base ai privilegi rappresentati dai ruoli applicazione concessi all'applicazione client richiedente.
  4. L'applicazione client utilizza il token di accesso per eseguire una richiesta.