# Azure DevOps Artifacts

Azure DevOps Artifacts を仲介役として設定し、Aikido のレジストリプロキシ経由でレジストリ トラフィックをルーティングします。Artifacts は公開レジストリではなく Aikido からパッケージを取得するため、チームがインストールするすべてのパッケージがマルウェア、年齢制限、および既知の脆弱性についてチェックされます。

{% hint style="warning" %}
Azure DevOps Artifacts は、カスタムのアップストリーム ソースを **NPM**.
{% endhint %}

{% stepper %}
{% step %}

### Aikido のプロキシ URL を取得する

次へ移動します： [設定 > レジストリ プロキシ](https://app.aikido.dev/issues/aikido-libraries/setup-instructions)、次を選択します **NPM**、そしてアップストリーム プロキシ URL をコピーします。

<figure><img src="https://help.aikidogov.us/_assets/b07282b87198/Screenshot-2026-08-11-at-09.34.58.png" alt=""><figcaption></figcaption></figure>
{% endstep %}

{% step %}

### Aikido をアップストリーム ソースとして追加する

1. Azure DevOps Project で、 **Artifacts** を開き、フィードを開きます。
2. クリックします **フィードの設定** (歯車アイコン)。
3. へ移動 **アップストリーム ソース** タブを開いてクリックします **アップストリームを追加**.
4. 選択します **公開ソース** をソースタイプとして
5. 設定を入力します：
   * **公開ソース**: `カスタム レジストリ`
   * **公開ソース URL**：手順 1 で取得した Aikido プロキシ URL を貼り付けます
   * **パッケージの種類**: `npm`
   * **アップストリーム ソース名**: `aikido`
6. 入力してください `@aikidosec/mcp` を **検証** フィールドに入力し、 **検証** クリックして接続が機能していることを確認します。
7. クリックします **検証**、その後 **追加**.
8. クリックします **Save**
{% endstep %}

{% step %}

### 既定の npm アップストリーム ソースを削除する

すべての npm トラフィックが公開レジストリへ直接送られず、Aikido を経由するようにするには：

1. 同じ **アップストリーム ソース** タブで、既存の `npmjs` アップストリーム ソースを見つけます。
2. その横の削除アイコンをクリックし、削除を確認します。
{% endstep %}

{% step %}

### 開発者のマシンが Azure Artifacts を使用するように設定する

各開発者の npm クライアントを Artifacts フィードに向けます。具体的な手順については、Microsoft のドキュメントを参照してください：

[開発者としてフィードに接続する (npm)](https://learn.microsoft.com/en-us/azure/devops/artifacts/npm/npmrc)
{% endstep %}

{% step %}

### （任意）Device Protection で公開レジストリをブロックする

Artifacts を導入しても、開発者は npm を公開レジストリに直接向けることで回避できます。すべてのトラフィックがプライベート レジストリを経由するように強制するには、Aikido Device Protection を導入してください。

{% content-ref url="../../aikido-device-protection/using-aikido-endpoint/block-public-package-registries.md" %}
[公開パッケージレジストリをブロックする](https://help.aikidogov.us/docs/docs-ja/aikido-device-protection/using-aikido-endpoint/block-public-package-registries)
{% endcontent-ref %}
{% endstep %}
{% endstepper %}
