Tipo di concessione autenticazione client TLS
Utilizzare il tipo di privilegio TLS (Transport Layer Security) quando l'ambito di autorizzazione è limitato alle risorse protette sotto il controllo del client o per proteggere le risorse registrate con il server di autorizzazione OAuth.
Nel diagramma riportato di seguito viene visualizzato il flusso Tipo di autorizzazione autenticazione client TLS.

Prerequisito: caricare il certificato client nell'area di memorizzazione dei certificati client.
- Nell'ambito di TLS handshake, l'applicazione client presenta il proprio certificato e l'ID client per ottenere un token di accesso. Nota: questo certificato deve corrispondere al certificato presente nell'area di memorizzazione dei certificati client.
- Questo token di accesso richiesto è 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.
- Il server di autorizzazione restituisce il token di accesso all'applicazione client solo dopo la convalida del certificato riuscita.
- L'applicazione client utilizza il token di accesso in una chiamata API per aggiornare l'applicazione.
Funzione | Disponibili |
---|---|
Richiede l'autenticazione del client | Sì |
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 | Sì |
Per un flusso di esempio, vedere Esempio di flusso di autorizzazione del tipo di concessione autenticazione client TLS.
Esempio di flusso autorizzazione tipo di concessione autenticazione client TLS
Il tipo di privilegio Autenticazione client TLS (Transport Layer Security) fornisce un flusso di privilegi specifico in cui il proprietario della risorsa non è coinvolto. In questo 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 tipo di privilegio, l'applicazione client richiede un token di accesso con il proprio certificato (il certificato caricato nel profilo client) insieme all'ID client 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 API che si applicano a un determinato proprietario di risorse, ad esempio i metodi API per la manutenzione.
- Specificare l'applicazione riservata come tipo di applicazione. Le applicazioni Mobile/Browser non dispongono di un certificato client e non possono utilizzare il tipo di privilegio Autenticazione client TLS.
- Selezionare TLS Client Authentication come tipo di privilegio.
- Selezionare Trustato o Riservato come Tipo di client.
- Importare il certificato client. Questo certificato viene utilizzato per convalidare la richiesta del token. Nota: il client deve utilizzare lo stesso certificato nella richiesta del token.
Per ulteriori informazioni sul tipo di privilegio Autenticazione client TLS e un diagramma del flusso di autorizzazione, vedere TLS Client Authentication Grant Type.
-
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 autorizzazioneNota
cacert.crt è il certificato CA che ha firmato il certificato del server per questo TLS.
client.key è una chiave privata del client.
client.crt è un certificato client.
curl -i --cacert cacert.crt --key client.key --cert client.crt -H 'Content-Type: application/x-www-form-urlencoded;charset=UTF-8' --request POST https://<domainURL>/oauth2/v1/token -d 'grant_type=tls_client_auth&client_id=<client ID>&scope=<scope value>'
Richiesta di esempio con mTLS
Per informazioni su come ottenere
secureDomainURL
, vedere Tipi di privilegio di accesso.curl -v \ --cert cert.crt \ --key key.key \ --cacert ca.crt \ --location '<secureDomainURL>/oauth2/v1/token' \ --header 'Authorization: Basic <base64Encoded clientid:secret>' --header 'Content-Type: application/x-www-form-urlencoded' \ --data-urlencode 'grant_type=client_credentials' \ --data-urlencode 'client_id=<client-id>' \ --data-urlencode 'scope=urn:opc:idm:_myscopes_'
- L'applicazione client richiede un token di accesso dal server di autorizzazione OAuth.
- Server di autorizzazione OAuth:
- Autentica l'applicazione client in base al certificato inviato come parte dell'handshake TLS.
- Restituisce un token di accesso contenente tutti gli ambiti applicabili in base ai privilegi specificati dai ruoli applicazione concessi all'applicazione client richiedente.
- L'applicazione client utilizza il token di accesso per eseguire una richiesta.