7

Beim Generieren des Zugriffstokens mit OAuth2 Service Account für Nutzer des Google Apps-Marktplatzes tritt ein Problem auf. Das hier generierte Token wird für den Zugriff auf Google-APIs (Kontakte, Kalender, E-Mail, Admin-SDK-APIs) verwendet, sodass alle Google Integrationen in unseren Diensten fehlschlagen. Dies begann ab dem 9. März um 8 Uhr MEZ abrupt zu scheitern. Könnten Sie dies bitte als hohe Priorität betrachten und uns den Grund für das Problem mitteilen oder uns etwas verpasst haben? Wir bekommen API Antwort alsProblem beim Generieren des Zugriffstokens mithilfe von OAuth2-Dienstkonten

{ "error": "invalid_request" } 

finden Sie die unten stehende Beispielanfrag mit allen Kopf- und params für 2 Musteranfragen für „https://www.googleapis.com/oauth2/v4/token‚(wie in der Dokumentation) und‘https://accounts.google.com/o/oauth2/token“ Endpunkte. Beides führt zu einer Fehlermeldung mit den Antworten {"error": "internal_failure", "error_description": "Ungültiger Wert"} bzw. {"error": "invalid_request"}.

S.S .: Die Service-E-Mail-Adresse und die privaten Schlüsseldateien, die zum Erzeugen der unten stehenden Signatur in den Beispielanforderungen verwendet werden, funktionieren, wenn wir entsprechende Google Client-Bibliotheken verwenden. Aber wir nutzen die REST-APIs von Google. Wir haben eine Beispielanwendung in der Google APIs-Konsole erstellt, um sie mit neuen Dienstkontodetails zu testen. Dies führt zur gleichen Ausnahme.

URL:

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

Headers:

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

KÖRPER:

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

Antwort:

Code: 400 { "Fehler": "internal_failure", "ERROR_DESCRIPTION": "ungültiger Wert" }

URL:

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

Headers:

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

BODY :

Gewährungsart = Urn% 3Aietf% 3Aparams% 3Aoauth% 3Agrant-type% 3Ajwt-bearer & Zusicherung = eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.. EyJhdWQiOiJodHRwczovL3d3dy5nb29nbGVhcGlzLmNvbS9vYXV0aDIvdjQvdG9rZW4iLCJzdWIi OiJqYWdzQHNvbHV0aW9udGVzdC5jb20iLCJzY29wZSI6Imh0dHBzOi8vbWFpbC5nb29nbGUuY29t LyIsImlzcyI6IjQ2OTU3MTY1OTAxNUBkZXZlbG9wZXIuZ3NlcnZpY2VhY2NvdW50LmNvbSIsImV4 cCI6MTQ1NzU5NTkwMCwiaWF0IjoxNDU3NTkyMzAwfQ == VrsqS0nYSUVZn_SwMi7UJEYLDqRcWLzPrF9o6av-t1IYZbRkTybEdcnwWeUfnYXl_F88gFTllmRg LSTBahM5gqpZrEAaWrRiDEVTo6rcN3hWm7MHcmZbwgdJB8B0ObV0Ivp5aTdLC5HcqsOumJvYpDCF SyGU8StSg9pDujERzOo =

Antwort:

Code: 400 { "Fehler": "invalid_request" }

EDIT: Beispiel Anfrage wie in der documentation. Dieser Code funktionierte für uns in den letzten 2 Jahren und plötzlich hörte es gestern auf zu arbeiten.

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

grant_type = urn% 3Aietf% 3Aparams% 3Aoauth% 3Agrant-Typ% 3Ajwt Träger & Assertion = eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiI3NjEzMjY3OTgwNjktcjVtbGpsbG4xcmQ0bHJiaGc3NWVmZ2lncDM2bTc4ajVAZGV2ZWxvcGVyLmdzZXJ2aWNlYWNjb3VudC5jb20iLCJzY29wZSI6Imh0dHBzOi8vd3d3Lmdvb2dsZWFwaXMuY29tL2F1dGgvcHJlZGljdGlvbiIsImF1ZCI6Imh0dHBzOi8vYWNjb3VudHMuZ29vZ2xlLmNvbS9vL29hdXRoMi90b2tlbiIsImV4cCI6MTMyODU3MzM4MSwiaWF0IjoxMzI4NTY5NzgxfQ.ixOUGehweEVX_UKXv5BbbwVEdcz6AYS-6uQV6fGorGKrHf3LIJnyREw9evE-gs2bmMaQI5_UbabvI4k-mQE4kBqtmSpTzxYBL1TCd7Kv5nTZoUC1CmwmWCFqT9RE6D7XSgPUh_jF1qskLa2w 0rxMSjwruNKbysgRNctZPln7cqQ

+0

Fragen zur Fehlersuche ("Warum funktioniert dieser Code nicht?") Müssen das gewünschte Verhalten, ein bestimmtes Problem oder einen Fehler und den kürzesten Code enthalten, der für die Reproduktion in der Frage erforderlich ist. Siehe: Erstellen eines minimalen, vollständigen und überprüfbaren Beispiels. – DaImTo

+0

@DalmtO Meine Frage besagt eindeutig, dass wir beim Generieren des Zugriffstokens über den Dokumentationslink https://developers.google.com/identity/protocols/OAuth2ServiceAccount#makingrequest ein Problem haben. Aber wir sehen die Fehlermeldung als "{" error ":" invalid_request "}" – Jagadeesh

+0

Erstellen Sie ein kleines Beispiel für einen Code, der fehlschlägt, und posten Sie das, damit wir Ihnen beim Debuggen helfen können. Ohne Ihren Code zu sehen, kann Ihnen niemand helfen, ihn zu reparieren. – DaImTo

Antwort

0

Es funktionierte nach dem Ändern der sun.misc.BASE64Encoder Codierung Teil in meinem Code für die Generierung von JWT-Token.

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

(oder)

ändern Base64Encoder kodierenden Teil während jwt Token von sun.misc.BASE64Encoder zu org.apache.commons.codec.binary.Base64 als

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

Add Erzeugen Kommentare, wenn Sie irgendwelche Klärungen benötigen.

Diese Lösung wurde von Google zur Verfügung gestellt.