【问题标题】:signature bytes for Google service accounts authenticationGoogle 服务帐户身份验证的签名字节
【发布时间】:2016-03-18 01:10:30
【问题描述】:

如何为 Google 服务帐户 API REST 发出身份验证请求?

认证文件:https://developers.google.com/identity/protocols/OAuth2ServiceAccount#authorizingrequests

我不确定 signature 的值应该是什么?

{"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

【问题讨论】:

    标签: android google-play google-play-services google-play-developer-api


    【解决方案1】:

    您可以使用 Google Oauth 2.0 端点创建使用 Oauth 2.0 授权访问 Google API 的 Web 服务器应用程序。 Oauth 2.0 服务器使用一次性授权代码将用户引导回您的应用程序。您的应用程序将此授权代码交换为访问令牌。

    要在 RESTful 客户端服务器中发出身份验证请求,您必须在 HTTP 标头中放置一个令牌,以便对请求进行身份验证。这就是 OAuth 2.0 所做的。见RFC 6749

    有关基于 JSON 和 REST 的客户端-服务器中的 RESTful 身份验证的一些详细信息,请参阅此article

    生成令牌后,实际 API 调用不需要签名。 OAuth 2.0 只有一个安全令牌,不需要签名。检查这个讨论签名的堆栈溢出票:How is OAuth 2 different from OAuth 1?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-09-16
      • 2022-01-06
      • 1970-01-01
      • 2017-06-16
      • 2019-04-14
      • 2017-03-01
      • 2020-05-21
      • 1970-01-01
      相关资源
      最近更新 更多