> ## Documentation Index
> Fetch the complete documentation index at: https://docs.devin.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Azure DevOps（サービス プリンシパル）

> Microsoft Entra のサービス プリンシパルを使用して、Devin を Azure DevOps に接続します

<div id="overview">
  ## 概要
</div>

Devin は、Microsoft Entra のサービス プリンシパルを介して Azure DevOps に接続します。管理者がテナント内で Cognition が公開した **Cognition Azure DevOps Service Principal** アプリケーションを承認すると、サービス プリンシパルが作成されます。その後、選択した権限を付与して、そのサービス プリンシパルを Azure DevOps の組織に追加します。

* Entra の承認時に要求されるのは `User.Read` のみで、これは ID の確認だけに使用されます
* Entra の承認だけでは、リポジトリやコードへのアクセス権は**付与されません**
* すべてのリポジトリへのアクセスは、Azure DevOps で割り当てる権限によって制御されます

一部の他の SCM 統合とは異なり、Azure DevOps ではサードパーティ アプリは同じようには表示されません。接続の管理はすべて、Devin の **Settings > Enterprise Settings > 統合** で行います。

<div id="prerequisites">
  ## 前提条件
</div>

Azure DevOps 統合を設定する前に、以下を確認してください。

1. **統合を管理する権限を持つ Enterprise の Devin アカウント**
2. **アプリケーションに管理者の同意を付与できる Microsoft Entra 管理者**
3. **ユーザーを追加し、権限を割り当てられる Azure DevOps 組織管理者**

<div id="setting-up-the-integration">
  ## 統合の設定
</div>

1. [app.devin.ai](https://app.devin.ai) で Devin アカウントにサインインします。

2. 別のブラウザまたはシークレット ウィンドウで、Azure DevOps にサインインします (手順 6 で必要です) 。

3. Enterprise の Devin アカウントで、**Settings > Enterprise Settings > 統合** に移動し、**Azure DevOps** を選択します。

4. **Connect** ボタンのドロップダウンを開き、**Connect with service principal** を選択します。

<Frame>
  <img src="https://mintcdn.com/cognitionai/d4tSaSvcW_EO3rtt/images/enterprise/ADO-connect-service-principal.png?fit=max&auto=format&n=d4tSaSvcW_EO3rtt&q=85&s=6368b81bb8fc22f2f0425ad8eb809d17" alt="サービス プリンシパルで接続" width="1466" height="676" data-path="images/enterprise/ADO-connect-service-principal.png" />
</Frame>

5. Devin にテナントへのアクセス許可を付与するため、Microsoft にリダイレクトされます。承認すると、Devin の Azure DevOps 統合ページに戻り、**Add organization with service principal** セクションが表示されます。
   * 承認すると、Microsoft Entra テナントにサービス プリンシパルが作成されます
   * この手順で要求されるのは `User.Read` のみで、リポジトリへのアクセスは付与されません

6. Azure DevOps で、**Organization Settings > Users** に移動します。
   * **Add Users** をクリックし、サービス プリンシパル (`Cognition Azure DevOps Service Principal`) を追加します
   * アクセス レベルには **Basic** を選択します (Stakeholder では不十分で、API には Basic が必要です)
   * Devin にアクセスを許可したいすべてのプロジェクトに追加します
   * 関連する Azure DevOps グループ (通常は Project Contributors) にサービス プリンシパルを割り当てます

7. Devin に戻り、Azure DevOps 統合ページの **Add organization with service principal** セクションで、前の手順で使用した Azure DevOps の組織名を入力し、**Add** をクリックします。

8. Devin で Azure DevOps 統合の **Git 権限** を選択し、サブ組織を選んで、グループ レベルまたはリポジトリ レベルで権限を付与します。

<Frame>
  <img src="https://mintcdn.com/cognitionai/IUVOuadgM9g1fi9k/images/enterprise/ADO-git-permissions.png?fit=max&auto=format&n=IUVOuadgM9g1fi9k&q=85&s=765a3e9cdbc8da18001b0cc268e72e64" alt="Azure DevOps Git 権限" width="2414" height="630" data-path="images/enterprise/ADO-git-permissions.png" />
</Frame>

9. 権限が付与された各組織について、**Devin's Settings > Devin's Machine** に移動し、**+ Repository** をクリックして、リポジトリを連携します。

<div id="what-devin-can-access">
  ## Devin がアクセスできる範囲
</div>

Devin の Azure DevOps 統合でアクセスできるのは、**Git 操作のみ**です。

| 機能           | 説明                         |
| ------------ | -------------------------- |
| リポジトリを一覧表示   | 利用可能なリポジトリとそのメタデータを閲覧する    |
| ブランチを読み取る    | ブランチ情報とコミット履歴にアクセスする       |
| プルリクエストを作成する | コード変更のための新しい PR を作成する      |
| プルリクエストを閲覧する | PR のイベント、コメント、ステータスにアクセスする |
| コードをプッシュする   | 新しいブランチとコミットをリポジトリにプッシュする  |

Devin は、work items、pipelines、builds、test plans、artifacts、wiki、service connections には**アクセスできません**。

<Note>
  今後、組織で Devin に Azure DevOps の追加領域への対応が必要になった場合は、要件についてご相談いただくため、[enterprise@cognition.ai](mailto:enterprise@cognition.ai) までご連絡ください。
</Note>

<div id="security-considerations">
  ## セキュリティ上の考慮事項
</div>

* **最小限の Entra 権限** — 要求されるのは `User.Read` のみです。ディレクトリ全体の読み取りアクセス、グループメンバーシップの参照、管理者権限は含まれません。
* **明示的な認可** — Entra で承認されただけでは、Azure DevOps へのアクセス権は付与されません。すべてのリポジトリへのアクセスは、Azure DevOps 管理者が明示的に割り当てる必要があります。
* **暗号化された認証情報** — すべてのトークンは暗号化され、安全に保存されます。
* **スコープを限定したアクセス** — Devin の Enterprise UI から、権限を特定のプロジェクト、リポジトリ、操作に限定できます。
* **監査性** — アクティビティは Entra のサインインログと Azure DevOps の監査ログに記録されます。
* **ブランチポリシーを遵守** — Devin の PR は、ほかのコントリビューターと同様に、同じブランチポリシーとレビュー要件の対象となります。

<div id="best-practices">
  ## ベストプラクティス
</div>

* **リポジトリレベルの権限を利用する** — Devin には組織全体ではなく、必要な特定のリポジトリとプロジェクトにのみアクセス権を付与してください。
* **ブランチポリシーを有効にする** — Azure DevOps でブランチポリシーを設定し、すべての変更がマージされる前に適切なレビュープロセスを経るようにします。
* **監査ログを確認する** — サービス プリンシパルのアクティビティについて、Azure DevOps の監査ログと Entra のサインイン ログを定期的に確認してください。

<div id="troubleshooting">
  ## トラブルシューティング
</div>

**管理者による同意に失敗する場合:**

* 承認を行うユーザーに、Entra テナント内のアプリケーションに対して管理者の同意を付与する権限があることを確認してください
* テナントでアプリケーションへの同意が制限されている場合は、Global Administrator または Cloud Application Administrator による同意の付与が必要になることがあります

**Azure DevOps でサービス プリンシパルが表示されない場合:**

* Entra ポータルの **Enterprise Applications** で、管理者による同意が正常に完了していることを確認してください (`Cognition Azure DevOps Service Principal` を探してください)
* サービス プリンシパルが **Organization Settings > Users** から Azure DevOps 組織に明示的に追加されていることを確認してください

**Conditional Access / MFA によってアクセスがブロックされる場合:**

* サービス プリンシパルが MFA を強制する Conditional Access ポリシーの対象になっている場合、トークンの更新は通知なく失敗します。Devin アプリケーションに対して、サービス プリンシパルを除外する Conditional Access の例外を作成してください。

**Devin が自分のリポジトリを参照できない場合:**

* サービス プリンシパルが **Organization Settings > Users** から Azure DevOps 組織に追加されていることを確認してください
* アクセス レベルが **Basic** に設定されていることを確認してください (API アクセスには Stakeholder では不十分です)
* Devin の Enterprise Settings でリポジトリ権限が付与されていることを確認してください
* リポジトリが Devin's Machine に追加されていることを確認してください

**PR の作成に失敗する場合:**

* サービス プリンシパルに対象リポジトリの Contributor 権限があることを確認してください
* ブランチ ポリシーによって PR の作成がブロックされていないことを確認してください
* 対象ブランチが存在し、アクセス可能であることを確認してください

<div id="network-setup">
  ## ネットワーク設定
</div>

Azure DevOps インスタンスで IP フィルタリングを有効にしている場合は、Devin の IP アドレスを許可リストに追加する必要があります。

最新の一覧については、[IP アドレス許可リストのドキュメント](/ja/admin/common-issues#ip-whitelisting)を参照してください。
