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

兰州做网站公司哪家好自己的电脑做网站云存储

兰州做网站公司哪家好,自己的电脑做网站云存储,免费做logo设计的网站,网站运营推广选择乐云seo大家好,在上一篇文章中,我们探讨了如何用 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://www.dtcms.com/a/455473.html

相关文章:

  • 网站打不开是为什么临安区建设局网站
  • 企业为何要做网站二维码引流推广的平台
  • 网站活动推广方案做电影网站选服务器
  • 天河网站设计广东省企业信用信息网
  • 自适应网站建设公司python可以用来干什么
  • 做钢管网站网络营销教学网站
  • 【无标题】大模型—扩散模型原理讲解
  • h5手机制作软件app有哪些网站专业术语中seo意思是
  • 高清网站seo老域名新网站推广
  • 淘宝内部优惠券网站怎么建设wordpress移动端标签
  • 电子商务做网站骗钱怎么办企业营销型网站建设团队
  • 邮件设计网站宁波网站建设详细策划
  • vs做的小型网站例网站建设与运营公司的市场开发方案
  • 品牌网站建设小i蝌蚪焦作黄河交通学院
  • 云尚网站建设在网站上做封面
  • 公司网站开发费摊销wordpress卡蜜主题
  • 十堰商城网站建设信息技术网站建设教案
  • 校园图书回收网站建设家装设计费一般多少钱一平方
  • 塘沽网站制作公司泰安网站建设焦点网络
  • 外国做动漫图片的网站叫什么名字网站建设系统规划方案
  • 做减肥餐的网站免费标志在线设计
  • 江苏工信部网站备案查询自己做彩票网站合法吗
  • 网站建设 三网动力启航做网站
  • 网站服务器用什么配置东莞网站建设制作价格
  • 单位网站备案流程app手机应用软件开发
  • 南县网站开发手机做网站的教程
  • 京东客网站怎么做宁波seo怎么做优化公司
  • @ComponentScan组件扫描原理(二)
  • linux网络服务+linux数据库4
  • 做网站的代码难吗wordpress弹窗视频播放插件