> ## 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.

# Jenkins

> ユーザー名と API トークンによる HTTP Basic 認証を使用して Jenkins を Iru Compliance に接続し、ジョブ構成、ビルド履歴、プラグインのエビデンスを収集します。

### Jenkins について

Iru は **HTTP Basic** 認証を使用して Jenkins のリモート API を呼び出します。**ユーザー名** と、**パスワード** としての **API トークン**（実際のパスワードよりも推奨）を使用します。ウィザードでは、まず **`jenkins_host`**（ホスト名と任意のコンテキストパスのみ）を保存してから、認証情報を入力します。

### 仕組み

```http theme={null}
Authorization: Basic base64(username:api_token)
```

| 項目 | 値 |
| - | - |
| **カテゴリ** | 開発者ツール |
| **認証** | Basic（ユーザー + API トークン） |

公式リファレンス: [スクリプトクライアント](https://www.jenkins.io/doc/book/system-administration/authenticating-scripted-clients/)、[API トークン](https://www.jenkins.io/blog/2018/07/02/new-api-token-system/)、[リモート API](https://www.jenkins.io/doc/book/using/remote-access-api/)。

### 前提条件

* **Iru のネットワーク** から Jenkins に到達できること（必要に応じてファイアウォール / VPN / 許可リスト）。
* 監査対象の範囲に対して **Overall/Read** とジョブレベルの **読み取り** アクセス権を持つユーザー。
* コントローラーには **HTTPS** を強く推奨します。

### Jenkins を Iru に接続する

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

    <Steps>
      <Step title="Jenkins にサインインする">
        Jenkins コントローラーの URL を開き、少なくとも **Overall/Read** と、コンプライアンスの対象範囲に必要なジョブの読み取りアクセス権を持つユーザーでサインインします。
      </Step>

      <Step title="ユーザープロフィールを開く">
        Jenkins のテーマに応じて、右上の **ユーザー名**（または **People** リンクから自分のユーザー）を選択します。
      </Step>

      <Step title="構成を開く">
        個人設定を編集できるよう、ユーザーアカウントの **構成** を選択します。
      </Step>

      <Step title="API Token セクションを開く">
        **API Token** セクション（Jenkins のバージョンによっては **API Token** / **Add new Token**）までスクロールします。表示されない場合は、管理者がトークンの作成を制限している可能性があります。
      </Step>

      <Step title="新しいトークンを作成する">
        **Add new Token** を選択し、**Iru Compliance** などの名前を入力して、**生成**（または **作成**）を選択します。Jenkins にトークンが表示されたら、**一度だけ** コピーします。

        任意で **有効期限** が適用される場合があります。Jenkins は古くなったトークンを UI に表示するため、失効する前にローテーションできます。
      </Step>
    </Steps>

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

  <Tab title="Iru Compliance">
    <Note>
      先に [**Jenkins**](#jenkins) タブの手順を完了してください。
    </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="Jenkins をオンにする">
        **Jenkins** を探します（**カテゴリ** を **Developer tools** に設定するか、**名前または説明で検索** を使用します）。そのカードで **トグル** をオンにします。コネクタウィザード用のブラウザタブまたはウィンドウが開く場合があります。
      </Step>

      <Step title="Jenkins のホストを入力する">
        **`jenkins_host`** に **`jenkins.example.com`** または **`jenkins.example.com/jenkins`** を入力します（`https://` は **含めません**）。サーバー変数を確認します。
      </Step>

      <Step title="Jenkins の認証情報を入力する">
        **ユーザー名** を入力し、パスワードフィールドに **API トークン** を貼り付けます。
      </Step>

      <Step title="接続を完了する">
        **資格情報を送信** を選択します。接続に成功すると、ウィザードに **接続が構成されました** と表示されます。
      </Step>

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

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

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

  <Accordion title="サーバー変数が失敗する">
    ソースをオフにしてから再度オンにし、新しいウィザードセッションを開始してください。
  </Accordion>

  <Accordion title="401 / 403">
    ユーザー/トークンを修正してください。ユーザーには対象ジョブに対する **読み取り** 権限が必要です。
  </Accordion>

  <Accordion title="到達できない">
    ルーティング、TLS、VPN、または Iru の送信元に対する許可リストを確認してください。
  </Accordion>

  <Accordion title="ホスト文字列が間違っている">
    Jenkins がドメインのルートにない場合は、コンテキストパスを含めてください。
  </Accordion>
</AccordionGroup>

### 考慮事項

<CardGroup cols={2}>
  <Card title="必要なフォルダにスコープされた読み取り専用のサービスユーザーを使用…" icon="circle-info">
    必要なフォルダやビューにスコープされた **読み取り専用** のサービスユーザーを使用してください。
  </Card>
</CardGroup>

### 関連記事

<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>
