2.3. 使用 roxctl CLI 进行身份验证
要进行身份验证,您可以使用 API 令牌、管理员密码或 roxctl central login 命令。
遵循以下准则来有效地使用 API 令牌:
- 在生产环境中使用 API 令牌以及持续集成 (CI)。每个令牌都被分配特定的访问权限,提供对它可以执行的操作的控制。此外,API 令牌不需要以交互的形式进行(例如通过浏览器进行登录),使其成为自动化流程的理想选择。这些令牌具有 1 年的生存时间 (TTL) 值,为无缝集成和操作效率提供更长的有效期。
- 仅使用管理员密码用于测试目的。不要在生产环境中使用它。
-
roxctl central login命令仅适用于交互式的本地使用。
-
为防止特权升级,当您创建新令牌时,您的角色的权限会限制您可以分配给该令牌的权限。例如,如果您只对 Integration 资源
具有读取权限,则无法创建具有写入权限的令牌。 - 如果您希望自定义角色为其他用户创建令牌,您必须为该自定义角色分配所需的权限。
-
使用短期的令牌进行机器到机器通信,如 CI/CD 管道、脚本和其他自动化。另外,使用
roxctl central login命令进行人类到机器的通信,如roxctlCLI 或 API 访问。
2.3.1. 创建 API 令牌 复制链接链接已复制到粘贴板!
流程
-
在 RHACS 门户中,进入 Platform Configuration
Integrations。 - 滚动到 Authentication Tokens 类别,然后点 API Token。
- 点 Generate Token。
- 输入令牌的名称并选择提供所需访问级别的角色(例如: Continuous Integration 或 Sensor Creator)。
点 Generate。
重要复制生成的令牌并安全地存储它。您将无法再次查看它。
2.3.2. 导出并保存 API 令牌 复制链接链接已复制到粘贴板!
流程
生成身份验证令牌后,输入以下命令将其导出为
ROX_API_TOKEN变量:$ export ROX_API_TOKEN=<api_token>(可选):您还可以将令牌保存到文件中,并通过输入以下命令将其与
--token-file选项一起使用:$ roxctl central debug dump --token-file <token_file>
请注意以下信息:
-
您不能同时使用
-password(-p) 和--token-file选项。 -
如果您已经设置了
ROX_API_TOKEN变量,并指定--token-file选项,roxctlCLI 会使用指定的令牌文件进行身份验证。 -
如果您已经设置了
ROX_API_TOKEN变量,并指定--password选项,roxctlCLI 将使用指定的密码进行身份验证。
2.3.3. 使用身份验证供应商与 roxctl 进行身份验证 复制链接链接已复制到粘贴板!
您可以在 Central 中配置身份验证供应商,并使用 roxctl CLI 启动登录过程。设置 ROX_ENDPOINT 变量,使用 roxctl central login 命令启动登录过程,在浏览器窗口中选择身份验证供应商,并从 roxctl CLI 检索令牌信息,如以下步骤所述。
前提条件
- 选择一个身份验证供应商,如带有片段或查询模式的 OpenID Connect (OIDC)。
流程
运行以下命令,将
ROX_ENDPOINT变量设置为 Central 主机名和端口:export ROX_ENDPOINT=<central_hostname:port>运行以下命令,将登录过程启动到 Central:
$ roxctl central login-
在
roxctlCLI 中,URL 包括在输出中,您会被重定向到一个浏览器窗口,您可以在其中选择您要使用的身份验证供应商。 使用您的身份验证供应商登录。
成功登录后,浏览器窗口表示身份验证成功,您可以关闭浏览器窗口。
roxctlCLI 会显示您的令牌信息,包括访问令牌、访问令牌的过期时间、刷新令牌(如果已发布),并通知这些值存储在本地。输出示例
Please complete the authorization flow in the browser with an auth provider of your choice. If no browser window opens, please click on the following URL: http://127.0.0.1:xxxxx/login INFO: Received the following after the authorization flow from Central: INFO: Access token: <redacted>1 INFO: Access token expiration: 2023-04-19 13:58:43 +0000 UTC2 INFO: Refresh token: <redacted>3 INFO: Storing these values under $HOME/.roxctl/login…4 重要确保将环境设置为确定存储配置的目录。默认情况下,配置存储在
$HOME/.roxctl/roxctl-config目录中。-
如果您设置了
$ROX_CONFIG_DIR环境变量,则配置存储在$ROX_CONFIG_DIR/roxctl-config目录中。这个选项具有最高优先级。 -
如果您设置了
$XDG_RUNTIME_DIR环境变量,并且未设置$ROX_CONFIG_DIR变量,则配置存储在$XDG_RUNTIME_DIR /roxctl-config目录中。 -
如果您没有设置
$ROX_CONFIG_DIR或$XDG_RUNTIME_DIR环境变量,则配置存储在$HOME/.roxctl/roxctl-config目录中。
-
如果您设置了