7

Abbiamo riscontrato un problema nella generazione di token di accesso utilizzando OAuth2 Service Account per gli utenti del marketplace di Google Apps. Il token generato qui verrà utilizzato per accedere alle API di Google (contatti, calendario, posta, API SDK Admin) e quindi tutte le integrazioni di Google all'interno dei nostri servizi non funzionano. Questo ha iniziato a fallire bruscamente dal 9 marzo PST dell'8 marzo. Per favore, considera questa priorità come prioritaria e facci sapere il motivo del problema o se ci siamo persi qualcosa qui. Stiamo ottenendo risposta API comeProblema durante la generazione del token di accesso utilizzando gli account di servizio OAuth2

{ "error": "invalid_request" } 

Si prega di trovare la richiesta sottostante campione con tutte le intestazioni e params per 2 richieste di campioni per "https://www.googleapis.com/oauth2/v4/token '(come nella documentazione) e' https://accounts.google.com/o/oauth2/token" endpoint. Entrambi generano un messaggio di errore con risposte {"error": "internal_failure", "error_description": "Valore non valido"} e {"error": "invalid_request"} rispettivamente.

P.S: l'indirizzo e-mail di servizio, i file di chiave privata utilizzati per generare la firma sottostante nelle richieste di esempio funziona se utilizziamo le rispettive librerie di Google Client. Ma stiamo facendo uso delle API REST di Google. Abbiamo creato un'applicazione di esempio nella console delle API di Google per testare con i nuovi dettagli dell'account di servizio e questo si traduce nella stessa eccezione.

URL:

https://www.googleapis.com/oauth2/v4/token

intestazioni:

Content-Type: application/x-www-form-urlencoded

CORPO:

grant_type = urna% 3Aietf% 3Aparams% 3Aoauth% 3Agrant-type% 3Ajwt-bearer & assertion = eyJ0eXAiO . IJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJhdWQiOiJodHRwczovL3d3dy5nb29nbGVhcGlzLmNvbS9vYXV0aDIvdjQvdG9rZW4iLCJzdWIi OiJqYWdzQHNvbHV0aW9udGVzdC5jb20iLCJzY29wZSI6Imh0dHBzOi8vbWFpbC5nb29nbGUuY29t LyIsImlzcyI6IjQ2OTU3MTY1OTAxNUBkZXZlbG9wZXIuZ3NlcnZpY2VhY2NvdW50LmNvbSIsImV4 cCI6MTQ1NzU5NTkwMCwiaWF0IjoxNDU3NTkyMzAwfQ == VrsqS0nYSUVZn_SwMi7UJEYLDqRcWLzPrF9o6av-t1IYZbRkTybEdcnwWeUfnYXl_F88gFTllmRg LSTBahM5gqpZrEAaWrRiDEVTo6rcN3hWm7MHcmZbwgdJB8B0ObV0Ivp5aTdLC5HcqsOumJvYpDCF SyGU8StSg9pDujERzOo =

Risposta:

codice: 400 { "errore": "internal_failure", "ERROR_DESCRIPTION": "non valido Valore" }

URL:

https://accounts.google.com/o/oauth2/token

intestazioni:

Content-Type: application/x-www-form-urlencoded

CORPO :

grant_type = urn% 3Aquilf% 3Aparams% 3Aoauth% 3Agrant-type% 3Ajwt-bearer & assertion = eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.. EyJhdWQiOiJodHRwczovL3d3dy5nb29nbGVhcGlzLmNvbS9vYXV0aDIvdjQvdG9rZW4iLCJzdWIi OiJqYWdzQHNvbHV0aW9udGVzdC5jb20iLCJzY29wZSI6Imh0dHBzOi8vbWFpbC5nb29nbGUuY29t LyIsImlzcyI6IjQ2OTU3MTY1OTAxNUBkZXZlbG9wZXIuZ3NlcnZpY2VhY2NvdW50LmNvbSIsImV4 cCI6MTQ1NzU5NTkwMCwiaWF0IjoxNDU3NTkyMzAwfQ == VrsqS0nYSUVZn_SwMi7UJEYLDqRcWLzPrF9o6av-t1IYZbRkTybEdcnwWeUfnYXl_F88gFTllmRg LSTBahM5gqpZrEAaWrRiDEVTo6rcN3hWm7MHcmZbwgdJB8B0ObV0Ivp5aTdLC5HcqsOumJvYpDCF SyGU8StSg9pDujERzOo =

Risposta:

codice: 400 { "errore": "invalid_request" }

MODIFICA: Richiesta di esempio come nella documentation. Questo codice funzionava per noi negli ultimi 2 anni e improvvisamente ha smesso di funzionare ieri.

POST/OAuth2/v4/HTTP Token/1.1 Host: www.googleapis.com Content-Type: application/x-www-form-urlencoded

grant_type = urna% 3Aietf% 3Aparams% 3Aoauth% 3Agrant tipo% 3Ajwt-bearer & asserzione = eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiI3NjEzMjY3OTgwNjktcjVtbGpsbG4xcmQ0bHJiaGc3NWVmZ2lncDM2bTc4ajVAZGV2ZWxvcGVyLmdzZXJ2aWNlYWNjb3VudC5jb20iLCJzY29wZSI6Imh0dHBzOi8vd3d3Lmdvb2dsZWFwaXMuY29tL2F1dGgvcHJlZGljdGlvbiIsImF1ZCI6Imh0dHBzOi8vYWNjb3VudHMuZ29vZ2xlLmNvbS9vL29hdXRoMi90b2tlbiIsImV4cCI6MTMyODU3MzM4MSwiaWF0IjoxMzI4NTY5NzgxfQ.ixOUGehweEVX_UKXv5BbbwVEdcz6AYS-6uQV6fGorGKrHf3LIJnyREw9evE-gs2bmMaQI5_UbabvI4k-mQE4kBqtmSpTzxYBL1TCd7Kv5nTZoUC1CmwmWCFqT9RE6D7XSgPUh_jF1qskLa2w 0rxMSjwruNKbysgRNctZPln7cqQ

+0

Le domande di aiuto per il debug ("perché non funziona questo codice?") Devono includere il comportamento desiderato, un problema specifico o un errore e il codice più breve necessario per riprodurlo nella domanda stessa. Vedi: Come creare un esempio Minimo, Completo e Verificabile. – DaImTo

+0

@DalmTo La mia domanda indica chiaramente che stiamo riscontrando un problema nella generazione del token di accesso dal collegamento della documentazione fornito https://developers.google.com/identity/protocols/OAuth2ServiceAccount#makingrequest Ma stiamo visualizzando il messaggio di errore come "{" error ":" invalid_request "}" – Jagadeesh

+0

Crea un piccolo esempio di codice che fallisce e pubblica quello così possiamo aiutarti a eseguirne il debug. Senza vedere il tuo codice nessuno può aiutarti a risolverlo. – DaImTo

risposta

0

Ha funzionato dopo aver modificato la parte di codifica sun.misc.BASE64Encoder nel mio codice per generare token jwt.

byte[] encode = BASE64Encoder.encode(data).replaceAll("\n", "").getBytes(); 

(o)

Cambia la tua parte di codifica BASE64Encoder, mentre la generazione di token JWT da sun.misc.BASE64Encoder a org.apache.commons.codec.binary.Base64 come

Base64 encoder = new Base64(); 
byte[] encode = encoder.encodeBase64(data); 

Add commenti se qualcuno ha bisogno di chiarimenti.

Questa soluzione è stata fornita da Google.