在不访问web浏览器的情况下授权客户端库-gcloud auth应用程序默认登录



当我使用运行任一命令时:gcloud auth application-default login特定码头集装箱的ORCCD_ 2。

我的命令行会给我一个谷歌响应页面的链接,在那里我会复制他们给我的代码,并在命令行中编写。

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

您在不访问web浏览器的情况下授权客户端库。请在具有web浏览器的计算机上运行以下命令,然后将其输出复制回此处。确保安装的gcloud版本372.0.0或更新版本

gcloud auth应用程序默认登录--远程引导=";https://accounts.google.com/o/oauth2/auth?response_type=code&client_id=764086051850-6qr4p6gpi6hn506pt8ejuq83di341hur.apps.googleusercontent.com&scope=openid+https%3A%2F%2Fww.googleapis.com%2Fat%2Fuserinfo.email+https%3A+2F%2Fww.googleapis.com%2Fat%2云平台+https%3A+2F%2F%2WWW.googleapis.com%2Fauth%2Faccounts.reauth&state=FmMFY6gvpOa9xndMXmWiNG3W1jDrCe&access_type=offline&code_challenge=zUI4n_pnYE5V7p0diDQLmL0X0Sk8XpTDzhz_vwtukOo&code_challenge_method=S256&token_usage=远程">

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

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

编辑:虽然不确定为什么现在会发生这种情况,但我添加了选项&quot--无启动浏览器";到两个命令的末尾,它给了我一个链接,现在可以手动放置在浏览器中并复制代码。

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

在没有web浏览器的机器上进行身份验证的新方法是使用--no-browser标志,并将其提供的命令复制到同时安装了gcloud >= 372.0web浏览器的计算机上。换句话说,在没有浏览器的机器上再也不可能做到这一点了。请参阅直接从其文档中复制的以下步骤:

遵循以下步骤:

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

使用gcloud init --console-only

&quot--"仅控制台">下面仍然有效,即使它被弃用

gcloud init --console-only

并且&quot--无启动浏览器">下面仍然有效,即使它被弃用

gcloud init --no-launch-browser

"--没有浏览器"还不起作用,但"--没有浏览器">将取代"strong>"--"仅控制台">"--无启动浏览器">所以在未来,&quot--没有浏览器">将工作,而"--"仅控制台">"--无启动浏览器">将来不起作用:

gcloud init --no-browser

使用服务帐户授权使用服务帐户进行授权:

转到谷歌云控制台中的"服务帐户"页面。

转到服务帐户

  1. 通过单击选择现有帐户或创建新帐户创建服务帐户
  2. 要创建服务帐户密钥,请参阅IAM说明创建服务帐户密钥
  3. 要激活您的服务帐户,请使用--cred文件标志:

gcloud身份验证登录--cred file=CONFIGURATION _OR_KEY_file

将CONFIGURATION _OR_KEY_FILE替换为以下路径之一:

  1. 工作负载标识联盟的凭据配置文件
  2. 服务帐户密钥文件

因为重定向uri不包含整个URL,所以可能会发生这种情况。这可以通过调整自定义URL库来解决。

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

您还应该仔细检查自定义URL库和/api/oauth2/loginResponse是否包含在Google OAuth设置页面的授权重定向URI中。

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

最新更新