Azure DevOps Services |Azure DevOps Server 2022 |Azure DevOps Server 2020
Azure Artifacts を使用すると、開発者はプライベート フィードやパブリック レジストリなどのさまざまなソースから NuGet パッケージをダウンロードできます。 パッケージをプライベート フィードに発行してアクセスを制御したり、パブリック フィードを作成して公開共有したりできます。 この記事では、Azure Artifacts フィードでの認証について説明します。
前提 条件
製品 | 必要条件 |
---|---|
Azure DevOps | - Azure DevOps 組織。 - Azure DevOps プロジェクト。 - Azure Artifacts フィード。 - Azure Artifacts Credential Providerをダウンロードしてインストールします。 - 最新の NuGet バージョンをインストールします。 |
プロジェクトのセットアップ
Azure DevOps 組織にサインインし、プロジェクトに移動します。
[Artifacts] を選択し、ドロップダウン メニューからフィードを選択します。
[ フィードに接続] を選択し、左側から NuGet.exe を選択します。
nuget.config ファイルをプロジェクトに追加し、それを csproj または sln ファイルと同じフォルダーに配置して、提供されたスニペットを貼り付けます。 nuget.config ファイルは次のようになります。
プロジェクト スコープのフィード:
<?xml version="1.0" encoding="utf-8"?> <configuration> <packageSources> <clear /> <add key="<SOURCE_NAME>" value="https://pkgs.dev.azure.com/<ORGANIZATION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/nuget/v3/index.json" /> </packageSources> </configuration>
組織スコープのフィード:
<?xml version="1.0" encoding="utf-8"?> <configuration> <packageSources> <clear /> <add key="<SOURCE_NAME>" value="https://pkgs.dev.azure.com/<ORGANIZATION_NAME>/_packaging/<FEED_NAME>/nuget/v3/index.json" /> </packageSources> </configuration>
Azure DevOps コレクションにサインインし、プロジェクトに移動します。
[Artifacts] を選択し、ドロップダウン メニューからフィードを選択します。
[フィードに接続]
選択し、左側のナビゲーション ウィンドウから [ NuGet.exe ] を選択します。nuget.config ファイルをプロジェクトに追加し、csproj または sln ファイルと同じフォルダーに配置し、Project セットアップ セクションで指定したスニペットをファイルに貼り付けます。
注
Azure Artifacts Credential Provider には、NuGet バージョン 4.8.0.5385
以降が必要です。 最適なパフォーマンスを得るために、Azure Artifacts では、取り消しとタイムアウトに関連する重要なバグ修正が含まれているので、NuGet バージョン 5.5.x
以降を使用することをお勧めします。
レガシ プロジェクトのセットアップ
古いバージョンの NuGet を使用している場合は、次の手順に従ってフィードに接続します。
Azure DevOps 組織にサインインし、プロジェクトに移動します。
[Artifacts] を選択し、ドロップダウン メニューからフィードを選択します。
[ フィードに接続] を選択し、左側から NuGet.exe を選択します。
[プロジェクトのセットアップ] セクションからソース URL をコピーし、
/v3/index.json
を/v2
に置き換えます。 更新されたソース URL は、次のいずれかのようになります。プロジェクト スコープのフィード:
https://pkgs.dev.azure.com/<ORGANIZATION_NAME>/<PROJECT_NAME>/_packaging/<FEED_NAME>/nuget/v2
組織スコープのフィード:
https://pkgs.dev.azure.com/<ORGANIZATION_NAME>/_packaging/<FEED_NAME>/nuget/v2
個人用アクセス トークンを作成し、アクセスする適切な組織にスコープを設定し、ニーズに基づいて次のいずれかのスコープを選択します。パッケージ化 (読み取り)、パッケージ化 (読み取りと書き込み)、またはパッケージ化 (読み取り、書き込み、管理) です。
コマンド プロンプト ウィンドウで次のコマンドを実行して、フィード ソースを nuget.config ファイルに追加します。
nuget sources add -name <FEED_NAME> -source <SOURCE_URL> -username <ANY_STRING_BUT_NOT_NULL> -password <YOUR_PERSONAL_ACCESS_TOKEN>
組織が Microsoft Entra ID に接続されている場合は、まず AD 資格情報で認証してから、 setapikey コマンドを使用して個人用アクセス トークンを追加する必要があります。
nuget sources add -name <FEED_NAME> -source <SOURCE_URL> -username <AZURE_ACTIVE_DIRECTORY_USERNAME> -password <AZURE_ACTIVE_DIRECTORY_PASSWORD> nuget setapikey <YOUR_PERSONAL_ACCESS_TOKEN> -source <SOURCE_URL>
サービスプリンシパルを使用して認証する
サービス プリンシパルを使用して Azure Artifacts フィードで認証するには、次に示すように ARTIFACTS_CREDENTIALPROVIDER_FEED_ENDPOINTS 環境変数を設定します。
これにより、フィード URL、サービス プリンシパルのアプリケーション (クライアント) ID、およびサービス プリンシパル証明書のサブジェクト名またはファイル パスが指定されます (これら 2 つのうち 1 つだけが必要です)。
$env:ARTIFACTS_CREDENTIALPROVIDER_FEED_ENDPOINTS = @'{
"endpointCredentials": [
{
"endpoint": "<FEED_URL>",
"clientId": "<SERVICE_PRINCIPAL_APPLICATION_(CLIENT)_ID>",
"clientCertificateSubjectName": "<SERVICE_PRINCIPAL_CERTIFICATE_NAME>",
"clientCertificateFilePath": "<SERVICE_PRINCIPAL_CERTIFICATE_PATH>"
}
]
}
'@
関連コンテンツ
Azure Pipelines (YAML/クラシック) を使用して NuGet パッケージを発行する