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

# Drupal

> 読み取り専用のサービスアカウントと HTTP Basic 認証を使用して JSON:API 経由で Drupal を Iru Compliance に接続し、サイト、ユーザー、ロールの構成に関するエビデンスを収集します。

### Drupal について

Iru は **Drupal コアの JSON:API**（`/jsonapi`）を使用して、**コンテンツタイプ**、**ノード**、**ユーザー**、**ロール**、および関連するメタデータを取得します。**Drupal 8.7 以降** には JSON:API がコアに含まれています。**Extend** で有効にしてください。認証には **HTTP Basic**（**ユーザー名** + **パスワード**）を使用します。認証情報が平文で送信されないよう、サイトは **HTTPS** で提供してください。

### 仕組み

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

| 項目 | 値 |
| - | - |
| **カテゴリ** | 開発者ツール |
| **認証** | Basic（Drupal ユーザー） |

公式リファレンス: [JSON:API モジュール](https://www.drupal.org/docs/core-modules-and-themes/core-modules/jsonapi-module)、[権限モデル](https://www.drupal.org/docs/administering-a-drupal-site/managing-users)。

### 前提条件

* **JSON:API** が有効になっており、**`https://YOUR_HOST/jsonapi`** がリソース検出用の JSON を返すこと。
* 対象となるバンドルに対して **GET** を実行できるロールを持つ Drupal ユーザー。

### Drupal を Iru に接続する

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

    <Steps>
      <Step title="管理者としてサインインする">
        モジュールのインストールと構成の変更ができるユーザー（**Administrator** または同等の権限）で Drupal サイトにサインインします。
      </Step>

      <Step title="Extend（モジュール）を開く">
        **管理** → **Extend**（管理テーマによっては **Administration** → **Extend**）に移動します。
      </Step>

      <Step title="JSON:API を有効にする">
        **JSON:API** モジュールを見つけます。モジュールを有効にし、Drupal から求められた構成のインポートやキャッシュの再構築を実行します。
      </Step>

      <Step title="権限を確認する">
        Iru が使用する連携用のユーザーまたはロールが、コントロールに必要な JSON:API リソースに対して **GET** を実行できることを確認します（**Anonymous** では範囲が広すぎることが多いため、最小限の読み取り権限を持つ専用のサービスアカウントを推奨します）。
      </Step>

      <Step title="JSON:API エンドポイントを確認する">
        ブラウザまたは `curl` で、サイトの検出ドキュメント（例: **`https://YOUR_HOST/jsonapi`**）をリクエストし、Drupal が JSON を返すこと（**403** や **404** ではないこと）を確認します。
      </Step>
    </Steps>

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

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

      <Step title="ホスト名を入力する">
        **ホスト名** のみを入力します（例: **`cms.example.com`**）。ウィザードにプレビューが表示された場合は、変数を確認します。
      </Step>

      <Step title="Drupal の認証情報を入力する">
        連携用アカウントの **ユーザー名** と **パスワード** を入力します。
      </Step>

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

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

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

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

  <Accordion title="/jsonapi で 404 が返される">
    JSON:API モジュールを有効にしてください。
  </Accordion>

  <Accordion title="リソースで 403 が返される">
    関連するエンティティタイプに対する **view** 権限を付与してください。
  </Accordion>

  <Accordion title="401">
    パスワードを修正してください。Drupal では大文字と小文字が区別されます。
  </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>
