Gmail API - 是否对政府帐户的权限进行了明智的更改?
Gmail API - has something changed permissions wise for government accounts?
我们已经有数以万计的用户使用我们与 Gmail 集成的应用程序 API 7 年左右,但是在过去一周左右,我们突然看到广泛的故障(401 响应),但仅适用于美国的政府客户。
我已经设法从我们的一位客户那里获得了我们的应用程序和 Gmail 服务器之间的 HTTP 流量的跟踪:
请求
为了简洁/安全起见,我在这里缩写了访问令牌,但我已经确认 header 中的实际值与从 Google 收到的访问令牌相匹配。我还缩写了多部分 MIME 消息并更改了客户的电子邮件地址。
POST https://www.googleapis.com/upload/gmail/v1/users/me/drafts?uploadType=multipart HTTP/1.1
Content-Type: multipart/related; boundary="f31e2e89cedf4242be6fcbe5e793173e"
User-Agent: Affixa Enterprise 1.2021.3.15
Authorization: Bearer ya29.A0ARrdaM8v6BZrUpbTJb...N2wbiX8Ej9vY
Host: www.googleapis.com
Content-Length: 8249
Expect: 100-continue
--f31e2e89cedf4242be6fcbe5e793173e
Content-Type: application/json; charset=UTF-8
{}
--f31e2e89cedf4242be6fcbe5e793173e
Content-Type: message/rfc822
MIME-Version: 1.0
X-Mailer: Affixa Enterprise 1.2021.3.15
From: foo@bar.gov
Subject: LogCrossSearchResult_22A0XSR5009663_2022-03-23-15-13.csv
Date: Thu, 31 Mar 2022 10:39:19 -0500
Message-ID: <1.6139e48b20e838d93825@msg.affixa.com>
Content-Type: multipart/mixed;
boundary="----=_NextPart_001_2C7F_AA3B1314.8E6FEB65"
------=_NextPart_001_2C7F_AA3B1314.8E6FEB65
Content-Type: multipart/alternative;
boundary="----=_NextPart_000_1462_A4B24415.C610B984"
------=_NextPart_000_1462_A4B24415.C610B984
Content-Type: text/plain;
charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
回应
HTTP/1.1 401 Unauthorized
X-GUploader-UploadID: ADPycdsnG_KOSQm3Cok7zCHHavR5wr0elW-o3cMbzRCP2OGTULeAdvCIbIQ7xFF6MCf7EAsBrjzNI-TBVa_5spdFcnLGQyFNPQ
WWW-Authenticate: Bearer realm="https://accounts.google.com/"
Vary: Origin
Vary: X-Origin
Vary: Referer
Content-Type: application/json; charset=UTF-8
Content-Length: 507
Date: Thu, 31 Mar 2022 15:39:19 GMT
Server: UploadServer
Alt-Svc: h3=":443"; ma=2592000,h3-29=":443"; ma=2592000,h3-Q050=":443"; ma=2592000,h3-Q046=":443"; ma=2592000,h3-Q043=":443"; ma=2592000,quic=":443"; ma=2592000; v="46,43"
{
"error": {
"code": 401,
"message": "Request had invalid authentication credentials. Expected OAuth 2 access token, login cookie or other valid authentication credential. See https://developers.google.com/identity/sign-in/web/devconsole-project.",
"errors": [
{
"message": "Invalid Credentials",
"domain": "global",
"reason": "authError",
"location": "Authorization",
"locationType": "header"
}
],
"status": "UNAUTHENTICATED"
}
}
软件或我们的应用程序在 Google 开发者控制台中的注册没有任何变化。
FWIW,我们的应用程序尚未经过 Google 审查,但它也不需要像从 Workspace Marketplace 安装的 business-facing 应用程序一样。该应用程序只能由整个 Workspace 组织使用并由管理员安装;它无法在 per-user 基础上安装。
客户已确认仍然授予所有必需的范围:
有什么我不知道的变化吗?
我现在已经弄清楚了问题所在 - 与 401 错误消息所暗示的无关。
我们的应用程序是用 C# 编写的,默认情况下尝试使用 TLS 1.0。当我们强制它使用 TLS 1.2 时,它工作得很好。
所以真正的问题是 HTTPS 连接中使用的加密算法,与授权 header 等无关
我猜 non-governmental 个帐户目前仍然可以使用 TLS 1.0?
我们已经有数以万计的用户使用我们与 Gmail 集成的应用程序 API 7 年左右,但是在过去一周左右,我们突然看到广泛的故障(401 响应),但仅适用于美国的政府客户。
我已经设法从我们的一位客户那里获得了我们的应用程序和 Gmail 服务器之间的 HTTP 流量的跟踪:
请求
为了简洁/安全起见,我在这里缩写了访问令牌,但我已经确认 header 中的实际值与从 Google 收到的访问令牌相匹配。我还缩写了多部分 MIME 消息并更改了客户的电子邮件地址。
POST https://www.googleapis.com/upload/gmail/v1/users/me/drafts?uploadType=multipart HTTP/1.1
Content-Type: multipart/related; boundary="f31e2e89cedf4242be6fcbe5e793173e"
User-Agent: Affixa Enterprise 1.2021.3.15
Authorization: Bearer ya29.A0ARrdaM8v6BZrUpbTJb...N2wbiX8Ej9vY
Host: www.googleapis.com
Content-Length: 8249
Expect: 100-continue
--f31e2e89cedf4242be6fcbe5e793173e
Content-Type: application/json; charset=UTF-8
{}
--f31e2e89cedf4242be6fcbe5e793173e
Content-Type: message/rfc822
MIME-Version: 1.0
X-Mailer: Affixa Enterprise 1.2021.3.15
From: foo@bar.gov
Subject: LogCrossSearchResult_22A0XSR5009663_2022-03-23-15-13.csv
Date: Thu, 31 Mar 2022 10:39:19 -0500
Message-ID: <1.6139e48b20e838d93825@msg.affixa.com>
Content-Type: multipart/mixed;
boundary="----=_NextPart_001_2C7F_AA3B1314.8E6FEB65"
------=_NextPart_001_2C7F_AA3B1314.8E6FEB65
Content-Type: multipart/alternative;
boundary="----=_NextPart_000_1462_A4B24415.C610B984"
------=_NextPart_000_1462_A4B24415.C610B984
Content-Type: text/plain;
charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
回应
HTTP/1.1 401 Unauthorized
X-GUploader-UploadID: ADPycdsnG_KOSQm3Cok7zCHHavR5wr0elW-o3cMbzRCP2OGTULeAdvCIbIQ7xFF6MCf7EAsBrjzNI-TBVa_5spdFcnLGQyFNPQ
WWW-Authenticate: Bearer realm="https://accounts.google.com/"
Vary: Origin
Vary: X-Origin
Vary: Referer
Content-Type: application/json; charset=UTF-8
Content-Length: 507
Date: Thu, 31 Mar 2022 15:39:19 GMT
Server: UploadServer
Alt-Svc: h3=":443"; ma=2592000,h3-29=":443"; ma=2592000,h3-Q050=":443"; ma=2592000,h3-Q046=":443"; ma=2592000,h3-Q043=":443"; ma=2592000,quic=":443"; ma=2592000; v="46,43"
{
"error": {
"code": 401,
"message": "Request had invalid authentication credentials. Expected OAuth 2 access token, login cookie or other valid authentication credential. See https://developers.google.com/identity/sign-in/web/devconsole-project.",
"errors": [
{
"message": "Invalid Credentials",
"domain": "global",
"reason": "authError",
"location": "Authorization",
"locationType": "header"
}
],
"status": "UNAUTHENTICATED"
}
}
软件或我们的应用程序在 Google 开发者控制台中的注册没有任何变化。
FWIW,我们的应用程序尚未经过 Google 审查,但它也不需要像从 Workspace Marketplace 安装的 business-facing 应用程序一样。该应用程序只能由整个 Workspace 组织使用并由管理员安装;它无法在 per-user 基础上安装。
客户已确认仍然授予所有必需的范围:
有什么我不知道的变化吗?
我现在已经弄清楚了问题所在 - 与 401 错误消息所暗示的无关。
我们的应用程序是用 C# 编写的,默认情况下尝试使用 TLS 1.0。当我们强制它使用 TLS 1.2 时,它工作得很好。
所以真正的问题是 HTTPS 连接中使用的加密算法,与授权 header 等无关
我猜 non-governmental 个帐户目前仍然可以使用 TLS 1.0?