Azure Artifacts フィードに接続する (dotnet)

Azure DevOps Services |Azure DevOps Server |Azure DevOps Server 2022

Azure Artifacts を使用すると、開発者はフィードの可視性設定に応じて、フィードにパッケージをシームレスに発行し、プライベートまたはパブリックに共有できます。 このガイドでは、プロジェクトを設定し、Azure Artifacts フィードを使用して認証する手順について説明します。

[前提条件]

製品
Azure DevOps - Azure DevOps 組織
- Azure DevOps プロジェクト
- Azure Artifacts フィード
- .NET SDK バージョン 9.0.200 以降をダウンロードしてインストールします。

Azure Artifacts資格情報プロバイダーを設定する

フィードで認証するには、まずAzure資格情報プロバイダーをインストールする必要があります。 dotnet に含まれているツール インストーラーを使用して、次のコマンドを使用して CLI から資格情報プロバイダーをインストールできます。

dotnet tool install --global Microsoft.Artifacts.CredentialProvider.NuGet.Tool

リポジトリ レベルの nuget.config がAzure Artifactsソースのみを使用するように構成されている場合は、そのディレクトリの外部から install コマンドを実行するか、nuget.org をソースとして明示的に設定します。

dotnet tool install --global Microsoft.Artifacts.CredentialProvider.NuGet.Tool --source https://api.nuget.org/v3/index.json

必要に応じて、ツールをメジャー バージョンにピン留めします (再現性が重要なコンテナー イメージなど)。

dotnet tool install --global Microsoft.Artifacts.CredentialProvider.NuGet.Tool --version 2.* --source https://api.nuget.org/v3/index.json

認証を必要とする操作を初めて実行するときは、次のいずれかを使用して認証する必要があります。

  • --interactiveを使用して実行すると、dotnet から認証を求めるメッセージが表示されます。
  • environment 変数 (無人シナリオなど) を使用して資格情報を指定します。

対話型承認が使用可能な場合は、プロジェクト ディレクトリに移動して次を実行します。

dotnet restore --interactive

このコマンドはサインインし、トークンを取得します。 サインインが成功したら、トークンの有効期限が切れるまで、 --interactive なしで認証済みコマンドを実行できます。 詳細については、Session トークンキャッシュの場所を参照してください。

フィードに接続する

  1. [ 成果物] を選択し、ドロップダウン メニューからフィードを選択します。

  2. [フィードに接続] を選択し、[NuGet] セクションから dotnet を選択します。

  3. nuget.config ファイルをプロジェクトに追加します。 .csproj または .sln ファイルと同じフォルダーに配置し、Project セットアップ セクションで指定したスニペットを貼り付けます。 nuget.config ファイルは次のようになります。

    • プロジェクト スコープのフィード:

      <?xml version="1.0" encoding="utf-8"?>
      <configuration>
        <packageSources>
          <clear />
          <add key="<FEED_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="<FEED_NAME>" value="https://pkgs.dev.azure.com/<ORGANIZATION_NAME>/_packaging/<FEED_NAME>/nuget/v3/index.json" />
        </packageSources>
      </configuration>
      
  1. Azure DevOps コレクションにサインインし、プロジェクトに移動します。

  2. アーティファクトを選択し、次にドロップダウンメニューからフィードを選択します。

  3. [ フィードに接続] を選択し、左側から dotnet を選択します。

  4. nuget.config ファイルをプロジェクトに追加します。 .csproj または .sln ファイルと同じフォルダーに配置し、Project セットアップ セクションで指定したスニペットを貼り付けます。

    Azure DevOps Server 2020 および 2022 のフィードに接続する方法を示すスクリーンショット。

サービスプリンシパルを使用して認証する

サービス プリンシパルを使用して、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>"
        }
    ]
}
'@