【问题标题】:Authenticate with specific user in Azure Release Pipeline在 Azure 发布管道中与特定用户进行身份验证
【发布时间】:2020-12-09 12:28:10
【问题描述】:

我正在尝试向特定用户进行身份验证,该用户有权使用 Azure 中的发布管道(无法选择完全 YML)从特定 Azure 工件提要视图中下拉包。

我的工作流程是允许某些包通过@rc 提要视图可用,而不总是从@local 提要视图中提取最新的包,因为@local 提要视图可以有多个包,这些包不是开发版本准备 RC。我正在尝试使用 NPM Authenticate 任务进行身份验证,但这并没有让我选择指定对 @rc 提要视图具有独立访问权限的用户的帐户详细信息。

当 Release Pipeline 任务运行时,我也不确定哪个用户实际上在管道中进行了身份验证,根据文档,不太清楚的是构建用户。

https://docs.microsoft.com/en-us/azure/devops/pipelines/tasks/package/npm-authenticate?view=azure-devops

【问题讨论】:

    标签: azure-devops


    【解决方案1】:

    当 Release Pipeline 任务运行时,我也不确定哪个用户实际上在管道中进行了身份验证,根据文档,不太清楚的是构建用户。

    默认情况下运行发布管道任务时,项目构建服务帐户实际上正在管道中进行身份验证。你可以从Feed settings获得它:

    对于您的情况,您可以使用 NPM 身份验证任务为具有用户名/密码或 PAT 的特定用户创建服务连接:

    并在创建/编辑 RC 视图时在选项特定人员中指定特定用户:

    注意:需要牢记两个重要概念:

    • 如果用户对特定视图具有权限,即使他们没有对源的权限,他们仍然可以通过该视图访问和下载包。如果你想完全隐藏你的包,你必须限制提要和查看权限。 要限制对您的 Feed 的访问,只需从您的 Feed 设置的权限表中选择一个用户或组,然后选择删除。您可以通过更改视图对特定人员的可见性来限制对视图的访问。
    • 视图从其父 Feed 继承其权限。设置视图 特定人员的权限,无需指定用户或组 将导致查看权限默认返回其父提要 权限。

    更多详情请查看this document

    【讨论】:

    • 它实际上是针对存在于同一组织中的工件提要,而不是外部注册表,因此使用 NPM Authenticate 任务,我从下拉列表中选择了正确的工件提要。 NPM Authenticate 任务不允许我指定用户或 PAT。根据我的阅读,这些凭据是否需要直接在.npmrc 中设置?它们可以通过作为管道变量传递来保护。
    • @strange_developer,我们在 npm authenticate 任务中指定的 .npmrc 文件用于指定您要使用的注册表,而不是凭据。要解决此问题,请尝试不要使用下拉菜单中的默认工件提要,尝试创建一个指定用户或 PAT 的服务连接。
    • 我创建了一个具有最小访问权限的用户,为该用户创建了一个 PAT,假设该用户具有对 rc Feed View 的特定访问权限(不是对 Feed 的完全访问权限),但是,该用户仍然能够在 prod feed 视图中下载最新的包。根据我所阅读的内容以及我在您的回答中遵循的说明,用户不应该能够访问 prod 提要视图中的任何包,而只能访问当前未发生的 rc 提要视图中的任何包。不确定我是否在某个地方出错了?
    • @strange_developer,您是否已将此用户添加到您的组织?如果是,请尝试将其从您的组织中删除。创建 PAT 而不授予读取包装的权限
    • 我创建了一个 PAT,但没有任何对包装的访问权限。我已经使用 PAT 创建了一个服务连接,并且通过查看使用历史记录似乎正在使用服务连接,但从 prod 视图而不是 rc 视图获取包。如果我使用我创建的用户登录并转到 Feed,我正确地只能看到 rc 视图包。 Azure 是否支持这种类型的功能,还是我使用的方式不正确?
    猜你喜欢
    • 2016-10-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-27
    • 1970-01-01
    • 1970-01-01
    • 2019-03-13
    • 2017-05-23
    相关资源
    最近更新 更多