无需访问网络浏览器即可授权客户端库 - gcloud auth 应用程序-默认登录

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

当我用来运行任一命令时:

 gcloud auth application-default login
或者对于特定的 docker 容器
docker exec -it 822c4c491383 /home/astro/google-cloud-sdk/bin/gcloud auth application-default login

我的命令行会给我一个谷歌响应页面的链接,我可以在其中复制他们给我的代码并将其写入命令行中。

现在由于某种原因,每当我尝试执行任一命令时,都会收到以下错误,说我无权访问网络浏览器。

您正在授权客户端库,而无需访问网络浏览器。请在带有网络浏览器的计算机上运行以下命令并 将其输出复制回此处。确保安装的 gcloud 版本是 372.0.0 或更高版本。

gcloud auth 应用程序-默认登录 --remote-bootstrap="https://accounts.google.com/o/oauth2/auth?response_type=code&client_id=764086051850-6qr4p6gpi6hn506pt8ejuq83di341hur.apps.googleusercontent.com&scope=openid+https%3A %2F%2Fwww.googleapis.com%2Fauth%2Fuserinfo.email+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fcloud-platform+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Faccounts.reauth&state =FmMFY6gvpOa9xndMXmWiNG3W1jDrCe&access_type=离线&code_challenge=zUI4n_pnYE5V7p0diDQLmL0X0Sk8XpTDzhz_vwtukOo&code_challenge_method=S256&token_usage=远程"

我尝试复制其中的链接并将其放入我的网络浏览器中,但我看到一个页面说。

错误400:无效请求缺少必需参数:重定向uri

编辑:虽然不确定为什么现在会发生这种情况,但我在两个命令的末尾添加了选项“--no-launch-browser”,它为我提供了现在手动放置在浏览器中并复制代码的链接。

docker google-cloud-platform gcloud google-authentication google-cloud-sdk
5个回答
5
投票

gcloud >= 383.0.0
版本(2022 年 4 月 26 日)上,Google 删除了对其 CLI 上的
--console-only
--no-launch-browser
标志的支持。据我所知,他们没有给出原因,但这可能与安全有关。

在没有 Web 浏览器的计算机上进行身份验证的新预期方法是使用

--no-browser
标志并将其提供的命令复制到安装了
gcloud >= 372.0
Web 浏览器的计算机上。换句话说,不再可能纯粹在没有浏览器的机器上执行此操作。请参阅直接从其文档复制的以下步骤:

请按照以下步骤操作:

  1. 复制以
    gcloud auth login --remote-bootstrap="
    开头的长命令。
  2. 在本地安装有网络浏览器和 gcloud CLI 版本 372.0 或更高版本的另一台受信任计算机的命令行上粘贴并运行此命令。
  3. 使用网络浏览器复制机器输出的长 URL。
  4. 根据提示
    Enter the output of the above command
    将长网址粘贴回第一台机器,然后按
    Enter
    完成授权。

4
投票

使用

gcloud init --console-only


3
投票
下面的

“--console-only”仍然有效,即使它已被弃用

gcloud init --console-only

并且下面的“--no-launch-browser”仍然有效,即使它已被弃用

gcloud init --no-launch-browser
下面的

“--no-browser”还不起作用,但“--no-browser”将取代“--console-only”“--no-launch-browser”所以将来,“--no-browser”将起作用,而“--console-only”“--no-launch-browser”将来将不起作用:

gcloud init --no-browser

1
投票

使用服务帐户授权 要授权使用服务帐户:

转到 Google Cloud 控制台中的服务帐号页面。

转到服务帐户

  1. 选择现有帐户或通过单击创建新帐户 创建服务帐户。
  2. 要创建服务账户密钥,请参阅 IAM 说明以创建 服务帐户密钥。
  3. 要激活您的服务帐户,请使用以下命令运行 gcloud auth login --cred-文件标志:

gcloud 身份验证登录 --cred-file=CONFIGURATION_OR_KEY_FILE

将 CONFIGURATION_OR_KEY_FILE 替换为以下其中一项的路径:

  1. 用于工作负载身份联合的凭证配置文件
  2. 服务帐户密钥文件

0
投票

由于重定向 uri 不包含整个 URL,因此可能会发生这种情况。这可以通过调整 Custom URL Base 来解决。

结果将如下所示: https://my_company_artifactory:444/artifactory

您还应该仔细检查自定义 URL 基址和

/api/oauth2/loginResponse
是否包含在您的 Google OAuth 设置页面的授权重定向 URI 中。

查看更多信息,您可以将本地主机 URL 添加到重定向 URL,它会说目前不可能。在点击创建按钮之前设置重定向 URL 时,它会很好地接受它。

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