1

Google サービス アカウント API REST の認証リクエストを行うにはどうすればよいですか?

認証ドキュメント: https://developers.google.com/identity/protocols/OAuth2ServiceAccount#authorizingrequests

署名の値がどうあるべきかわかりませんか?

{"alg":"RS256","typ":"JWT"}.
{
"iss":"761326798069-r5mljlln1rd4lrbhg75efgigp36m78j5@developer.gserviceaccount.com",
"scope":"https://www.googleapis.com/auth/prediction",
"aud":"https://www.googleapis.com/oauth2/v4/token",
"exp":1328554385,
"iat":1328550785
}.
[signature bytes]

ドキュメントには「署名バイト」とだけ書かれています。この「署名」はどこで入手できますか?

ヘッダ:

{"alg":"RS256","typ":"JWT"}

請求:

{
  "iss":"761326798069-r5mljlln1rd4lrbhg75efgigp36m78j5@developer.gserviceaccount.com",
  "scope":"https://www.googleapis.com/auth/devstorage.readonly",
  "aud":"https://www.googleapis.com/oauth2/v4/token",
  "exp":1328554385,
  "iat":1328550785
}

サイン:

{Base64url encoded header}.{Base64url encoded claim set}

署名は、それぞれ個別に base64 でエンコードされた、クレームと組み合わされたヘッダーのように見えます。

例のダンプを見ると、署名は JWT ヘッダーとクレーム セットの組み合わせではありません。

eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.
eyJpc3MiOiI3NjEzMjY3OTgwNjktcjVtbGpsbG4xcmQ0bHJiaGc3NWVmZ2lncDM2bTc4ajVAZGV2ZWxvcGVyLmdzZXJ2aWNlYWNjb3VudC5jb20iLCJzY29wZSI6Imh0dHBzOi8vd3d3Lmdvb2dsZWFwaXMuY29tL2F1dGgvcHJlZGljdGlvbiIsImF1ZCI6Imh0dHBzOi8vYWNjb3VudHMuZ29vZ2xlLmNvbS9vL29hdXRoMi90b2tlbiIsImV4cCI6MTMyODU1NDM4NSwiaWF0IjoxMzI4NTUwNzg1fQ.
ixOUGehweEVX_UKXv5BbbwVEdcz6AYS-6uQV6fGorGKrHf3LIJnyREw9evE-gs2bmMaQI5_UbabvI4k-mQE4kBqtmSpTzxYBL1TCd7Kv5nTZoUC1CmwmWCFqT9RE6D7XSgPUh_jF1qskLa2w0rxMSjwruNKbysgRNctZPln7cqQ
4

1 に答える 1

0

Google Oauth 2.0 エンドポイントを使用して、Google API への Oauth 2.0 認証アクセスを使用する Web サーバー アプリケーションを作成できます。Oauth 2.0 サーバーは、1 回限りの認証コードと共に、ユーザーをアプリケーションに戻します。アプリケーションは、この認証コードをアクセス トークンと交換します。

RESTful クライアント サーバーで認証要求を行うには、要求が認証されるように、HTTP ヘッダー内にトークンを配置する必要があります。これが OAuth 2.0 の機能です。RFC 6749を参照してください

JSON および REST に基づくクライアント サーバーでの RESTful 認証の詳細については、この 記事を参照してください。

トークンが生成されると、実際の API 呼び出しに署名は必要ありません。OAuth 2.0 にはセキュリティ トークンが 1 つしかなく、署名は必要ありません。署名について説明しているこのスタック オーバーフロー チケットを確認してください: OAuth 2 は OAuth 1 とどう違うのですか?

于 2016-03-18T15:40:20.370 に答える