无法使用'OAuth 2.0 for Server to Server Applications'协议读取用户

问题描述 投票:0回答:1

我们正在尝试为服务器到服务器应用程序实施OAuth 2.0最后的动机是调用Google API来读取GSuite用户。

用于服务器到服务器应用程序的OAuth 2.0的Google文档是..-https://developers.google.com/identity/protocols/OAuth2ServiceAccount

用于读取GSuite用户列表的API-https://developers.google.com/admin-sdk/directory/v1/reference/groups/list

根据文档,我们可能使用“ Google API客户端库”或“ HTTP / REST”但是,我们的要求是使用HTTP / REST。

我们已成功完成以下步骤。

  1. 创建服务帐户。
  2. 将域范围的权限委派给服务帐户。
  3. 使用HTTP / REST的授权API调用。

我们在上述第3步之后就能够通过POSTMAN成功获得“访问令牌”。但是在“调用Google API”时出现错误/异常)>

邮递员获取access_token的请求成功,如下所示。

HTTP POST request :https://oauth2.googleapis.com/token

Body parameters: 
grant_type:urn:ietf:params:oauth:grant-type:jwt-bearer
assertion:The JWT, including signature. 

successful response :
{
"access_token": "ya29.c.EmmOB0vXrihl6nkZNr2gS1nKc4LypBlg3I1bZL2BUvPfZ53rs91fSA2TXR25TvtrZb551sdg1WwHnxg5VYWVC-SEveeypZebfwvhdGr9ECXCeuwAmfyV8TDUIN5nsqbZ7IxVyzgkew",
"expires_in": 3600,
"token_type": "Bearer"
}

使用我们获得的具有access_token的API调用时出错。

1.Get Request via POSTMAN : Read all GSuite users  
https://www.googleapis.com/admin/directory/v1/users/?customer=my_customer
Header:Bearer ya29.c.EmmOB0vXrihl6nkZNr2gS1nKc4LypBlg3I1bZL2BUvPfZ53rs91fSA2TXR25TvtrZb551s dg1WwHnxg5VYWCVC-SEveeypZebfwvhdGr9ECXCeuwAmfyV8TDUIN5nsqbZ7IxVyzgkewfZ0

error response :
{
 "error": {
    "errors": [
        {
            "domain": "global",
            "reason": "backendError",
            "message": "Service unavailable. Please try again"
        }
    ],
    "code": 503,
    "message": "Service unavailable. Please try again"
 }
}

2。通过POSTMAN获取请求:读取GSuite组

https://www.googleapis.com/admin/directory/v1/groups/? 
customer=my_customer
Header : Bearer ya29.c.EmmOB0v-Xrihl6nkZNr2gS1nKc4LypBlg3I1bZL2BUvPfZ53rs91fSA2TXR25TvtrZb551sdg1WwHnxg5VYWCVC-SEveeypZebfwvhdGr9ECXCeuwAmfyV8TDUIN5nsqbZ7IxVyzgkewfZ0

error response :
{
  "error": {
    "errors": [
        {
            "domain": "global",
            "reason": "notFound",
            "message": "Domain not found."
        }
    ],
    "code": 404,
    "message": "Domain not found."
 }
}

我们正在尝试为服务器到服务器应用程序实现OAuth 2.0,最终目的是调用Google API来读取GSuite用户。用于服务器到服务器应用程序的OAuth 2.0的Google文档为...

google-api google-oauth2 gsuite
1个回答
0
投票

似乎您不需要传递请求参数客户。尝试这样

© www.soinside.com 2019 - 2024. All rights reserved.