Skip to main content

概要

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 > Connections > Azure DevOps で行います。

前提条件

Azure DevOps 統合を設定する前に、以下を確認してください。
  1. 接続を管理する権限を持つ Enterprise の Devin アカウント
  2. アプリケーションに管理者の同意を付与できる Microsoft Entra 管理者
  3. ユーザーを追加し、権限を割り当てられる Azure DevOps 組織管理者

統合の設定

  1. app.devin.ai で Devin アカウントにサインインします。
  2. 別のブラウザまたはシークレット ウィンドウで、Azure DevOps にサインインします (手順 6 で必要です) 。
  3. Enterprise の Devin アカウントで、Settings > Connections > Azure DevOps に移動します。
  4. Connect ボタンのドロップダウンを開き、Connect with service principal を選択します。
サービス プリンシパルで接続
  1. Devin にテナントへのアクセス許可を付与するため、Microsoft にリダイレクトされます。承認すると、Devin の Azure DevOps 接続ページに戻り、Add organization with service principal セクションが表示されます。
    • 承認すると、Microsoft Entra テナントにサービス プリンシパルが作成されます
    • この手順で要求されるのは User.Read のみで、リポジトリへのアクセスは付与されません
  2. Azure DevOps で、Organization Settings > Users に移動します。
    • Add Users をクリックし、サービス プリンシパル (Cognition Azure DevOps Service Principal) を追加します
    • アクセス レベルには Basic を選択します (Stakeholder では不十分で、API には Basic が必要です)
    • Devin にアクセスを許可したいすべてのプロジェクトに追加します
    • 関連する Azure DevOps グループ (通常は Project Contributors) にサービス プリンシパルを割り当てます
  3. Devin に戻り、Azure DevOps 接続ページの Add organization with service principal セクションで、前の手順で使用した Azure DevOps の組織名を入力し、Add をクリックします。
  4. 新しい接続をクリックして詳細パネルを開きます。Repositories タブには、この接続を通じて利用できるリポジトリが一覧表示されます。Manage access タブでは、この接続のリポジトリ権限を管理できるユーザーまたはロールを指定できます。
  5. 組織にリポジトリへのアクセスを付与します。Settings > Repositories に移動して組織を選択し、Manage permissions をクリックして、組織/プロジェクト レベルまたはリポジトリ レベルで権限を付与します。詳しくは Repository Permissions を参照してください。
  6. 権限が付与された各組織で、Settings > Environment > Blueprints に移動し、Repositories セクションの Add をクリックして、Devin の環境に追加するリポジトリを選択します。詳しくは 宣言的な環境構成 を参照してください。

Devin がアクセスできる範囲

Devin の Azure DevOps 統合でアクセスできるのは、Git 操作のみです。 Devin は、work items、pipelines、builds、test plans、artifacts、wiki、service connections にはアクセスできません。
今後、組織で Devin に Azure DevOps の追加領域への対応が必要になった場合は、要件についてご相談いただくため、enterprise@cognition.ai までご連絡ください。

セキュリティ上の考慮事項

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

ベストプラクティス

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

トラブルシューティング

管理者による同意に失敗する場合:
  • 承認を行うユーザーに、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 では不十分です)
  • Settings > Connections > Azure DevOps で接続を開き、Repositories タブにリポジトリが表示されていることを確認してください
  • Settings > Repositories で、組織にリポジトリ権限が付与されていることを確認してください
  • Settings > Environment > Blueprints で、組織の環境にリポジトリが追加されていることを確認してください
プルリクエストの作成に失敗する場合:
  • サービス プリンシパルに対象リポジトリの Contributor 権限があることを確認してください
  • ブランチ ポリシーによって PR の作成がブロックされていないことを確認してください
  • 対象ブランチが存在し、アクセス可能であることを確認してください

ネットワーク設定

Azure DevOps インスタンスで IP フィルタリングを有効にしている場合は、Devin の IP アドレスを許可リストに追加する必要があります。 最新の一覧については、IP アドレス許可リストのドキュメントを参照してください。