ARTIFACTORY:为什么我得到“401令牌验证失败:撤销”错误时使用跨实例认证

Pranav对冲基金
2022-12-22 14:02

在某些情况下,我们可能会收到http 401令牌验证失败:撤销
对象上使用访问令牌时出错Cross-Instance身份验证

错误代码片段:
"errors": [{
"status": 401,
"消息":"令牌验证失败:已撤销"
})
} %

原因:

访问令牌通过“信任圈”支持跨实例身份验证,信任圈是通过在所有参与实例之间共享公共证书来建立的。从本质上讲,信任圈意味着服务将对所有受信任的证书(包括由其他服务生成的证书)验证访问令牌签名,并将其设置为“受信任的”,作为信任圈的一部分。在我们的例子中,在建立信任圈之后,如果尝试使用实例- a生成的访问令牌对实例- b执行任何REST API活动,我们会得到“401,令牌验证失败:撤销”错误。这个问题是由于已知的7的问题而发生的。Artifactory的x版本。

解决方案:

您需要确保在作为信任圈一部分的两个实例的访问配置文件中添加了以下部分。令牌:
撤销:
revocable-expiry-threshold: 1

在访问配置文件中,如果' revoke - expiration -threshold'被设置为'-1',它将使所有到期的令牌都不可撤销(默认情况下,所有令牌的有效期为1年),并且由于它是不可撤销的,您将不会收到401响应。

您可以通过以下步骤设置撤销-过期-阈值:

1.编辑/ opt / jfrog / artifactory / var / etc /访问/ access.config.latest.yml
2.更新“revoke - expiration -threshold”的值,保存并退出。
例:单位为秒。令牌:
撤销:
revocable-expiry-threshold: 1

3.将access.config.latest.yml重命名为access.config.import.yml。Artifactory将在重新启动时使用该文件更新配置。
4.重新启动Artifactory,使新配置生效。
5.现在在实例A中生成访问令牌,并尝试在实例B中使用相同的访问令牌来执行任何其他api活动,您应该会得到所需的输出,而不会出现任何错误。