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?