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

# Microsoft Azure DevOps

> Microsoft Entra ID の OAuth を使用して Microsoft Azure DevOps を Iru Compliance に接続し、プロジェクト設定、リポジトリ、ブランチポリシー、プルリクエスト、パイプライン、権限、組織の監査アクティビティを収集します。

### Microsoft Azure DevOps について

Iru は Azure DevOps REST API から、**プロジェクト**、**リポジトリ**、**ブランチポリシー**、**プルリクエスト**、**ビルドパイプラインとリリースパイプライン**、**ユーザーとグループ**、**サービス接続**、**監査ログイベント** を読み取ります。認証には **Microsoft Entra ID** を介した委任された **OAuth 2.0** を使用し、他の Microsoft Azure ソースと同じ **Launch OAuth Authentication** ウィザードを使用します。職場アカウントでサインインします。Iru が個人用アクセストークンを要求することはありません。収集は、そのアカウントがすでに参照できる組織とプロジェクトに限定されます。パイプラインの **変数名** は収集されますが、**シークレット値は収集されません**。

### 仕組み

```http theme={null}
OAuth 2.0 authorization code flow (Microsoft Entra ID)
```

Iru は Azure DevOps に対して Microsoft の OAuth 2.0 認可コードフローを使用します。ポップアップでサインインして同意すると、Iru は有効期間の短いアクセストークンを受け取り、自動的に更新します。要求されるスコープは Azure DevOps の権限モデルに従います（`vso.code`、`vso.build`、`vso.release`、`vso.graph`、`vso.audit_log` などの読み取りアクセス）。個人用アクセストークンを作成したり貼り付けたりしないでください。ウィザードでは受け付けられません。

| 項目 | 値 |
| - | - |
| **カテゴリ** | 開発者ツール |
| **認証** | OAuth 2.0（Microsoft Entra ID） |

公式リファレンス: [REST API の概要](https://learn.microsoft.com/en-us/rest/api/azure/devops/)、[OAuth 2.0 を使用した REST API へのアクセスの承認](https://learn.microsoft.com/en-us/azure/devops/integrate/get-started/authentication/oauth)。

### 前提条件

* Iru に読み取らせる Azure DevOps 組織（`https://dev.azure.com/contoso` の `contoso`）にサインインできる **Microsoft Entra ID** アカウント。
* Iru に読み取らせるすべてのプロジェクトの可視性。OAuth は委任されるため、Iru はそのアカウントのプロジェクトアクセス権を継承します。プロジェクトを参照できないアカウントでは、そのプロジェクトについて何も返されません。
* Microsoft の同意画面を開けるよう、Iru サイトに対してブラウザの **ポップアップ** が許可されていること。プロジェクトの対象範囲を決定してください。ブランチポリシーが対象範囲外の場合、Iru はコードレビューや承認のコントロールを検証できません。

### Microsoft Azure DevOps を Iru に接続する

<Tabs>
  <Tab title="Azure DevOps">
    <Note>
      Compliance でソースを接続する前に、このタブの手順を完了してください。
    </Note>

    <Steps>
      <Step title="Azure DevOps にサインインする">
        Iru ウィザードで使用する **Microsoft Entra ID** アカウント（Iru に読み取らせるのと同じテナントと組織）で `https://dev.azure.com/{your-organization}` にサインインします。
      </Step>

      <Step title="プロジェクトへのアクセス権を確認する">
        対象範囲内のすべてのプロジェクトを開けることを確認します。Iru は、このアカウントがすでにアクセスできるものしか収集できません。
      </Step>

      <Step title="ブラウザでポップアップを許可する">
        コネクタウィザードから Microsoft の同意画面を開けるよう、Iru のホスト名に対して **ポップアップ** を許可します。
      </Step>

      <Step title="マルチテナントの注意点を確認する">
        会社で複数の Microsoft Entra ID テナントを使用している場合は、同じブラウザプロファイルで個人用 Microsoft アカウントからサインアウトするか、プライベートウィンドウを使用して、OAuth ポップアップで正しい職場アカウントが選択されるようにします。
      </Step>

      <Step title="個人用アクセストークンは作成しない">
        Iru は OAuth 2.0 で認証します。ウィザードに PAT を貼り付けないでください。
      </Step>
    </Steps>

    <Note>
      [**Iru Compliance**](#iru-compliance) タブに進んでください。
    </Note>
  </Tab>

  <Tab title="Iru Compliance">
    <Note>
      先に [**Azure DevOps**](#azure-devops) タブの手順を完了してください。
    </Note>

    <Steps>
      <Step title="ソースを開く">
        Iru Compliance の左側のナビゲーションバーで **コンプライアンス** を展開し、**ソース** を選択します。

        <Frame>
          <img src="https://mintcdn.com/iru/tI0HDLDwHj8r9Ile/assets/media/images/iru-navigation-compliance-sources.png?fit=max&auto=format&n=tI0HDLDwHj8r9Ile&q=85&s=87dcef15fc17d2fb9a6e53f454e41710" alt="左側のナビゲーション: Compliance を展開し、Sources を選択した状態" width="410" height="1024" data-path="assets/media/images/iru-navigation-compliance-sources.png" />
        </Frame>
      </Step>

      <Step title="Microsoft Azure DevOps をオンにする">
        **Microsoft Azure DevOps** を探します（**カテゴリ** または **名前または説明で検索** を使用します）。そのカードで **トグル** をオンにします。コネクタウィザード用のブラウザタブまたはウィンドウが開く場合があります。
      </Step>

      <Step title="Launch OAuth Authentication を選択する">
        **Launch OAuth Authentication** を選択します。ウィザードに **Perform OAuth Authentication** と表示されます。
      </Step>

      <Step title="サインインして同意する">
        Microsoft のウィンドウが開いたら、Azure DevOps で確認したのと同じ職場アカウントでサインインし、同意画面で **Accept** を選択します。
      </Step>

      <Step title="接続を完了する">
        OAuth ウィンドウが閉じて Iru が交換を完了すると、ウィザードに **接続が構成されました** と表示されます。ウィザードで **組織** 名も求められた場合は、名前のみを入力します（例: `contoso`。完全な URL ではありません）。
      </Step>

      <Step title="ソースが有効であることを確認する">
        **Iru が外部サービスへのアクセスをリクエストしています** のブラウザタブを閉じてから **コンプライアンス** → **ソース** に戻り、**Microsoft Azure DevOps** カードが **有効** になっていることを確認します。
      </Step>
    </Steps>
  </Tab>
</Tabs>

### トラブルシューティング

<AccordionGroup>
  <Accordion title="ソースをオンにしても何も開かない">
    Iru サイトの **ポップアップブロッカー** の設定を確認して、もう一度お試しください。
  </Accordion>

  <Accordion title="認証が失敗する、または Microsoft のウィンドウが表示されない">
    **ポップアップブロッカー** の設定を確認してから、正しい Microsoft Entra ID テナントの職場アカウントでサインインしてください。
  </Accordion>

  <Accordion title="リポジトリは表示されるが、ブランチポリシー、プルリクエスト、パイプラインが表示されない">
    サインインしたアカウントに、それらのオブジェクトへの読み取りアクセス権がありません。対象範囲内のすべてのプロジェクトを参照できるアカウントでサインインするか、管理者にそのアクセス権を付与してもらってから再接続してください。
  </Accordion>

  <Accordion title="プロジェクトがまったく表示されない">
    OAuth を完了したアカウントがそのプロジェクトを参照できません。対象範囲内のすべてのプロジェクトにアクセスできるアカウントで再接続してください。
  </Accordion>

  <Accordion title="一定期間アクティビティがないとカードに Broken と表示される">
    接続がアクティブな間、アクセストークンは更新されます。更新が中断された場合は、ソースをオフにしてからオンにし、OAuth を再度完了してください。これは PAT の有効期限切れではありません。Iru はこのソースで個人用アクセストークンを使用しません。
  </Accordion>
</AccordionGroup>

### 関連記事

<CardGroup cols={2}>
  <Card title="Sources の管理" icon="plug" href="/ja/compliance/sources-management">
    すべての Compliance ソースを参照、管理します。
  </Card>

  <Card title="Compliance を使い始める" icon="rocket" href="/ja/compliance/getting-started-with-compliance">
    フレームワーク、アクション、**アーティファクト**。
  </Card>

  <Card title="Iru の概要" icon="layer-group" href="/ja/iru/platform-overview/iru-overview">
    Endpoint、Compliance、Identity がどのように連携するか。
  </Card>

  <Card title="Artifacts の管理" icon="folder-open" href="/ja/compliance/artifacts-management">
    ソースやアクションから得たエビデンスをアップロード、確認、整理します。
  </Card>
</CardGroup>
