7

Google Appsマーケットプレイスユーザー向けにOAuth2 Service Accountを使用してアクセストークンを生成する際に問題が発生しています。ここで生成されたトークンは、Google API(連絡先、カレンダー、メール、Admin SDK API)へのアクセスに使用されるため、Googleサービス内のすべてのGoogleインテグレーションは失敗しています。これは3月9日の午前8時(米国太平洋標準時)から急激に失敗し始めました。これを最優先事項と考えて、問題の理由を教えてください。私たちは、OAuth2サービスアカウントを使用してアクセストークンを生成中に発生する問題

{ "error": "invalid_request" } 

としてAPIレスポンスを得ている(ドキュメントのように)「https://www.googleapis.com/oauth2/v4/token 『と』 https://accounts.google.com/o/oauth2/token」エンドポイントの2つのサンプル要求については、以下のサンプルのすべてのヘッダーを含む要求とのparamsを見つけてください。両方とも、応答{"error": "internal_failure"、 "error_description": "Invalid Value"}、{"error": "invalid_request"}というエラーメッセージが表示されます。

P.S:サンプルのリクエストで以下の署名を生成するために使用されるサービス電子メールアドレス、秘密鍵ファイルは、それぞれのGoogleクライアントライブラリを使用する場合に機能します。しかし、私たちはGoogleのREST APIを利用しています。新しいサービスアカウントの詳細をテストするためにGoogle APIコンソールにサンプルアプリケーションを作成しましたが、これも同じ例外があります。

URL:

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

ヘッダ:

のContent-Type:アプリケーション/ x-www-form-urlencodedで

BODY:

grant_type =壷% 3Aietf%3Aparams%3Aauth%3Aグラントタイプ%3Ajwt-bearer &アサーション= eyJ0eXAiO 。iJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJhdWQiOiJodHRwczovL3d3dy5nb29nbGVhcGlzLmNvbS9vYXV0aDIvdjQvdG9rZW4iLCJzdWIi OiJqYWdzQHNvbHV0aW9udGVzdC5jb20iLCJzY29wZSI6Imh0dHBzOi8vbWFpbC5nb29nbGUuY29t LyIsImlzcyI6IjQ2OTU3MTY1OTAxNUBkZXZlbG9wZXIuZ3NlcnZpY2VhY2NvdW50LmNvbSIsImV4 cCI6MTQ1NzU5NTkwMCwiaWF0IjoxNDU3NTkyMzAwfQ == VrsqS0nYSUVZn_SwMi7UJEYLDqRcWLzPrF9o6av-t1IYZbRkTybEdcnwWeUfnYXl_F88gFTllmRg LSTBahM5gqpZrEAaWrRiDEVTo6rcN3hWm7MHcmZbwgdJB8B0ObV0Ivp5aTdLC5HcqsOumJvYpDCF SyGU8StSg9pDujERzOo =

応答:

コード:400 { "エラー": "internal_failure"、 "しましたerror_description": "無効な値" }

URL:

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

ヘッダ:

のContent-Type:アプリケーション/ x-www-form-urlencodedで

BODY :

grant_type = urn%3Aietf%3Aparams%3Aoauth%3Aグラントタイプ%3Ajwt-bearer &アサーション= eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9。。eyJhdWQiOiJodHRwczovL3d3dy5nb29nbGVhcGlzLmNvbS9vYXV0aDIvdjQvdG9rZW4iLCJzdWIi OiJqYWdzQHNvbHV0aW9udGVzdC5jb20iLCJzY29wZSI6Imh0dHBzOi8vbWFpbC5nb29nbGUuY29t LyIsImlzcyI6IjQ2OTU3MTY1OTAxNUBkZXZlbG9wZXIuZ3NlcnZpY2VhY2NvdW50LmNvbSIsImV4 cCI6MTQ1NzU5NTkwMCwiaWF0IjoxNDU3NTkyMzAwfQ == VrsqS0nYSUVZn_SwMi7UJEYLDqRcWLzPrF9o6av-t1IYZbRkTybEdcnwWeUfnYXl_F88gFTllmRg LSTBahM5gqpZrEAaWrRiDEVTo6rcN3hWm7MHcmZbwgdJB8B0ObV0Ivp5aTdLC5HcqsOumJvYpDCF SyGU8StSg9pDujERzOo =

応答:

コード:400 { "エラー": "INVALID_REQUEST" }

EDIT:documentationのサンプルリクエストです。このコードは過去2年間私たちのために働いていて、突然それは昨日働いていませんでした。

POST /のOAuth2/V4 /トークンHTTP/1.1 ホスト:www.googleapis.com コンテンツタイプ:application/x-www-form-urlencodedで

grant_type = URN%3Aietf%3Aparams%3Aoauth% 3Agrant型%3Ajwtベアラ&アサーション= eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiI3NjEzMjY3OTgwNjktcjVtbGpsbG4xcmQ0bHJiaGc3NWVmZ2lncDM2bTc4ajVAZGV2ZWxvcGVyLmdzZXJ2aWNlYWNjb3VudC5jb20iLCJzY29wZSI6Imh0dHBzOi8vd3d3Lmdvb2dsZWFwaXMuY29tL2F1dGgvcHJlZGljdGlvbiIsImF1ZCI6Imh0dHBzOi8vYWNjb3VudHMuZ29vZ2xlLmNvbS9vL29hdXRoMi90b2tlbiIsImV4cCI6MTMyODU3MzM4MSwiaWF0IjoxMzI4NTY5NzgxfQ.ixOUGehweEVX_UKXv5BbbwVEdcz6AYS-6uQV6fGorGKrHf3LIJnyREw9evE-gs2bmMaQI5_UbabvI4k-mQE4kBqtmSpTzxYBL1TCd7Kv5nTZoUC1CmwmWCFqT9RE6D7XSgPUh_jF1qskLa2w 0rxMSjwruNKbysgRNctZPln7cqQ

+0

デバッグヘルプ(「なぜこのコードは機能していませんか?」)には、目的の動作、特定の問題またはエラー、および質問自体に再現するのに必要な最短コードが含まれている必要があります。参照:最小、完全、および検証可能な例を作成する方法。 – DaImTo

+0

@DalmTo私の質問では、https://developers.google.com/identity/protocols/OAuth2ServiceAccount#makingrequestで提供されているドキュメントリンクからアクセストークンを生成する際に問題が発生していることを明確に示していますが、エラーメッセージ "{"エラー ":" invalid_request "}" – Jagadeesh

+0

小さなサンプルコードを作成し、それをデバッグするのに役立つように失敗してポストします。コードを見ることなく、誰もあなたのコードを修正するのを手助けすることはできません。 – DaImTo

答えて

0

jwtトークンを生成するコードでsun.misc.BASE64Encoderのエンコーディング部分を変更した後で動作しました。

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

(または)

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

追加としてorg.apache.commons.codec.binary.Base64にsun.misc.BASE64EncoderからJWTトークンを生成しながら

は、あなたのBASE64Encoderコード部分を変更

誰かが何らかの説明を必要とする場合はコメントしてください。

このソリューションはGoogleが提供したものです。

関連する問題