当前位置: 首页 > wzjs >正文

网站出现的问题吗深圳it外包服务公司

网站出现的问题吗,深圳it外包服务公司,云南网站开发公司介绍,手机软件app免费下载大家好,在上一篇文章中,我们探讨了如何用 Python 脚本和 Cognito 来为 AWS CLI 实现 MFA 登录。虽然功能上可行,但每次都要在终端里输入密码和 MFA 码,体验上总觉得差了点意思。今天,我们就来解决这个“遗憾”&#xf…

大家好,在上一篇文章中,我们探讨了如何用 Python 脚本和 Cognito 来为 AWS CLI 实现 MFA 登录。虽然功能上可行,但每次都要在终端里输入密码和 MFA 码,体验上总觉得差了点意思。今天,我们就来解决这个“遗憾”,实现一个能自动打开浏览器进行认证的、体验丝滑的终极方案。
在这里插入图片描述

核心思路:让浏览器和 CLI “对话”

这个方案的魔法在于利用 Cognito 的一个核心功能和一款聪明的“助手工具”:

  1. Cognito 托管 UI (Hosted UI): Cognito 可以为我们提供一个全功能的、托管在 amazoncognito.com 域名下的登录、注册、忘记密码页面。这就是我们需要的浏览器登录界面。
  2. OAuth2.0 授权码流程 (Authorization Code Grant): 这是 Web 应用的标准登录流程。用户在浏览器登录后,Cognito 不会直接返回密码或凭证,而是会返回一个临时的“授权码 (code)”到一个预先指定的 回调URL (Callback URL)
  3. 本地助手工具 (Helper Tool): 我们需要在本地运行一个轻量级的工具。它的核心任务是:
    • 在本地启动一个临时的 Web 服务器 (例如,监听 http://localhost:8080)。
    • 生成一个包含正确参数的 Cognito 托管 UI 链接,并用浏览器打开它。
    • 等待 Cognito 将“授权码”通过重定向发送到本地的 Web 服务器。
    • 拿到授权码后,在后台用它换取 Cognito 的令牌 (Token)。
    • 最后,用令牌从 Cognito 身份池换取临时的 AWS STS 凭证,并写入 ~/.aws/credentials 文件。

这个流程听起来复杂,但对于终端用户来说,体验却极其简单:运行一个命令 -> 浏览器弹出 -> 登录 -> 浏览器页面显示成功 -> 返回终端,凭证已就绪。

实战步骤:三步实现无缝体验
预备工作:调整 Cognito 应用客户端设置

这是本方案的关键!我们需要告诉 Cognito,允许将授权码发送回我们的本地电脑。

  1. 进入我们的 Cognito 用户池,找到“应用集成 (App integration)”标签页。
  2. 找到我们的“应用客户端 (App client)”。
  3. 点击“编辑”。找到 “托管 UI (Hosted UI)” 部分,点击“编辑”。
  4. “允许的回调 URL (Allowed callback URLs)” 中,添加 http://localhost:8080 (或我们选择的其他端口)。
  5. “OAuth 2.0 授权类型 (OAuth 2.0 grant types)” 中,确保勾选了 “授权码授与 (Authorization code grant)”
  6. 保存更改。
第 1 步:安装一个开源 CLI 助手工具

社区中有一些优秀的工具可以完成这个任务。它们本质上都是实现了上述逻辑的 CLI 应用。一个常见的选择是基于 Node.js 或 Go 的工具。这里我们以一个假设的、功能完备的工具 cognito-cli-login 为例(真实世界中我们可以搜索 “aws cognito cli login tool” 在 GitHub 上找到类似项目)。

# 假设通过 npm 或 brew 安装
npm install -g aws-cognito-cli-login
# 或者
brew install some-cognito-login-tool
第 2 步:配置助手工具

通常这类工具需要一个配置文件,告诉它我们的 Cognito 信息。我们可以在我们的用户主目录下创建一个 .cognito-login.toml 文件:

# ~/.cognito-login.toml
[default] # 一个配置profile的名称
aws_region = "us-east-1"
cognito_user_pool_id = "us-east-1_xxxxxxxxx"
cognito_app_client_id = "xxxxxxxxxxxxxxxxxxxxxx"
cognito_identity_pool_id = "us-east-1:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
# 工具会自动使用 http://localhost:8080 作为回调
第 3 步:登录体验

现在,我们的登录体验变得极其简单:

cognito-cli-login --profile default

运行后:

  1. 我们的默认浏览器会自动打开一个 Cognito 登录页面。
  2. 我们输入用户名、密码,然后输入 MFA 码。
  3. 登录成功后,页面会短暂跳转到 localhost:8080,然后显示一个“登录成功,可以关闭此页面”的消息。
  4. 同时,我们的终端会显示“凭证已成功获取!”
终极玩法:与 AWS CLI credential_process 无缝集成

上面的方法已经很棒了,但我们还能让它更“原生”。我们可以配置 AWS CLI,让它在需要凭证时,自动调用我们的助手工具!

  1. 打开我们的 ~/.aws/config 文件 (注意是 config 不是 credentials)。
  2. 添加一个新的 profile,内容如下:
[profile cognito]
region = us-east-1
# 关键在这里!
credential_process = cognito-cli-login --json --profile default

这是什么意思?
credential_process 告诉 AWS CLI:当需要 cognito 这个 profile 的凭证时,不要去 credentials 文件里找,而是去执行 cognito-cli-login --json --profile default 这个命令,并期望它以 JSON 格式返回临时的 Access Key, Secret Key 和 Session Token。

现在,见证奇迹的时刻到了:

我们现在可以像使用普通 AWS profile 一样使用它了。打开一个新的终端:

aws s3 ls --profile cognito
  • 如果我们的凭证已过期或不存在: 浏览器会自动弹出,要求我们登录。登录成功后,aws s3 ls 命令会自动继续执行并返回结果。
  • 如果我们的凭证仍然有效: 命令会直接执行,不会有任何打扰。

这完美复刻了 aws sso login 的按需登录体验!

结论:鱼与熊掌可以兼得

通过“Cognito 托管 UI + 本地助手工具 + credential_process”这套组合拳,我们成功地在受限的单一账户环境中,实现了堪比官方 IAM Identity Center 的 CLI 单点登录体验。

我们不仅解决了个人开发效率和体验的问题,更是掌握了一套企业级的、安全的身份联邦访问模式。这套方案安全、优雅且极大地提升了幸福感,是每一位追求极致的云工程师都应该掌握的技巧。


文章转载自:

http://d8jIxnBc.LcptL.cn
http://l3NhBy1C.LcptL.cn
http://7LjgrQbN.LcptL.cn
http://snJ278fo.LcptL.cn
http://cMimoVQV.LcptL.cn
http://S2dydVw9.LcptL.cn
http://A7j3ndZX.LcptL.cn
http://lNFyVM3G.LcptL.cn
http://duAhQCtz.LcptL.cn
http://wIic7sIy.LcptL.cn
http://JDe9emAi.LcptL.cn
http://Uv6whMau.LcptL.cn
http://pKf1UPqK.LcptL.cn
http://Q2tvuos7.LcptL.cn
http://8kjksVQF.LcptL.cn
http://Jnhq6gAA.LcptL.cn
http://AIsxUcH4.LcptL.cn
http://XpIfqS3b.LcptL.cn
http://uugFAjXr.LcptL.cn
http://yTNMQgOr.LcptL.cn
http://Z9OPon4x.LcptL.cn
http://h3VxbBaO.LcptL.cn
http://zH21yvmK.LcptL.cn
http://prOZk9eY.LcptL.cn
http://CZNGstsv.LcptL.cn
http://VKDoX890.LcptL.cn
http://9PwH6X66.LcptL.cn
http://SXdoHwRD.LcptL.cn
http://yKC0yjY8.LcptL.cn
http://LWgpTrHM.LcptL.cn
http://www.dtcms.com/wzjs/624441.html

相关文章:

  • 做视频类型的网站网站制作具体步骤
  • 保定专业做网站的公司域名购买方法
  • 中职教材 网站建设门户网站营销怎么做
  • 用新华做网站名是否侵权linode vps wordpress
  • 网站建设的公司有发展吗云平台网站叫什么
  • 网站开发及运营代理协议范本企业网站建设后期维护费用
  • 网站建设项目进展情况汇报天津工业设计公司
  • 绍兴网站建设报价网站做专业团队
  • 手机网站建设 苏州asp网站 上传空间
  • 网站开发售后工作126网易企业邮箱
  • 新乡网站网站建设小程序加盟代理前景
  • 免费网站一级域名注册创建wordpress用户访问数据库
  • 上传网站的软件seo培训
  • 常州行业网站南京高端网站制作
  • 网站设计应该做哪些昆明做公司官网的公司
  • wordpress不会代码谷歌aso优化
  • 建设个人网站的好处动漫网站设计
  • 移动互联网网站建设html5官方网站开发流程
  • 容桂网站制作价位外贸公司如何做公司网站
  • 做网站开发的wordpress 美容主题
  • 做网站什么软件主流网站模板
  • 巴中住房和城乡建设局网站新泰营销型网站建设
  • 自适应网站如何做mip乐从狮山网站建设
  • 做不一样的网站湖州网站建设公司哪家好
  • 淘宝客做网站要钱吗北京搜索引擎优化
  • 东莞网站开发技术公司电话安徽网站建设公司哪家好
  • 构建一个网站需要多少钱国内crm
  • 东莞哪里能学建设网站湖北钟祥建设局网站
  • 北京网站建设哪家最好展示型网站与营销型网站
  • 网站建设与管理教学方案河南工程建设信息网一体化平台