2. Mutual TLS for OAuth Client Authentication (Mutual TLS per l'autenticazione client OAuth)
2. Mutual TLS for OAuth Client Authentication (Mutual TLS per l'autenticazione client OAuth)
Questa sezione definisce, come estensione della Sezione 2.3 di OAuth 2.0 [RFC6749], due metodi distinti di utilizzo di certificati client X.509 mutual-TLS come client credentials. L'obbligo di mutual TLS per l'autenticazione client è determinato dall'authorization server, in base a policy o configurazione per il client considerato (indipendentemente dal fatto che il client sia stato registrato dinamicamente, configurato staticamente o stabilito in altro modo).
Per utilizzare TLS per l'autenticazione client OAuth, la connessione TLS tra il client e l'authorization server DEVE essere stata stabilita o ristabilita con autenticazione tramite certificato client X.509 mutual-TLS (ossia i messaggi Certificate e CertificateVerify del client vengono inviati durante il TLS handshake).
Per tutte le richieste all'authorization server che utilizzano l'autenticazione client mutual-TLS, il client DEVE includere il parametro client_id descritto nella Sezione 2.2 di OAuth 2.0 [RFC6749]. La presenza del parametro client_id consente all'authorization server di identificare agevolmente il client in modo indipendente dal contenuto del certificato. L'authorization server può individuare la configurazione del client mediante il client identifier e verificare il certificato presentato nel TLS handshake rispetto alle credenziali attese per quel client. L'authorization server DEVE far rispettare il vincolo tra client e certificato, come descritto nella Sezione 2.1 o 2.2 di seguito. Se non viene presentato alcun certificato, o se il certificato presentato non corrisponde a quello atteso per il dato client_id, l'authorization server restituisce una normale risposta di errore OAuth 2.0 secondo la Sezione 5.2 di [RFC6749] con il codice di errore invalid_client per indicare un'autenticazione client non riuscita.