2016-01-10 6 views
5

私はGoogleののOAuth2のAPIでのRFC7636(OAuthのトーク​​ン交換のための証明キー)の状態に関する具体的な情報を探しています。Google OAuth 2.0 APIはどの程度までRFC7636をサポートしていますか?

GoogleはOAuth 2.0のアクセストークンを取得することができるOIDCプロバイダのAPIを公開しています。主要なアイデンティティプロバイダとの統合で使用し始めたトークン交換でプルーフキーを使用するためのRFC7636で説明されている提案された標準があります。証明鍵を受け入れる人もあれば、無視する人もいます。 Googleはそれを認識しているようだが、証明鍵の検証に失敗する。私はこのwrt Googleの言及を見つけることができませんでした。

具体的には、GoogleをプロバイダとするOAuth 2.0の認証コードフローに従い、乱数を生成し、SHA256を使用してハッシュし、base64でURLエンコードした後、パラメータcode_challengeとしてhttps://accounts.google.com/o/oauth2/v2/authに渡し、 "code_challenge_method"は仕様通りです。

エンドポイントは、パラメータや課題いつものように認証トークンを受け付けます。アクセストークンを取得するときは、code_verifierを使用して​​を呼び出します。 {「エラー」:「invalid_grant」、 「ましたerror_description」:エンドポイントは、コード検証のいくつかの意識があることを示唆している次のHTTP 400エラーを返し「コード検証がありません」を }

developers.google.com/identity/protocols/OAuth2にあるGoogleのOAuthドキュメントには、これらのパラメータは記載されていません。 APIプレイグラウンドは、OAuth2の認証およびトークンエンドポイントでのプレーまで拡張されません。どんな洞察力も大変高く評価されます。

+0

これはうまくいきましたか?私は正確に同じ問題を抱えている:{「エラー」:「invalid_grant」、「しましたerror_descriptionを」:「コード検証がありません。」 }、iOS SDK AppAuthを使用して、あなたの投稿で言及したものとまったく同じエンドポイントを打ちます。 – quantum

答えて

0

は私がAppAuthとAndroidのclientIdを使用して、この同じ問題を抱えていました。それを修正するために、私は認証とトークン要求の両方に一致する 'code_verifier'フィールドを設定しなければなりませんでした。この記事で詳細な説明があります:invalid_grant trying to get oAuth token from google

関連する問題