#iam #token #cli

iam_token_manager

IBM Cloud 令牌的 IAM 令牌管理器

2 个版本

0.1.1 2021 年 12 月 16 日
0.1.0 2021 年 12 月 4 日

#19 in #iam

Apache-2.0

23KB
353

IAM 令牌管理器

IAM 令牌管理器负责管理 IAM 访问令牌并在它们过期前刷新它们。目前仅支持 IBM IAM 令牌。

demo

先决条件

使用 rustup 安装 Rust 的当前稳定版本。在 Linux 和 OS X 上,可以通过运行以下命令来完成:

curl https://sh.rustup.rs -sSf | sh

IBM

在仓库根目录中执行以下命令以编译 ibmtest 示例二进制文件:

cargo build --example ibmtest 

编译的二进制文件 ibmtest 可在 target/debug/examples/ 中找到。

该二进制文件有以下命令行标志:

  • --ibm: 为 cloud.ibm.com 提供一个 API 密钥(可以多次传递)
  • --ibm-test: 为 test.cloud.ibm.com 提供一个 API 密钥(可以多次传递)
  • --web.listen-port: 网络服务器的端口(可选)
  • --token-refresh-seconds: 对于每个 API 密钥请求新访问令牌的频率(可选,默认=1800)

至少需要指定 --ibm--ibm-test 中的一个。如果指定了 web.listen-port,将启动一个网络服务器,公开以下路由:

  • GET /v1/tokens:按 BSS 账户映射的所有当前访问令牌列表。示例响应
{
  tokens": [
    {
      "id": "274a00...",
      "access_token": "eyJraW...",
      "refresh_token": "eyJraW..."
    }
  ]
}
  • GET /v1/tokens/<id>:ID 为 <id> 的账户的访问令牌。示例响应
{
    "id": "247a00...",
    "access_token": "eyJraW...",
    "refresh_token": "eyJraW..."
}

示例(用真实 API 密钥替换)

环境变量 RUST_LOG 控制日志输出的详细信息。不设置此环境变量意味着仅记录错误

RUST_LOG=info ./target/debug/examples/ibmtest --ibm <key1> --ibm <key2> --ibm-test <key3> --web.listen.port=5050

依赖关系

~20–34MB
~642K SLoC