云客户?
免费开始>
在MyJFrog >中升级
云有什么新>





概述

JFrog Access为JFrog产品提供访问令牌,作hth华体会最新官方网站为一种灵活的身份验证手段,具有广泛的功能:

  • Cross-instance身份验证
    访问令牌不仅可以用于创建它们的实例或集群的身份验证,还可以用于属于同一个“信任圈”的其他实例和集群(如下所述)。
  • 用户和非用户认证
    对用户进行身份验证的情况很清楚,但是也可以将访问令牌分配给非用户实体,例如CI服务器作业。

  • 基于时间的访问控制
    访问令牌有一个有效期,因此您可以控制授予访问权限的时间段。但是,您也可以通过使接收用户可刷新来将该控制委托给接收用户

  • 灵活的范围
    通过通过将Groups分配给令牌,您可以控制它们提供的访问级别

  • 配对标记
    管理连接不同的JFrog微服务。

在Artifactory 7.38中实现的web更改。X及以上

标识和访问现在称为用户管理。本页上的所有相关文本和图像都已更新以反映这一变化。

访问令牌结构

访问令牌具有以下属性:

主题
与此访问令牌相关联的用户。如果指定的用户不存在,系统将创建相应的瞬态用户。管理员可以将令牌分配给任何主题(用户);创建令牌的非管理员用户只能为自己分配令牌。
范围

从7.21.1开始,访问令牌是作用域的令牌默认情况下总是提供对REST API的访问;此外,还可以指定令牌提供的组成员关系。管理员可以设置任何范围,而非管理员用户只能将范围设置为所属组的子集。

的年代支持的范围包括:

  • Applied-permissions /user -提供用户访问。如果保持默认设置,将使用允许的用户标识范围创建令牌用户可以在平台上识别自己,但不授予任何特定的访问权限。
  • Applied-permissions /admin -分配给admin用户的范围。
  • application -permissions/groups -此作用域使用以下格式为组分配权限:applied-permissions /组:<组名称>[, <组名称>…]
  • 系统:指标:r-用于获取服务指标
  • System:livelogs:r -获取服务livelogsr

分配给令牌的范围应该以空格分隔的范围令牌列表提供,限制为500个字符。

观众
可以在其上使用令牌的实例或集群集,由它们的Service id标识。Service ID是JFrog服务或集群内部生成的唯一标识符,对于Artifactory,是通过获取服务IDREST API端点。
发行人
创建访问令牌所在集群的标识符
到期
令牌到期的日期和时间。
发表在
创建令牌的日期和时间。
ID
令牌ID

访问令牌是通过REST API,如下所述,或通过JFrog平台访问令牌UI。

页面内容


令牌证书

令牌证书是密钥对,由私有证书和根证书组成,用于签署和验证令牌。private.key用于签署访问令牌和crt匹配的公钥,用于验证令牌的签名。

crt将从目标的可信文件夹中消失,并将被放置在Artifactory数据库中。

重置令牌证书

管理员可以强制Access重置令牌证书。

重置令牌证书。

  1. 创建一个名为reset_root_keys然后把它放在< VAR > /引导/ etc /。访问/键/目录中
  2. 重置Artifactory服务。

重置令牌证书将有效地撤销已生成的所有令牌。如果要重置证书,但要维护以前创建的令牌,则需要复制旧的令牌crt进入受信任目录:/var/etc/access/keys/trusted

HA中的证书-密钥对在现有HA集群中的传播

在高可用性集群中使用证书时,应使用private.key而且root.key自动传播,并在集群节点之间更新。


使用令牌

有几种方法可以使用访问令牌进行身份验证。

基本身份验证

可以使用访问令牌代替密码进行基本身份验证。当您需要一个只支持基本身份验证的客户端(比如某些依赖管理器)来访问Artifactory时,这可能很有用。在这种情况下,使用创建令牌时提供的相同用户名访问Artifactory是很重要的- d“用户名= <用户名>”).

例如,要使用访问令牌作为密码来ping JFrog平台的URL,你可以使用:

curl -u: http://JFROG_PLATFORM_URL/router/api/v1/system/ping

授权标头

访问令牌可在授权标头中用作承载令牌。这对于使用Artifactory而不是凭据验证CI服务器特别有用,因为如果在中提供了组,则不需要在Artifactory中定义用户- d”member-of-groups: <集团> "在该Artifactory实例中配置。因此,不需要为需要访问Artifactory的不同自动化工具管理虚构的用户。

例如,使用一个访问令牌作为承载令牌来ping Artifactory,你可以使用:

curl -H"授权:承载" http://JFROG_PLATFORM_URL/router/api/v1/system/ping

支持对不存在的用户进行认证

访问令牌的最大优点之一是,您不必在Artifactory中创建用户来使用它们。在创建令牌时,您可以指定一个不存在的用户名,Artifactory将创建一个临时用户,该用户只在令牌有效时存在。这在提供对不同工具的访问时非常有用,例如CI服务器协调构建,而不必管理假用户帐户。这种方法也更安全,因为您可以为外部工具运行的每个“作业”分配一个新的令牌。

仅限Artifactory管理员

注意,此特性仅适用于Artifactory管理员,因为非管理员用户只能以自己为Subject创建令牌。


生成到期令牌

重要的

创建令牌时,如果将令牌有效期设置为小于revocable-expiry-threshold参数。访问YAML配置令牌将是不可撤销的。缺省情况下,revocable-expiry-threshold参数设置为6小时。

例如,如果您设置的过期时间小于6小时,则令牌将不会过期可撤销的直到它自然失效。

在生成token时,可以通过设置token的过期时间来限制token的有效期。如果设置了,令牌将一直有效,直到过期时间过去。
您还可以通过将有效期设置为零来将令牌设置为不可过期的,在这种情况下,令牌将无限期有效,直到主动撤销为止。

此值通过使用“expires_in = < VALUE_IN_SECONDS >参数时生成令牌(参见下面REST API部分中的示例)。如果不使用,默认值将是3600,这意味着您的令牌将在一小时内有效。

仅限Artifactory管理员

  • 只有Artifactory管理员可以将令牌的有效期更改为任何值。
  • 非管理员用户只能将令牌有效期设置为等于或小于管理员设置的最大允许值。
  • 从版本7.21.1开始,可以通过设置token.max-expiry参数$ JFROG_HOME / artifactory / var / etc / artifactory /access.config.yml文件(p在7.21.1版本中,要设置的参数为artifactory.access.token.non.admin.max.expires.in).
  • 如果token.max-expiry等于0(这是默认值),则令牌有效期没有限制。但是,如果最大过期时间大于0,用户就不能创建不可过期的令牌。
  • token.max-expiry参数的值必须大于token.default-expiry参数值。

生成可刷新令牌

如上所述,可以通过设置令牌的过期时间来限制令牌的有效期。为了允许在令牌过期后扩展令牌的访问权限,您可以提供一个刷新令牌,它将生成一个具有与原始令牌相同权限的新令牌。这将令牌管理从其发行者手中解放出来,并将其委托给接收令牌的用户。

谁能刷新?

只有发出可刷新令牌的实例(或HA集群)才能实际刷新令牌。

禁用创建可刷新令牌的选项

从版本,7.21.1,一个管理员可以通过设置该参数禁用创建可刷新令牌的选项token.allow-refreshable虚假的JFROG_HOME artifactory / var / etc / artifactory /access.config.yml文件。

Token过期的宽限期

当一个可刷新的令牌过期时,JFrog Access为用户提供了一个宽限期,基本上扩展了刷新令牌的能力。这是通过使用参数来完成的token.refresh-expiryJFROG_HOME artifactory / var / etc / artifactory /access.config.yml文件。默认设置为24小时。

限制

整合SCIM确保已创建令牌的外部用户如果已从外部身份验证服务器删除令牌,则无法刷新令牌。

但是,如果您的组织有启用SCIM, aN已创建令牌的外部用户即使已被删除,仍然能够刷新它;因此,建议在您的系统中实现SCIM。


生成管理令牌

从Artifactory version 7.4提供。

通常,令牌的范围是通过指定令牌所在的组来定义的,但是,Artifactory管理员也可以使用管理权限创建令牌。这对于JFrog Mission Control和JFrog Xray来说很有用,因为这两个互补的应用程序都需要管理权限才能与Artifactory无缝地工作。有了这个功能,当Mission Control或Xray连接到Artifactory实例时,他们可以创建一个管理令牌并使用它进行身份验证,而不是使用带有用户名和密码的基本身份验证。

若要从管理模块创建管理令牌,请转到用户管理|访问令牌|生成管理员令牌

上面屏幕上显示的服务仅是JFrog平台部署中可用的服务。


生成作用域令牌

Administration选项卡的User Management功能提供了用于管理的集中UI作用域的令牌哪一个是安全访问令牌,提供有限且集中的权限。作用域令牌的范围从任何用户都可以为自己创建的标识令牌(参见身份标识),到提供管理员访问级别权限的令牌。

政府Tab,转到用户管理|访问令牌

您现在可以创建两种类型的令牌:Admin令牌(它提供一系列权限)或User令牌。

查看Token的作用域

从Artifactory 7.46.3版本开始,您可以在Access Tokens UI中看到一个令牌的作用域作为一个名为scope的列。

创建一个管理范围令牌

  1. 从Token范围字段中选择管理
  2. 在User name字段中,输入Admin用户的名称。
  3. 在“服务”字段中,您可以选中“全部”复选框,也可以清除“全部”复选框,然后从“服务”字段中出现的列表中,选择要添加到该用户的令牌的服务。
  4. 在Expiration time字段中,设置令牌的过期时间(使用该字段中的一个选项或设置自定义过期时间(以小时为单位)。
  5. 点击生成生成令牌。
    这将显示Generate Token窗口,其中包括用户名、范围、受众、过期、令牌ID和实际的令牌。
  6. 要复制令牌,请单击它旁边的复制图标或简单地单击复制

    重要的

    出于安全原因,这里生成的令牌不会存储在JFrog平台中;因此,请确保在关闭此窗口之前复制了令牌。一旦关闭,令牌将不可用。

创建管理员作用域引用令牌

从Artifactory发行版7.38.4开始,您可以选择是生成一个扩展令牌(如上面屏幕所示),还是生成一个扩展令牌参考标记.参考令牌是一个“缩短的”128个字符的键,因此为较长的令牌提供了别名。

为了支持这个选项,生成作用域令牌UI包含了一个额外的创建参考令牌复选框。

  1. 若要创建引用令牌,请确认选中了复选框并单击生成
    这将显示Generate Token窗口,其中包括用户名、范围、受众、过期、令牌ID和完整的令牌参考标记

  2. 要复制完整令牌或引用令牌,请使用复制图标在令牌旁边。

    重要的

    出于安全原因,这里生成的令牌不会存储在JFrog平台中;因此,请确保在关闭此窗口之前复制了令牌。一旦关闭,令牌将不可用。

创建用户范围令牌

  1. 从Token范围字段中选择用户
  2. 单击Users字段以显示Artifactory用户的下拉列表,并选择一个用户,或者在字段中键入用户名以定位该用户。
  3. 在“服务”字段中,您可以选中“全部”复选框,也可以清除“全部”复选框,然后从“服务”字段中出现的列表中,选择要添加到该用户的令牌的服务。
  4. 在Expiration time字段中,设置令牌的过期时间(使用该字段中的一个选项或设置自定义过期时间(以小时为单位)。
  5. 点击生成生成令牌。
    这将显示令牌窗口,其中包括Artifactory用户的用户名、范围、受众、过期、令牌ID和实际令牌,您可以通过单击复制这些令牌复制

生成配对令牌

关于配对令牌

可从Artifactory 7.29.7版本获得配对令牌通过在不同的JFrog微服务之间建立信任来管理连接。配对令牌是用于初始配对流的访问令牌。因为令牌是一个有限的访问令牌,所以它专门用于特定的任务并且寿命很短。一旦建立信任,服务就可以继续使用标准的基于令牌的身份验证进行通信。

配对令牌替换join.key过去在JFrog平台中用于连接服务。这种类型的令牌仅设计用于链接交叉拓扑(即,在本地,而不是在JPD中)。

配对令牌为特定用途的用例提供配对。它们是可撤销的,并且期望最多使用一次(即,在第一次配对后撤销)。这些令牌的默认过期设置是5分钟。

  • 令牌的主题与请求配对令牌的主体的主题相同
  • 扩展中的基本URL是必须的
  • 扩展中的交换URL是强制的(因为令牌是签名的,所以这个URL可以假定为受信任的)
  • 配对URL是可选的,在需要建立双向信任时使用

主令牌

配对的结果是主令牌,这是一个访问令牌,它根据给定的用例授予请求服务对发出服务执行的所有操作。主令牌通常是一个强访问令牌,可以用于多个操作,并且通常是一个长寿命令牌。管理员用户可以通过撤销这个令牌来撤销信任。

支持的配对令牌

配对令牌使您能够在以下之间进行连接:

  • 在你的JFrog平台部署(JPD) / edge和远程JFrog任务控制服务。令牌的主题与请求配对令牌的主体的主题相同。
  • 在两个jpd(两个Artifactory实例)之间,将用于创建JFrog冷存储;在这种情况下,生成的配对令牌将用于API绑定过程。

配对令牌绑定JPD和任务控制微服务

  1. 政府Tab,转到用户管理|接入令牌|配对令牌
  2. 在生成配对令牌字段中,选择任务控制(适用于JPDs)
  3. 点击生成生成令牌。
    这将显示令牌窗口,其中包括令牌的过期时间(以秒为单位,默认设置为300秒= 5分钟)、令牌ID和实际令牌,您可以通过单击复制令牌复制

配对令牌来设置冷存储(使用API)

  1. 政府Tab,转到用户管理|接入令牌|配对令牌
  2. 在生成配对令牌字段中,选择冷藏
  3. 点击生成生成令牌。
  4. 这将显示令牌窗口,其中包括令牌的过期时间(以秒为单位,默认设置为300秒= 5分钟)、令牌ID和实际令牌,您可以通过单击复制令牌复制
  5. 接下来,使用上面生成的令牌并按照步骤操作使用api设置冷工件存储

查看和撤销令牌

创建的任何令牌的到期时间大于revocable-expiry-threshold参数可以使用撤销令牌的REST API端点或访问令牌页面。注意,您只能撤销发出令牌的实例(或集群)上的令牌,除非该实例是Access Federation设置的一部分(需要Enterprise+许可证)。

从7.21.1开始,访问令牌是有作用域的令牌。默认情况下总是提供对REST API的访问;此外,还可以指定令牌提供的组成员关系。管理员可以设置任何范围,而非管理员用户只能将范围设置为所属组的子集。看到访问令牌结构获取详细信息。

具有指定到期期限的令牌将在达到其到期期限时自动失效。

不可过期的令牌(即,是用它的expires_in参数设置为0)必须主动撤销以终止其使用。

撤销一个访问令牌。

  1. 政府模块,选择用户管理|访问令牌
  2. 在列表中选择接入令牌,单击撤销


信任圈(跨实例认证)

访问令牌通过“信任圈”支持跨实例身份验证,信任圈是通过在所有参与实例之间共享公共证书来建立的。从本质上讲,信任圈意味着服务将对所有受信任的证书验证访问令牌签名,包括由其他服务生成的证书,并将其设置为“受信任的”作为信任圈的一部分。

业务管理员负责确保所有参与的实例都配备了证书。这意味着任何实例都可以生成一个令牌,与信任圈内的任何其他实例一起使用。

为什么我需要一个信任圈?

当您有一系列需要使用一组凭证访问的jpd时,就需要一个信任圈。例如,需要从两个JPD实例上传和下载的单个构建代理。通过创建信任圈,可以确保一个JPD实例信任另一个实例的令牌。这是通过在圈内的所有实例之间共享公共令牌证书来实现的。

受信任的证书可以在服务器运行时加载和删除,不需要重新启动。


跨实例验证

如何建立信任圈

为了在JFrog服务之间建立“信任圈”,您需要在服务之间交换公共令牌证书。

信任圈内的服务彼此拥有完全的管理特权。为了交换证书,需要将一个服务的根证书复制到另一个服务的根证书JFROG_HOME美元/ artifactory / var / etc /访问/键/信任文件夹中。

服务根证书可以通过以下方式获取:

  • 发现下美元JFROG_HOME / artifactory / var / etc /访问/键/ root(需要物理访问服务器)
  • 通过调用获取根证书REST API

crt将从目标的可信文件夹中消失,并将被放置在Artifactory数据库中。

可以在多个服务之间创建信任:您需要确保信任圈中的所有参与实例都配备了相关的公钥(根证书)。注意,信任可以是单向的,也可以是双向的。该服务监视可信公钥目录,并在需要验证令牌时重新加载密钥

重命名源服务的证书

由于可以在多个服务之间创建信任,因此应该使用有意义的名称重命名每个源服务的证书。例如,如果一个名为“us-east”的服务应该被另一个名为“us-west”的服务信任,那么美元JFROG_HOME / artifactory / var / etc /访问/键/ root从美国东部,应抄送至JFROG_HOME美元/ artifactory / var / etc /访问/键/相信/ us-east.crt在美国西。

使用相同的Artifactory用户id和groupid

确保你给相同的Artifactory用户标识而且groupid到受信任文件夹中的根证书(美元ARTIFACTORY_HOME /访问/ etc /键/相信/ *),与前一个文件夹中的其他文件(ARTIFACTORY_HOME /访问/ etc /键/美元).

安全限制

为了使JFrog访问令牌尽可能安全,JFrog使用了一些预先配置的值,以确保令牌得到管理,并且只能用于正确的目的:

  • 范围:如果令牌范围是一个用户或组,则必须确保该用户或组存在于信任圈内的所有服务器上。
  • 可撤销:出于安全考虑,JFrog平台部署了默认配置,将每个令牌设置为可撤销。然而,可撤销的令牌不在一个信任的圈子里工作.这是因为可撤销令牌是针对Access数据库进行验证的;有了信任圈,每个实例都有自己的数据库。因此,如果在一个实例中创建的令牌不能针对另一个实例的数据库(即,系统将假定令牌已被撤销,身份验证将失败)。
  • 令牌类型:信任圈中不支持以下类型的令牌:
    • 在信任圈中不支持引用令牌(它们总是要求令牌位于实例的数据库中)。
    • ui生成的令牌:通过用户配置文件页面创建的令牌是引用令牌,在信任圈中不受支持。
  • 持续时间:由于受支持的令牌必须定义为不可撤销的,因此信任圈令牌的有效期必须小于revocable-expiry-threshold参数。access.config.yaml(您可以在access.config.yaml中看到默认值)。注意,这个阈值有一个特殊值“-1”;设置后,所有有过期的令牌都是不可撤销的。这种设置在信任圈中使用更舒服,但不太安全(因为有效期可能设置为数年)。

限制

默认情况下,只有发出令牌的实例可以刷新令牌。有关跨服务同步令牌,请参见访问联合会



REST API

访问令牌的所有管理都是通过REST API通过下面描述的端点完成的。

获取根证书

接收服务器的公共根证书。详细信息请参考JFrog Artifactory REST API文档获取根证书

创建令牌

创建访问令牌。详细信息请参考JFrog Artifactory REST API文档创建令牌,其中还包括可以分配给访问令牌的不同类型的作用域(例如,配对令牌等)。

刷新令牌

刷新访问令牌以延长其有效期。如果只提供访问令牌和刷新令牌(不提供其他参数),则使用此对进行身份验证。如果提供了用户名或任何其他参数,则请求必须通过授予管理权限的令牌进行身份验证。详细信息请参考JFrog Artifactory REST API文档刷新令牌

撤销令牌

根据ID撤销访问令牌。详细信息请参考JFrog Artifactory REST API文档撤销令牌

获取服务ID

提供Artifactory实例或集群的服务ID。详细信息请参考JFrog Artifactory REST API文档获取服务ID


版权所有©2022 JFrog Ltd.