gpt4 book ai didi

authentication - 配置 NuGet 服务器以使用身份验证

转载 作者:行者123 更新时间:2023-12-03 11:48:10 25 4
gpt4 key购买 nike

release notes用于 NuGet 1.5 状态

NuGet now supports connecting to private repositories that require basic 
or NTLM authentication.

但是,其中包含的链接只是指向 hosting your own nuget feeds页面,没有进一步提及如何设置身份验证。

我想设置一个 NuGet 服务器,该服务器可通过 Internet 上的 https 访问,但只允许能够成功验证的人查看或下载服务器上的包。

我确实创建了一个没有身份验证的应用程序,如 中所述。创建远程订阅源 documentation 中的部分,并且在 Intranet 上运行良好。我需要做什么才能在这个 repo 上启用身份验证?

一个额外的要求是解决方案不应花费数百美元(前两个答案推广可能解决问题但成本很高的产品)。

最佳答案

这可以通过在网站上启用 Windows 身份验证并通过 Sources 在构建服务器上添加凭据来完成。命令行选项,默认情况下,凭据使用仅限当前计算机上当前用户的 DPAPI key 存储(因此,对于构建服务器,您需要在使用服务帐户登录时添加凭据。)
对于开发人员工作站,您只需在 NuGet 包管理器中添加提要,然后在刷新提要时输入/存储凭据(应该会提示您。)
第 1 步 - 需要在 NuGet 服务器上进行身份验证(IIS 配置)
您需要确保为 IIS 安装了您希望使用的身份验证模块,对于 NTLM 身份验证,您将需要 Windows 身份验证模块。安装后,您可以打开 IIS 管理器并深入到您的网站,打开身份验证设置和启用 Windows 身份验证,确保禁用任何您不想支持的身份验证模块(例如匿名、基本等)
为确保使用用户凭据,右键单击站点并选择“高级设置”,然后单击“物理路径凭据”按钮。在对话框中确保选择了“应用程序用户(传递身份验证)”。
有关 Windows 身份验证的标准 IIS 配置的更多详细信息,请访问 on TechNet包括从命令行进行配置和启用协商(如果这是您的目标)。
第 2 步 - 将源添加到 NuGet 配置(构建服务器、发布者)

nuget.exe sources add -Name "Fabrikam Feed" -Source "https://nuget.fabrikam.com:443/nuget/"
nuget.exe sources add -Name "Fabirkam Publish" -Source "https://nuget.fabirkam.com:443/"
这里我们添加了两个条目,一个将用作正常的、经过身份验证的 Feed URL(用于从服务器获取包。)第二个将用于发布到服务器(添加或更新 nupkg 文件。)
第 3 步 - 更新添加源的凭据(构建服务器、发布者)
nuget.exe sources update -Name "Fabrikam Feed" -Source "https://nuget.fabrikam.com:443/nuget/" -UserName "Developer" -Password "g0d"
nuget.exe sources update -Name "Fabrikam Publish" -Source "https://nuget.fabrikam.com:443/" -UserName "Developer" -Password "g0d"
如果您查看 %APPDATA%\NuGet\NuGet.config,我们在这里向配置添加了凭据。您应该会看到您添加的提要以及加密凭据。
如果您无法以服务器身份登录,则可以使用 StorePasswordInClearText 以明文形式存储凭据。选项,但在共享环境中不建议这样做。
第 4 步 -(可选)在 Visual Studio 中禁用发布 URL(开发人员)
打开 Visual Studio 并导航到 NuGet 包管理器设置对话框,取消选中“Fabrikam Publish”提要。这不会影响您的发布能力,但是,如果您不禁用此提要,当您尝试刷新“所有”来源的包时将收到错误消息(因为它是发布 URL,而不是提要 URL。)
步骤 5 -(可选)在 Visual Studio 中存储 Windows 凭据(开发人员)
打开 Visual Studio 并导航到 NuGet 包管理器,单击“Fabrikam Feed”。应该会提示您输入凭据。您可以在此处输入凭据并勾选保存/记住选项。这可确保尝试在 Visual Studio 中刷新提要不会不断要求提供凭据。在最新版本的 NuGet 包管理器中,使用标准 HTTP 请求获取提要,并且不使用您存储到 nuget.config 的凭据。
备注:
  • 您不需要第三方解决方案来托管私有(private)、安全的源。 NuGet 服务器是免费提供的,并且 IIS 和 NuGet 工具都支持 NTLM/AD/Windows 安全性。
  • 不需要发布到提要的开发人员不需要在他们的配置中存储凭据。他们也不需要配置“发布”提要。这仅对构建服务器或其他发布者是必需的(重新:第 2 步和第 3 步。)
  • 所有将使用包提要的开发人员都会对第 5 步感兴趣,这应该是大多数开发人员所需的全部内容。他们可以简单地从 Visual Studio 中添加提要,然后在出现提示时输入他们的凭据。
  • 如果凭据更改,您可以导航到开始 -> 管理 Windows 凭据并删除“VSCredentials_nuget.fabrikam.com”。
  • 步骤 2 可以在 Visual Studio 中执行,但为了清楚起见,我在这里给出了命令行。但是,步骤 3 必须通过命令行(或使用 NuGet API)执行。
  • 在 NuGet 的 future 版本中,有传言说凭据信息可以存储在解决方案或项目级别(详细信息尚不清楚),这可能只对处于 Multi-Tenancy 构建环境中的人们没有兴趣,因为他们无法访问构建服务器.

  • 希望这可以帮助其他人!

    关于authentication - 配置 NuGet 服务器以使用身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17928112/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com