# Salesforce ITSM

<figure><img src="https://762006384-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MJXOXEifAmpyvNVL1to%2Fuploads%2FRGG1pPIkk5VYmbM6aGgp%2Fkeeper%2Bsalesforce.png?alt=media&#x26;token=a5e75bc9-da97-48e2-8c0a-f2106148e8f9" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
本連携は近日公開予定です。公開は**2026年2月末**を予定しています。
{% endhint %}

## 概要

Keeper SecurityのアラートをService Cloudのケースに自動変換し、インシデント管理を効率化するSalesforceマネージドパッケージです。

Keeper環境でセキュリティイベントが発生すると (ログイン失敗、ボルト転送、BreachWatchアラートなど)、パッケージがSalesforceにケースを自動作成し、IT/セキュリティチームが調査・対応できるようにします。

### 主な機能

* **セットアップウィザード** - 進捗表示と自動検出付きの手順ガイド
* **ケースの自動作成** - KeeperのセキュリティアラートからSalesforceのケースを自動生成
* **柔軟なフィールドマッピング** - アラートデータを任意のケース項目 (標準/カスタム) に対応付け
* **優先度ルール** - イベント種別やカテゴリに基づく優先度の設定
* **安全な認証** - トークンベースのWebhook認証
* **管理者向け設定UI** - 管理者向けのわかりやすい設定画面

***

## インストール

### 前提条件

インストール前に次を満たしていることを確認してください。

* Salesforce Enterprise、Performance、Unlimited、Developer Editionのいずれか
* システム管理者プロファイルまたは同等の権限
* 有効なKeeper Securityエンタープライズ契約

### パッケージのインストール

1. AppExchange一覧の**Keeper ITSM**を見つけます。
2. **\[Get It Now]** をクリックします。
3. Salesforce組織を選択します (本番またはSandbox)。
4. **\[Install for Admins Only]** を選びます (推奨)。
5. **\[インストール]** をクリックし、完了を待値ます。

{% hint style="info" %}
インストールには通常2〜5分かかります。完了するとメールで通知されます。
{% endhint %}

***

## インストールされる内容

パッケージは組織に次のコンポーネントを自動作成します。

### インストール時に自動作成されるコンポーネント

<table><thead><tr><th width="226.3046875">コンポーネント</th><th>説明</th></tr></thead><tbody><tr><td><strong>Case上のカスタム項目</strong></td><td>アラートデータ用のKeeper専用項目が8件</td></tr><tr><td><strong>カスタムオブジェクト</strong></td><td>設定用 <code>Keeper_Field_Mapping__c</code>、<code>Keeper_Priority_Mapping__c</code></td></tr><tr><td><strong>カスタム設定</strong></td><td>トークン安全保管用 <code>Keeper_Webhook_Settings__c</code></td></tr><tr><td><strong>権限セット</strong></td><td>Keeper ITSM Admin、Keeper ITSM User、Keeper Webhook User</td></tr><tr><td><strong>Apexクラス</strong></td><td>Webhookコントローラ、インシデントサービス、マッピング用コントローラ</td></tr><tr><td><strong>Auraコンポーネント</strong></td><td>設定UI (<code>KeeperConfigApp</code>)</td></tr><tr><td><strong>カスタムタブ</strong></td><td>Keeper ITSM Config</td></tr><tr><td><strong>Lightningアプリ</strong></td><td>Keeper Security ITSM</td></tr><tr><td><strong>ページレイアウト</strong></td><td>Keeper項目を事前配置したCaseレイアウト</td></tr><tr><td><strong>サイト定義</strong></td><td>外部Webhook受信用KeeperWebhookサイト</td></tr><tr><td><strong>サイトゲストプロファイル</strong></td><td>Webhook処理に必要な最小権限で構成</td></tr></tbody></table>

### Case上のカスタム項目

<table><thead><tr><th width="242.95703125">項目ラベル</th><th width="289.4765625">API名</th><th>型</th></tr></thead><tbody><tr><td>Keeper Alert Name</td><td><code>Keeper_Alert_Name__c</code></td><td>Text (255)</td></tr><tr><td>Keeper Event Type</td><td><code>Keeper_Event_Type__c</code></td><td>Text (255)</td></tr><tr><td>Keeper Username</td><td><code>Keeper_Username__c</code></td><td>Text (255)</td></tr><tr><td>Keeper Alert Timestamp</td><td><code>Keeper_Alert_Timestamp__c</code></td><td>Date/Time</td></tr><tr><td>Keeper IP Address</td><td><code>Keeper_IP_Address__c</code></td><td>Text (50)</td></tr><tr><td>Keeper Category</td><td><code>Keeper_Category__c</code></td><td>Text (100)</td></tr><tr><td>Keeper Alert Description</td><td><code>Keeper_Alert_Description__c</code></td><td>Long Text Area</td></tr><tr><td>Keeper Client Version</td><td><code>Keeper_Client_Version__c</code></td><td>Text (100)</td></tr></tbody></table>

### 権限セット

<table><thead><tr><th width="249.94140625">権限セット</th><th>用途</th></tr></thead><tbody><tr><td><strong>Keeper ITSM Admin</strong></td><td>設定UI、フィールドマッピング、優先度マッピングへのフルアクセス</td></tr><tr><td><strong>Keeper ITSM User</strong></td><td>KeeperのCase項目への参照アクセス</td></tr><tr><td><strong>Keeper Webhook User</strong></td><td>サイトゲストユーザーによるWebhook処理で使用</td></tr></tbody></table>

***

## インストール後のセットアップ

パッケージインストール後は、**セットアップウィザード**で構成するか、以下の手動手順に従ってください。

{% hint style="success" %}
**推奨:** Keeper ITSM Configページの **\[Guided Setup]** タブを使います。手順ごとの案内と進捗の自動追記があり、完了済みのステップを検出します。
{% endhint %}

### ガイド付きセットアップの利用 (推奨)

1. **\[アプリケーションランチャー]** (9点グリッドアイコン) を開きます。
2. **\[Keeper ITSM Config]** を検索して選択します。
3. 既定で **\[Guided Setup]** タブが開き、セットアップ進捗が表示されます。
4. 番号付きの手順に従います (完了した手順には緑のチェックが表示される)。
5. 各手順のアクションボタンで作業を完了します。

ガイド付きセットアップでは次を自動検出します。

* Salesforceサイトが有効かどうか
* 認証トークンが生成済みかどうか
* フィールドマッピングが何件構成されているか
* 優先度ルールが何件構成されているか

#### セットアップ手順

<table><thead><tr><th width="80.76171875">手順</th><th width="207.66796875">名前</th><th width="295.69921875">説明</th><th>自動検出</th></tr></thead><tbody><tr><td>1</td><td>権限セットの割り当て</td><td>管理者以外に設定画面へのアクセスを付与する (任意)</td><td>はい</td></tr><tr><td>2</td><td>Salesforceサイトの有効化</td><td>Webhookエンドポイントに到達できるようにする</td><td>はい</td></tr><tr><td>3</td><td>認証トークンの生成</td><td>Webhook認証用の安全なトークンを作成する</td><td>はい</td></tr><tr><td>4</td><td>フィールドマッピングの設定</td><td>Keeperのアラート項目をCase項目に対応付ける (推奨)</td><td>はい</td></tr><tr><td>5</td><td>優先度ルールの設定</td><td>イベント種別に応じてCaseの優先度を設定する (推奨)</td><td>はい</td></tr><tr><td>6</td><td>Keeper管理コンソールの設定</td><td>KeeperにWebhook URLを登録する (外部の手順)</td><td>いいえ</td></tr><tr><td>7</td><td>連携のテスト</td><td>テスト用ケースを作成して連携を確認する</td><td>手動</td></tr></tbody></table>

#### 進捗の表示

* 進行リングに、コア手順 (手順2〜5) の完了率が表示されます。
* 完了した手順には緑のチェックが付きます。
* 未完了の手順には番号アイコンが表示されます。
* 任意の手順には**Optional**バッジが付きます。

#### ガイド付きセットアップからのテスト

手順7の **\[Run Test]** をクリックすると、ウィザードから直接テスト用のケースを作成できます。次を確認できます。

* Salesforceサイトが正しく構成されていること
* フィールドマッピングが動作していること
* 優先度ルールが適用されていること

{% hint style="info" %}
テストでは、**\[Origin]** が 「Keeper Security」 に設定された実際のケースが作成されます。後から表示・削除できます。
{% endhint %}

<figure><img src="https://762006384-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MJXOXEifAmpyvNVL1to%2Fuploads%2Fr4Lg1iY84Ibyx4BLeNKe%2FScreenshot%202026-02-02%20at%204.30.50%E2%80%AFPM.png?alt=media&#x26;token=4cd18554-f626-4cc0-9299-a69df6c3c8c0" alt=""><figcaption><p>進行リングが100%完了を表示</p></figcaption></figure>

***

### 手動セットアップ手順

手動で構成する場合は次の手順に従います。

#### 手順1: 管理者への権限セット割り当て (任意)

{% hint style="info" %}
**\[システム管理者]** は設定ページに既にフルアクセスできます。管理者以外にKeeper ITSMの設定を任せる場合のみ必要です。
{% endhint %}

連携の設定を行うユーザーに **\[Keeper ITSM Admin]** 権限セットを割り当てます。

1. **\[設定]** → **\[権限セット]** を開きます。
2. **\[Keeper ITSM Admin]** をクリックします。
3. **\[割り当ての管理]** → **\[割り当ての追加]** の順にクリックします。
4. 対象の管理者ユーザーを選び**割り当て**ます。

<div><figure><img src="https://762006384-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MJXOXEifAmpyvNVL1to%2Fuploads%2F5NRDN7afzGToHHJyBjl2%2FScreenshot%202026-02-02%20at%204.36.16%E2%80%AFPM.png?alt=media&#x26;token=c4c7891f-4ecf-4de9-ae6b-b596d5f39f0a" alt=""><figcaption></figcaption></figure> <figure><img src="https://762006384-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MJXOXEifAmpyvNVL1to%2Fuploads%2FlJUMsLkHe1O9LPtrnMlZ%2FScreenshot%202026-02-02%20at%204.36.30%E2%80%AFPM.png?alt=media&#x26;token=2187f510-9952-450d-8c65-cacdc9c45849" alt=""><figcaption></figcaption></figure> <figure><img src="https://762006384-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MJXOXEifAmpyvNVL1to%2Fuploads%2Ffr4zToqcprGXC8L6vGFh%2FScreenshot%202026-02-02%20at%204.38.29%E2%80%AFPM.png?alt=media&#x26;token=eb17739d-cb82-4c37-a231-2ce1f1b389f8" alt=""><figcaption></figcaption></figure></div>

#### 手順2: Salesforceサイトの有効化と設定

Webhookエンドポイントには有効なSalesforceサイトが必要です。次のように設定します。

1. **\[設定]** → **\[サイト]** を開きます。
2. **\[KeeperWebhook]** サイトを探します (自動作成されていない場合は作成)。
3. サイトが無効なら **\[有効化]** します。
4. **\[サイトURL]** をメモします (Keeper管理コンソールで必要)。

{% hint style="warning" %}
サイトURLは組織ごとに異なります。通常は次の形式です: `https://[your-domain].my.salesforce-sites.com/keeper`
{% endhint %}

**サイトゲストユーザーの権限を確認**

1. **\[設定]** → **\[サイト]** → **\[KeeperWebhook]** → **\[公開アクセス設定]** へ移動します。
2. ゲストユーザープロファイルに次があることを確認します。
   * **Apexクラスへのアクセス**: KeeperWebhookController、KeeperIncidentService、KeeperTokenService
   * **オブジェクト権限**: Caseの作成、`Keeper_Field_Mapping__c` の参照、`Keeper_Priority_Mapping__c`の参照

#### 手順3: 認証トークンの生成

1. **\[アプリケーションランチャー]** (9点グリッドアイコン) を開きます。
2. **\[Keeper ITSM Config]** を検索して選択します。
3. **\[Webhook Setup]** タブで **\[Generate New Token]** をクリックします。
4. **\[Reveal]** でトークンを表示し、**\[Copy]** でコピーします。

<figure><img src="https://762006384-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MJXOXEifAmpyvNVL1to%2Fuploads%2FZdZZ7kMecAidJjIIRWSu%2FScreenshot%202026-02-02%20at%204.43.34%E2%80%AFPM.png?alt=media&#x26;token=f8826a8d-b853-45cd-b8a1-9ec437a5340b" alt=""><figcaption></figcaption></figure>

{% hint style="danger" %}
トークンは安全に保管してください。Keeper管理コンソールの設定に必要です。
{% endhint %}

#### 手順4: Keeper管理コンソールの設定

1. [Keeper管理コンソール](https://keepersecurity.com/console/#login)にログインします。
2. **\[レポートとアラート]** を開きます。
3. **\[アラート]** で **\[アラートを追加]** をクリックし、監視するアラート種別を選択します。
4. **\[受信者を追加]** をクリックします。
5. 受信者の種類として **\[Webhook]** を選択します。
6. トークン付きの完全なURLを入力します。

```
https://[your-site-url]/services/apexrest/keeper/webhook?token=YOUR_TOKEN_HERE
```

7. 設定を保存します。

#### 任意: ページレイアウトの割り当て

パッケージ付属のKeeper項目入りCaseレイアウトを使う場合

1. **\[設定]** → **\[オブジェクトマネージャー]** → **\[ケース]** → **\[ページレイアウト]** へ移動します。
2. **\[ページレイアウトの割り当て]** をクリックします。
3. **\[Case Layout]** (Keeper項目付き) を該当プロファイルに割り当てます。
4. **\[保存]** をクリックします。

{% hint style="info" %}
既存のCaseページレイアウトにKeeperのカスタム項目を手動で追加しても構いません。
{% endhint %}

***

## 設定

**\[アプリケーションランチャー]** から **\[Keeper ITSM Config]** を開きます。タブは **\[Guided Setup]**、**\[Webhook Setup]**、**\[Field Mapping]**、**\[Priority Mapping]** の4つです。

{% hint style="info" %}
設定ページにアクセスするには**Keeper ITSM Admin**権限セット、または**システム管理者**プロファイルが必要です。
{% endhint %}

### **Webhookのセットアップ**

**\[Webhook Setup]**&#x30BF;ブでは、KeeperからSalesforceにアラートを送るために必要なURLと認証トークンを確認できます。

#### Webhook URL

設定ページにWebhook URLが表示されます。Keeper管理コンソールで使うためにコピーします。

**URLの形式:**

```
https://[your-domain].my.salesforce-sites.com/keeper/services/apexrest/keeper/webhook
```

#### 認証トークン

* **\[Reveal]** でトークン全文を表示
* **\[Copy]** でクリップボードにコピー
* **\[Generate New Token]** で新しいトークンを発行

{% hint style="danger" %}
新しいトークンを発行すると、直前のトークンは直ちに無効になります。サービス中断を避けるため、すぐにKeeper管理コンソールのURLを更新してください。
{% endhint %}

#### トークン付きWebhook URL

クエリパラメータとしてトークンを付加します。

```
https://[your-site-url]/services/apexrest/keeper/webhook?token=YOUR_TOKEN_HERE
```

### **Field Mapping (フィールドマッピング)**

**\[Field Mapping]** では、どのKeeperアラートデータをどのSalesforce Case項目に入れるかを制御します。

#### 利用可能なKeeper項目

<table><thead><tr><th width="198.37890625">Keeper項目</th><th width="211.28125">API名</th><th>説明</th></tr></thead><tbody><tr><td>Alert Name</td><td><code>alert_name</code></td><td>発動したアラートルール名</td></tr><tr><td>Audit Event Type</td><td><code>audit_event</code></td><td>イベント種別コード (例: <code>login_failure</code>)</td></tr><tr><td>Username</td><td><code>username</code></td><td>イベントを起こしたユーザー</td></tr><tr><td>Description</td><td><code>description</code></td><td>アラートの説明文</td></tr><tr><td>Timestamp</td><td><code>timestamp</code></td><td>イベント発生時刻 (ISO 8601)</td></tr><tr><td>Remote IP Address</td><td><code>remote_address</code></td><td>リクエスト元IPアドレス</td></tr><tr><td>Category</td><td><code>category</code></td><td>イベントカテゴリ</td></tr><tr><td>Client Version</td><td><code>client_version</code></td><td>Keeperクライアントのバージョン</td></tr></tbody></table>

#### フィールドマッピングの追加

1. **\[Field Mapping]** タブを開きます。
2. ドロップダウンから **\[Keeper Field]** を選択します。
3. ドロップダウンから **\[Salesforce Case Field]** を選択します。
4. **\[Add Mapping]** をクリックします。

<figure><img src="https://762006384-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MJXOXEifAmpyvNVL1to%2Fuploads%2FHjHSZuD6oxK121p5s9V1%2FScreenshot%202026-02-02%20at%204.45.45%E2%80%AFPM.png?alt=media&#x26;token=2a3da9c4-361d-4333-b4f5-78ecebf1c702" alt=""><figcaption></figcaption></figure>

{% hint style="warning" %}
各Salesforce項目には1つのKeeper項目だけを対応付けられます。重複して追加すると既存のマッピングが置き換わります。
{% endhint %}

#### 推奨マッピング

| Keeper項目          | 推奨のCase項目                |
| ----------------- | ------------------------ |
| Alert Name        | Keeper Alert Name        |
| Audit Event Type  | Keeper Event Type        |
| Username          | Keeper Username          |
| Timestamp         | Keeper Alert Timestamp   |
| Remote IP Address | Keeper IP Address        |
| Category          | Keeper Category          |
| Description       | Keeper Alert Description |
| Client Version    | Keeper Client Version    |

#### マッピングの管理

* **\[Toggle Active/Inactive]** - トグルでマッピングの有効/無効を切り替え
* **\[Search]** - 検索ボックスでマッピングを絞り込み
* **\[Delete]** - 削除アイコンでマッピングを削除
* **\[Pagination]** - ページ操作で一覧を移動

#### 既定の動作 (マッピング未設定時)

フィールドマッピングが1件もない場合、パッケージは次の既定を適用します。

<table><thead><tr><th width="194.83984375">項目</th><th>既定値</th></tr></thead><tbody><tr><td>Subject</td><td><code>[Alert Name]: [Event Type]</code></td></tr><tr><td>Description</td><td>アラート詳細をテキスト形式で全文</td></tr><tr><td>Origin</td><td><code>Keeper Security</code></td></tr><tr><td>Status</td><td><code>New</code></td></tr><tr><td>Priority</td><td>Priority Mappingルールで決定 (既定: Low)</td></tr></tbody></table>

### **Priority Mapping (優先マッピング)**

**\[Priority Mapping]** では、セキュリティイベントの種類に応じてCaseの優先度を自動設定します。

#### 優先度の照合の仕組み

Keeperアラートを受信すると、システムは次の順で処理します。

1. 設定したイベントパターンとの **\[完全一致]** を確認します。
2. 一致がなければ **\[部分一致/含む]** を確認します。
3. どれにも一致しなければ既定優先度 **\[Low]** を割り当てます。

#### 優先度ルールの追加

**方法1: カテゴリとイベントの選択**

1. **\[Priority Mapping]** タブを開きます。
2. ドロップダウンから **\[Category]** を選択します。
3. 必要に応じて **\[Event]** を選択します (空欄のままならそのカテゴリの **\[すべて]** のイベントが対象)。
4. **\[Priority]** を選択します。
5. **\[Add Rule]** をクリックします。

{% hint style="info" %}
イベントを空にすると、選択したカテゴリ内のすべてのイベントを一度にマッピングできます。カテゴリ単位で優先度を素早く設定するのに便利です。
{% endhint %}

**方法2: \[Quick Add] ボタン**

**\[Quick Add]** ボタンでよく使うセキュリティルールを追加できます。

<table><thead><tr><th width="234.30078125">ボタン</th><th>作成される内容</th></tr></thead><tbody><tr><td><strong>Security → High</strong></td><td>BreachWatchアラート、ボルト転送、ユーザー削除、2FA失敗、KeeperAIのcritical/highリスク</td></tr><tr><td><strong>Login Failures → High</strong></td><td>ログイン失敗、コンソールログイン失敗、IPブロック、認証失敗</td></tr><tr><td><strong>Role Changes → Medium</strong></td><td>ロールの追加/削除、チーム変更、権限変更、ユーザーロック</td></tr><tr><td><strong>Normal Ops → Low</strong></td><td>通常ログイン、レコード操作、パスワードコピー、エクスポート/インポート</td></tr></tbody></table>

<figure><img src="https://762006384-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MJXOXEifAmpyvNVL1to%2Fuploads%2FZ8g552pMDkJwzakvZKCp%2FScreenshot%202026-02-02%20at%204.45.54%E2%80%AFPM.png?alt=media&#x26;token=ca96cb18-a0e4-42f0-a4e5-af2631a5ff31" alt=""><figcaption></figcaption></figure>

#### イベントカテゴリの参照

パッケージではKeeper Securityのイベントを17カテゴリ、300種類以上サポートします。

イベント種別と説明の一覧については、[レポート作成、アラート、SIEM](https://docs.keeper.io/jp/enterprise-guide-jp/event-reporting#event-descriptions)のページをご参照ください。

{% hint style="info" %}
Salesforce ITSMパッケージには、現行パッケージバージョン時点のKeeperイベントレポートドキュメントのイベント種別がすべて含まれます。
{% endhint %}

#### 推奨する優先度設定

<table><thead><tr><th width="531.2734375">イベント種別の例</th><th>推奨優先度</th></tr></thead><tbody><tr><td>ボルト転送、アカウント削除、2FA失敗、IPブロック</td><td><strong>High</strong></td></tr><tr><td>ログイン失敗、BreachWatch検出、KeeperAIアラート</td><td><strong>High</strong></td></tr><tr><td>ロール変更、権限変更、ユーザーロック</td><td><strong>Medium</strong></td></tr><tr><td>レコード表示、パスワードコピー、通常ログイン</td><td><strong>Low</strong></td></tr></tbody></table>

***

## 連携のテスト

### 方法1: 組み込みテストの利用 (推奨)

最も簡単な確認方法です。

1. **\[Keeper ITSM Config]** → **\[Guided Setup]** タブを開きます。
2. **\[Step 7: Test Integration]** までスクロールします。
3. **\[Run Test]** をクリックします。
4. 成功するとテスト用ケースが作成され、リンクが表示されます。

作成されるケースの内容

* Subject: "Guided Setup Test Alert: test\_event"
* Origin: "Keeper Security"
* 設定済みのフィールドマッピングをすべて適用

### 方法2: cURL/PostmanでテストWebhookを送信

cURLまたはPostmanでテストWebhookを送ります。

```bash
curl -X POST \
  'https://[your-site-url]/services/apexrest/keeper/webhook?token=YOUR_TOKEN' \
  -H 'Content-Type: application/json' \
  -d '{
    "alert_name": "Test Alert",
    "audit_event": "login_failure",
    "username": "test.user@example.com",
    "description": "Test alert from manual trigger",
    "timestamp": "2025-01-30T10:30:00Z",
    "remote_address": "192.168.1.100",
    "category": "Login",
    "client_version": "16.10.0"
  }'
```

<figure><img src="https://762006384-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MJXOXEifAmpyvNVL1to%2Fuploads%2Fz9Cpa5QQsXqnnbE8d7np%2FScreenshot%202026-02-02%20at%204.52.03%E2%80%AFPM.png?alt=media&#x26;token=b3b6d8ae-3eb0-458a-a551-306a7eea03ed" alt=""><figcaption></figcaption></figure>

### 想定される応答

**成功 (HTTP 200):**

```json
{
  "success": true,
  "caseId": "500XXXXXXXXXXXX"
}
```

**認証エラー (HTTP 401):**

```json
{
  "success": false,
  "errorCode": "ERR_001",
  "message": "Unauthorized"
}
```

**不正なペイロード (HTTP 400):**

```json
{
  "success": false,
  "errorCode": "ERR_002",
  "message": "Invalid request format"
}
```

**処理エラー (HTTP 500):**

```json
{
  "success": false,
  "errorCode": "ERR_003",
  "message": "An error occurred processing the request"
}
```

***

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

### ケースが作成されない

<table><thead><tr><th width="216.70703125">事象</th><th>対処</th></tr></thead><tbody><tr><td>Webhook URLが誤り</td><td>URLに <code>/services/apexrest/keeper/webhook</code> が含まれることを確認</td></tr><tr><td>トークンが無効</td><td>新しいトークンを発行し、Keeper管理コンソールを更新</td></tr><tr><td>サイトが無効</td><td><strong>[セットアップ]</strong> → <strong>[サイト]</strong> へ移動してKeeperWebhookサイトを 有効にします</td></tr><tr><td>ゲストユーザーの権限</td><td>サイトゲストプロファイルに必要なApexクラスへのアクセスがあるか確認</td></tr></tbody></table>

### 設定ページでアクセス拒否 (**Access Denied) が発生する**

**原因:** 必要な権限セットがユーザーに付いていない。

**対処:**

1. **\[設定]** → **\[権限セット]** → **\[Keeper ITSM Admin]** へ移動します。
2. **\[割り当ての管理]** → **\[割り当ての追加]** をクリックします。
3. ユーザーを選んで**割り当て**ます。

### ケースに項目データが入らない

<table><thead><tr><th width="206.46875">事象</th><th>対処</th></tr></thead><tbody><tr><td>マッピングが無効</td><td>マッピングのトグルがONか確認</td></tr><tr><td>項目が許可リストにない</td><td>マッピング可能なのはホワイトリストの項目のみ (<code>KeeperIncidentService</code> をご参照ください)</td></tr><tr><td>FLS権限</td><td>ゲストユーザープロファイルに項目の作成権限があるか確認</td></tr></tbody></table>

### 優先度が想定と異なる

**優先度の評価順**

1. 完全一致ルールが先に評価されます。
2. 次に部分一致/含むが評価されます。
3. どれにも一致しない場合、優先度低がデフォルトです。

**ヒント:** 広いカテゴリルールより、具体的なイベントルールを先に作成するようにします。

### ケースのステータスにクローズ (**Closed) と表示**

**原因:** 既定ではSalesforceは誤操作防止のため、終了ステータスをCaseのステータスピックリストに表示しません。

**対処:**

1. **\[設定]** → **\[サポート設定]** へ移動します。
2. **\[Show Closed Statuses in Case Status Field]** を探します。
3. チェックを入れて有効化します。
4. **\[保存]** をクリックします。

{% hint style="info" %}
組織全体の設定であり、Keeper ITSMが作成したケースに限らずすべてのCaseに影響します。
{% endhint %}

***

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

### トークンの安全

* トークンは暗号学的に安全なAES-128の乱数で生成されます。
* トークンは保護されたカスタム設定に保存され ( 通常のクエリでは表示されません ) 、参照できません。
* セキュリティのベストプラクティスとして、定期的にトークンを再発行してください。
* トークンを安全でないチャネルで共有しないでください。

### データの安全

* すべてのWebhookリクエストには、有効なトークン認証が必要です。
* エラーメッセージは、情報漏えいを防ぐようサニタイズされます。
* すべてのデータベース操作では、CRUDおよびFLSが強制されます。
* フィールドマッピングは、許可された項目のみを対象とするホワイトリスト方式です。

### 監査証跡

* すべてのWebhookリクエストは、Salesforceのデバッグログに記録されます。
* Webhookで作成されたケースは、識別のために `Origin = Keeper Security` として設定されます。
* 認証の失敗は、セキュリティレビューのためにログに記録されます。

### ゲストユーザーの安全

サイトゲストユーザープロファイルは最小権限で構成されています。

* **Apexアクセス**: Webhook関連クラスのみ
* **オブジェクトアクセス**: ケースは作成のみ、マッピング用オブジェクトは参照のみ
* **フィールドアクセス**: 必要なケース項目に限定

***

## FAQ

**Q: SalesforceのSandboxで使えますか?**

A: はい。Sandboxにパッケージをインストールしてテストできます。Sandboxと本番では別々のトークンを使ってください。

**Q: 新しいパッケージバージョンへのアップグレード方法は?**

A: AppExchangeから新バージョンをインストールします。マッピングやトークンなどの設定はアップグレード後も保持されます。

**Q: どのKeeperイベントがアラートを発動できますか?**

A: Keeper管理コンソールのレポートとアラートで設定した任意のイベント種別です。

**Q: Webhookエンドポイントは安全ですか?**

A: はい。すべてのリクエストに有効な認証トークンが必要です。エンドポイントはHTTPSを使用し、エラーメッセージに内部詳細は含めません。

**Q: ケースのサブジェクトの形式をカスタマイズできますか?**

A: 現状の既定形式は `[Alert Name]: [Event Type]` です。`alert_name` や `audit_event` をサブジェクトフィールドにマッピングすると、挙動をカスタマイズできます。

**Q: トークンが漏えいした場合は?**

A: すぐにWebhook Setupタブで新しいトークンを発行してください。旧トークンは即座に無効になります。Keeper管理コンソールを新トークンに更新してください。
