×

前提条件

  • 您已使用以下命令配置了ROX_ENDPOINT环境变量

    $ export ROX_ENDPOINT=<host:port> (1)
    1 您想要存储在ROX_ENDPOINT环境变量中的主机和端口信息。

获取身份验证信息

以下步骤描述了如何使用roxctl central whoami命令检索有关您在 Central 中的身份验证状态和用户配置文件的信息。示例输出说明了您可以看到的预期数据,包括用户角色、访问权限和各种管理功能。此步骤允许您查看您在 Central 中的访问权限和角色。

步骤
  • 运行以下命令以获取有关您在 Central 中的当前身份验证状态和用户信息的信息

    $ roxctl central whoami
    示例输出
    UserID:
    	    <redacted>
    User name:
    	    <redacted>
    Roles:
     APIToken creator, Admin, Analyst, Continuous Integration, Network Graph Viewer, None, Sensor Creator, Vulnerability Management Approver, Vulnerability Management Requester, Vulnerability Manager, Vulnerability Report Creator
    Access:
      rw Access
      rw Administration
      rw Alert
      rw CVE
      rw Cluster
      rw Compliance
      rw Deployment
      rw DeploymentExtension
      rw Detection
      rw Image
      rw Integration
      rw K8sRole
      rw K8sRoleBinding
      rw K8sSubject
      rw Namespace
      rw NetworkGraph
      rw NetworkPolicy
      rw Node
      rw Secret
      rw ServiceAccount
      rw VulnerabilityManagementApprovals
      rw VulnerabilityManagementRequests
      rw WatchedImage
      rw WorkflowAdministration

    查看输出以确保身份验证和用户详细信息符合预期。

使用 roxctl CLI 进行身份验证

对于身份验证,您可以使用 API 令牌、管理员密码或roxctl central login命令。

请遵循以下准则以有效使用 API 令牌

  • 在持续集成 (CI) 的生产环境中使用 API 令牌。每个令牌都分配有特定的访问权限,可以控制它可以执行的操作。此外,API 令牌不需要交互式流程,例如基于浏览器的登录,因此非常适合自动化流程。这些令牌的生存时间 (TTL) 为 1 年,为无缝集成和运营效率提供了更长的有效期。

  • 仅将管理员密码用于测试目的。不要在生产环境中使用它。

  • 仅将roxctl central login命令用于交互式本地用途。

  • 为防止权限提升,创建新令牌时,您的角色权限会限制您可以为此令牌分配的权限。例如,如果您仅对 Integration 资源具有read权限,则无法创建具有write权限的令牌。

  • 如果您希望自定义角色为其他用户创建令牌,则必须为此自定义角色分配所需的权限。

  • 对于机器到机器的通信(例如 CI/CD 管道、脚本和其他自动化),请使用短期令牌。此外,对于人机通信(例如roxctl CLI 或 API 访问),请使用roxctl central login命令。

创建 API 令牌

步骤
  1. 在 RHACS 门户中,转到**平台配置** → **集成**。

  2. 滚动到**身份验证令牌**类别,然后单击**API 令牌**。

  3. 单击**生成令牌**。

  4. 输入令牌名称,并选择提供所需访问级别的角色(例如,**持续集成**或**传感器创建者**)。

  5. 单击**生成**。

    复制生成的令牌并安全地存储它。您将无法再次查看它。

导出和保存 API 令牌

步骤
  1. 生成身份验证令牌后,通过输入以下命令将其导出为ROX_API_TOKEN变量

    $ export ROX_API_TOKEN=<api_token>
  2. (可选):您也可以将令牌保存在文件中,并使用--token-file选项输入以下命令

    $ roxctl central debug dump --token-file <token_file>

请注意以下准则

  • 您不能同时使用-password-p)和--token-file选项。

  • 如果您已设置ROX_API_TOKEN变量并指定了--token-file选项,则roxctl CLI 将使用指定的令牌文件进行身份验证。

  • 如果您已设置ROX_API_TOKEN变量并指定了--password选项,则roxctl CLI 将使用指定的密码进行身份验证。

使用身份验证提供程序对 roxctl 进行身份验证

您可以在 Central 中配置身份验证提供程序,并使用roxctl CLI 启动登录流程。设置ROX_ENDPOINT变量,使用roxctl central login命令启动登录流程,在浏览器窗口中选择身份验证提供程序,并按照以下步骤从roxctl CLI 中检索令牌信息。

先决条件
  • 您选择了您选择的身份验证提供程序,例如带有片段或查询模式的 OpenID Connect (OIDC)。

步骤
  1. 运行以下命令将ROX_ENDPOINT变量设置为 Central 主机名和端口

    export ROX_ENDPOINT=<central_hostname:port>
  2. 运行以下命令以启动到 Central 的登录过程

    $ roxctl central login
  3. roxctl CLI 中,将打印一个 URL 作为输出,并且您将被重定向到浏览器窗口,您可以在其中选择要使用的身份验证提供程序。

  4. 使用您的身份验证提供程序登录。

    成功登录后,浏览器窗口将指示身份验证成功,您可以关闭浏览器窗口。

  5. roxctl CLI 将显示您的令牌信息,包括访问令牌、访问令牌的过期时间、已发布的刷新令牌(如果已发布)以及这些值存储在本地位置的通知。

    示例输出
    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 UTC (2)
    INFO:	Refresh token: <redacted> (3)
    INFO:	Storing these values under $HOME/.roxctl/login… (4)
    1 访问令牌。
    2 访问令牌的过期时间。
    3 刷新令牌。
    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目录中。

在 RHACS 云服务中配置和使用 roxctl CLI

步骤
  • 通过运行以下命令导出ROX_API_TOKEN

    $ export ROX_API_TOKEN=<api_token>
  • 通过运行以下命令导出ROX_ENDPOINT

    $ export ROX_ENDPOINT=<address>:<port_number>
  • 您可以使用--help选项获取有关命令的更多信息。

  • 在 Red Hat Advanced Cluster Security Cloud Service (RHACS 云服务) 中,当使用需要 Central 地址的roxctl命令时,请使用 Red Hat Hybrid Cloud Console 的**实例详细信息**部分中显示的**Central 实例地址**。例如,使用acs-ABCD12345.acs.rhcloud.com代替acs-data-ABCD12345.acs.rhcloud.com