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

# Webhook コネクタ

> HTTP POST およびPUT データを受信するパブリックAPI エンドポイントを公開し、HMAC 認証、レート制限、CORS サポート、カスタムレスポンススクリプトに対応します。

export const CommonCors = () => <>
    <table>
      <thead>
        <tr><th>設定</th><th>説明</th></tr>
      </thead>
      <tbody>
        <tr>
          <td><strong>Enable cross-origin resource sharing (CORS)</strong></td>
          <td>CORS を有効にするかどうか。このチェックボックスをオンにした場合にのみ、その他のオプションが利用可能になります。</td>
        </tr>
        <tr>
          <td><strong>Allow all domains without '*'</strong></td>
          <td>有効にすると、ドメインオリジンは特定のリストに制限されません。</td>
        </tr>
        <tr>
          <td><strong>Access-Control-Allow-Origin</strong></td>
          <td>許可するドメインオリジンのカンマ区切りのリスト。HTTP レスポンスヘッダーとして含まれます。</td>
        </tr>
        <tr>
          <td><strong>Access-Control-Allow-Credentials</strong></td>
          <td>Cookie などのユーザー認証情報をクロスオリジンリクエストで許可するかどうか。HTTP レスポンスヘッダーとして含まれます。</td>
        </tr>
        <tr>
          <td><strong>Access-Control-Allow-Methods</strong></td>
          <td>許可するメソッドのカンマ区切りのリスト。HTTP レスポンスヘッダーとして含まれます。</td>
        </tr>
        <tr>
          <td><strong>Access-Control-Allow-Headers</strong></td>
          <td>許可するヘッダーのカンマ区切りのリスト。HTTP レスポンスヘッダーとして含まれます。</td>
        </tr>
        <tr>
          <td><strong>Access-Control-Max-Age</strong></td>
          <td>Access-Control レスポンスヘッダーの値をキャッシュできる最大時間（秒単位）。</td>
        </tr>
      </tbody>
    </table>
  </>;

export const TrustedIp = () => <>
    <p><strong>Trusted IP Addresses</strong> セクションでは、次の機能を使用できます。</p>

    <table>
      <thead>
        <tr><th>機能</th><th>説明</th></tr>
      </thead>
      <tbody>
        <tr><td><strong>Add</strong></td><td>新しいIP アドレス範囲を入力します。</td></tr>
        <tr><td><strong>Edit</strong></td><td>選択したIP アドレス範囲を変更します。</td></tr>
        <tr><td><strong>Delete</strong></td><td>選択したIP アドレス範囲をリストから削除します。</td></tr>
      </tbody>
    </table>

    <p>この機能には次の制限が適用されます。</p>

    <ul style={{
  listStyleType: 'disc',
  paddingLeft: '1.5rem'
}}>
      <li style={{
  display: 'list-item'
}}><code>localhost</code> はリストから変更または削除できません。</li>
      <li style={{
  display: 'list-item'
}}>定義された範囲外のIP アドレスはすべて拒否されます。</li>
      <li style={{
  display: 'list-item'
}}>範囲がサポートされています。例えば、エントリ<code>100.10.100.1-15</code> は、<code>100.10.100.1</code> から<code>100.10.100.15</code> までのIP アドレスが許可されることを示します。</li>
      <li style={{
  display: 'list-item'
}}>Classless inter-domain routing（CIDR）表記がサポートされています。例えば、エントリ<code>100.10.100.0/24</code> は、<code>100.10.100.0</code> から<code>100.10.100.255</code> までのIP アドレスが許可されることを示します。</li>
      <li style={{
  display: 'list-item'
}}>ワイルドカードパターンがサポートされています。例えば、エントリ<code>100.10.100.*</code> は、<code>100.10.100</code> で始まるIP アドレスが許可されることを示します。</li>
    </ul>

    <Note>
      <p>クライアントがサーバーに到達するには、明確なネットワークパスが必要です。クラウド環境では、次の3か所で変更が必要になる場合があります。</p>
      <p style={{
  paddingLeft: '1.5rem',
  marginTop: '0.25rem',
  marginBottom: '0.25rem'
}}>• クラウドコンソールのネットワークルール。</p>
      <p style={{
  paddingLeft: '1.5rem',
  marginTop: '0.25rem',
  marginBottom: '0.25rem'
}}>• アプリケーションをホストするマシンのファイアウォールルール。例えば、Amazon AMI を使用する場合、<em>Uncomplicated Firewall</em>（UFW）を使用して目的のポートでのトラフィックを許可できます。Linux 環境での一般的な方法は、1024 より小さいポートから1024 より大きい非標準ポートへトラフィックを転送し、アプリケーションがその非標準ポートを使用するように設定することです。これにより、非rootユーザーが1024 より小さいポートにバインドする際の権限の問題を回避できます。</p>
      <p style={{
  paddingLeft: '1.5rem',
  marginTop: '0.25rem',
  marginBottom: '0.25rem'
}}>• <a href="/26.3/self-hosted/ja/getting-started/administration/settings/security">Security</a> タブの<a href="/26.3/self-hosted/ja/getting-started/administration/settings/network-access">Network Access</a> 部分。</p>
    </Note>
  </>;

export const SlasTab = ({siteName = "CData Arc"}) => <>
    <p><em>サービスレベルアグリーメント（SLA）の設定に関する設定です。</em></p>
    <p>
      SLA を使用すると、フロー内のコネクタが送受信すると見込まれるボリュームを設定し、そのボリュームを達成すると見込まれる期間を設定できます。{siteName} は、SLA が達成されない場合にユーザーへ警告するメールを送信し、SLA を<em>At Risk</em> としてマークします。これは、SLA が間もなく達成されない場合に<em>Violated</em> としてマークされることを意味します。これにより、ユーザーは介入してSLA が達成されない理由を特定し、適切な対応を取る機会を得られます。At Risk 期間の終了時点でもSLA が達成されない場合、SLA はviolated としてマークされ、ユーザーに再度通知されます。
    </p>
    <p>
      SLA を定義するには、<strong>Expected Volume</strong> をオンに切り替え、<strong>Settings</strong> タブをクリックします。
    </p>
    <img src="/public/images/sla_empty.png" alt="SLA Empty" />
    <ul>
      <li>コネクタに送信と受信の個別のアクションがある場合は、ラジオボタンを使用してSLA がどちらの方向に適用されるかを指定します。</li>
      <li>ウィンドウの<strong>Expect at least</strong> 部分で、次を設定します。
        <ul>
          <li>処理を見込む最小トランザクション数（ボリューム）を設定します。</li>
          <li><strong>Every</strong> フィールドを使用して期間を指定します。</li>
          <li>SLA を有効にするタイミングを指定します。<strong>Starting on</strong> を選択した場合は、日付および時刻フィールドを入力します。</li>
          <li>SLA を有効にしたい曜日のチェックボックスをオンにします。必要に応じて、ドロップダウンで<strong>Everyday</strong> を選択します。</li>
        </ul>
      </li>
      <li>ウィンドウの<strong>Set status to 'At Risk'</strong> 部分で、SLA をAt Risk としてマークするタイミングを指定します。
        <ul>
          <li>デフォルトでは、SLA が違反状態になるまで通知は送信されません。これを変更するには、<strong>Send an 'At Risk' notification</strong> をオンにします。</li>
        </ul>
      </li>
    </ul>
    <p>
      次の例は、月曜日から金曜日まで毎日1000 件のファイルを受信すると見込むコネクタ向けに設定されたSLA を示しています。1000 件のファイルが受信されていない場合、期間の終了の1時間前にAt Risk 通知が送信されます。
    </p>
    <img src="/public/images/sla_defined.png" alt="SLA Configuration Example" />
    <Note>
      必要に応じてSLA アラートをオフにすることができます。これはメンテナンスウィンドウ中に役立ちます。navbar で<strong>Settings</strong> をクリックし、<strong>Alerts &gt; General Alerts</strong> に移動します。タブレットと鉛筆のアイコンをクリックして編集し、<strong>SLA Alerts</strong> 設定のチェックを外します。
    </Note>
  </>;

export const AlertsTab = ({siteNameShort = "Arc"}) => <>
    <p><em>アラートの設定に関する設定です。</em></p>
    <p>
      サービスレベルアグリーメント（SLA）を実行する前に、通知用のメールアラートをセットアップする必要があります。デフォルトでは、{siteNameShort} は<a href="/26.3/self-hosted/ja/getting-started/administration/settings/alerts">Alerts</a> タブのグローバル設定を使用します。このコネクタに別の設定を使用するには、<strong>Override global setting</strong> をオンに切り替えます。
    </p>
    <p>
      デフォルトではエラーアラートが有効になっており、エラーが発生するたびにメールが送信されます。これをオフにするには、<strong>Enable</strong> チェックボックスのチェックを外します。
    </p>
    <p>
      <strong>Subject</strong>（必須）を入力します。<strong>Allow {siteNameShort}Script in Subject</strong> をチェックすると、<strong>Subject</strong> フィールドで{siteNameShort}Script を使用できます。これを選択すると、<strong>{siteNameShort}Script エディタ</strong>ボタンが表示されます（<img src="/public/images/rest_arcscript_editor.png" alt="arcscript editor button" style={{
  display: 'inline',
  verticalAlign: 'middle',
  margin: 0
}} />）。
    </p>
    <p>
      必要に応じて<strong>Recipient</strong> のメールアドレスをカンマ区切りのリストで入力します。
    </p>
  </>;

export const Message = () => <>
    <p><em>Message 設定は、コネクタがメッセージを検索する方法と、処理後にメッセージを管理する方法を決定します。</em></p>
    <p><strong>Note：</strong> 以下の設定は非推奨となり、デフォルトで非表示になっています。以前に有効化またはデフォルト以外の値に設定されていたコネクタにのみ表示されます。処理済みファイルのコピーを保持するには、フロー内のコネクタを右クリックし、<strong>成功パスを表示</strong>を選択して、成功パスを<a href="/26.3/self-hosted/ja/connectors/file">File コネクタ</a>に接続してください。</p>
    <table>
      <thead>
        <tr><th>設定</th><th>説明</th></tr>
      </thead>
      <tbody>
        <tr>
          <td><strong>Sent フォルダに保存</strong>（非推奨）</td>
          <td>コネクタが処理したファイルをSent フォルダにコピーします。デフォルトで無効です。Sent フォルダに保存されたファイルは<a href="/26.3/self-hosted/ja/getting-started/administration/settings/encryption-at-rest">保存データの暗号化</a>の対象外です。</td>
        </tr>
        <tr>
          <td><strong>Sent フォルダのスキーム</strong>（非推奨）</td>
          <td>選択した時間間隔で<strong>Sent</strong> フォルダ内のファイルをグループ化します。<strong>Sent フォルダに保存</strong>が有効な場合のみ適用されます。</td>
        </tr>
      </tbody>
    </table>
  </>;

export const MiscConnector = () => <>
    <p><em>Miscellaneous 設定は、特定のユースケース向けの設定です。</em></p>
    <table>
      <thead>
        <tr>
          <th>設定</th>
          <th>説明</th>
        </tr>
      </thead>
      <tbody>
        <tr>
          <td><strong>Other Settings</strong></td>
          <td>非表示のコネクタ設定をセミコロン区切りのリストで設定できます（例：<code>setting1=value1;setting2=value2</code>）。通常のコネクタのユースケースや機能では、これらの設定の使用は必要ありません。</td>
        </tr>
      </tbody>
    </table>
  </>;

export const Logging = () => <>
    <p><em>ログの作成と保存を制御する設定です。</em></p>
    <table>
      <thead>
        <tr>
          <th>設定</th>
          <th>説明</th>
        </tr>
      </thead>
      <tbody>
        <tr>
          <td><strong>Log Level</strong></td>
          <td>コネクタが生成するログの詳細度です。サポートを依頼する際は、これを<strong>Debug</strong> に設定してください。</td>
        </tr>
        <tr>
          <td><strong>Log Subfolder Scheme</strong></td>
          <td>選択した間隔に従って、コネクタがLogs フォルダ内のファイルをグループ化するよう指示します。<strong>Weekly</strong> オプション（デフォルト）は、コネクタが毎週新しいサブフォルダを作成し、その週のすべてのログをそのフォルダに保存するよう指示します。この設定を空白のままにすると、コネクタはすべてのログをLogs フォルダに直接保存します。多数のトランザクションを処理するコネクタでは、サブフォルダを使用することでログを整理しやすくなり、パフォーマンスが向上します。</td>
        </tr>
        <tr>
          <td><strong>Log Messages</strong></td>
          <td>処理したファイルのログエントリにファイル自体のコピーを含めるには、これをオンにします。これを無効にすると、<strong>Transactions</strong> タブからファイルのコピーをダウンロードできなくなる場合があります。</td>
        </tr>
      </tbody>
    </table>
  </>;

export const MacrosExamples = ({extraMacros = []}) => <>
    <p>
      %Ext% や %ShortDate% などの一部のマクロは引数を必要としませんが、引数を必要とするものもあります。
      引数を取るすべてのマクロは次の構文を使用します。<code>%Macro:argument%</code>
    </p>

    <p>引数を取るマクロの例を次に示します。</p>

    <ul>
      <li>%Header:headername%：<code>headername</code> はメッセージ上のヘッダーの名前です。</li>
      <li>%Header:mycustomheader% は、入力メッセージに設定された<code>mycustomheader</code> ヘッダーの値に解決されます。</li>
      <li>%Header:ponum% は、入力メッセージに設定された<code>ponum</code> ヘッダーの値に解決されます。</li>
      <li>%RegexFilename:pattern%：<code>pattern</code> は正規表現パターンです。例えば、<code>%RegexFilename:^([\w][A-Za-z]+)%</code> は、ファイル名の最初の単語にマッチしてそれに解決され、大文字・小文字を区別しません（<code>test_file.xml</code> は<code>test</code> に解決されます）。</li>
      <li>%Vault:vaultitem%：<code>vaultitem</code> は<a href="/26.3/self-hosted/ja/getting-started/administration/settings/global-settings-vault">Vault</a> 内のアイテムの名前です。例えば、<code>%Vault:companyname%</code> は、Vault に保存された<code>companyname</code> アイテムの値に解決されます。</li>
      <li>%DateFormat:format%：<code>format</code> は許容される日付形式です（詳細は<a href="/26.3/self-hosted/ja/scripting/value-formatters/date-formatters#sample-date-formats">日付形式のサンプル</a>を参照してください）。例えば、<code>%DateFormat:yyyy-MM-dd-HH-mm-ss-fff%</code> は、ファイルの日付とタイムスタンプに解決されます。</li>
      {extraMacros.filter(item => item.example).map(item => <li key={`ex-${item.name}`}>{item.example}</li>)}
    </ul>

    <p>次の例に示すように、より高度なマクロを作成することもできます。</p>

    <ul>
      <li>1 つのファイル名で複数のマクロを組み合わせる：<code>%DateFormat:yyyy-MM-dd-HH-mm-ss-fff%%EXT%</code></li>
      <li>マクロの外側にテキストを含める：<code>MyFile_%DateFormat:yyyy-MM-dd-HH-mm-ss-fff%</code></li>
      <li>マクロの内側にテキストを含める：<code>%DateFormat:'DateProcessed-'yyyy-MM-dd_'TimeProcessed-'HH-mm-ss%</code></li>
    </ul>
  </>;

export const MacrosTable = ({siteName = "CData Arc", extraMacros = []}) => <>
    <p>
      ファイル命名戦略でマクロを使用すると、データの整理効率と文脈の理解を高めることができます。
      ファイル名にマクロを組み込むことで、識別子、タイムスタンプ、ヘッダー情報などの関連情報を
      動的に含めることができ、各ファイルに有用な文脈を提供します。
    </p>

    <p>{siteName} は次のマクロをサポートしています。これらはすべて次の構文を使用します。<code>%Macro%</code></p>

    <table>
      <thead>
        <tr><th>マクロ</th><th>説明</th></tr>
      </thead>
      <tbody>
        <tr><td>ConnectorID</td><td>コネクタのConnectorID に評価されます。</td></tr>
        <tr><td>ConnectorName</td><td>コネクタの名前に評価されます。ファイル名やパスに接続名を含めることができます。例えば、どのデータベース接続が生成したかによってバックアップファイルにタグを付けるために使用できます。</td></tr>
        <tr><td>Ext</td><td>コネクタが現在処理しているファイルの拡張子に評価されます。</td></tr>
        <tr><td>Filename</td><td>コネクタが現在処理しているファイルのファイル名（拡張子を含む）に評価されます。</td></tr>
        <tr><td>FilenameNoExt</td><td>コネクタが現在処理しているファイルのファイル名（拡張子を除く）に評価されます。</td></tr>
        <tr><td>MessageId</td><td>コネクタが出力しているメッセージのMessageId に評価されます。</td></tr>
        <tr><td>RegexFilename:<em>pattern</em></td><td>コネクタが現在処理しているファイルのファイル名に正規表現パターンを適用します。</td></tr>
        <tr><td>Header:<em>headername</em></td><td>コネクタが現在処理しているメッセージ上の対象ヘッダー（<code>headername</code>）の値に評価されます。</td></tr>
        <tr><td>LongDate</td><td>システムの現在の日時を長い形式（例：Wednesday, January 24, 2024）で評価します。</td></tr>
        <tr><td>ShortDate</td><td>システムの現在の日時をyyyy-MM-dd 形式（例：2024-01-24）で評価します。</td></tr>
        <tr><td>DateFormat:<em>format</em></td><td>システムの現在の日時を指定された形式（<code>format</code>）で評価します。利用可能な日時形式については、<a href="/26.3/self-hosted/ja/scripting/value-formatters/date-formatters#date-formats-with-literal-characters">日付形式のサンプル</a>を参照してください。</td></tr>
        <tr><td>Vault:<em>vaultitem</em></td><td>指定されたVault アイテムの値に評価されます。</td></tr>
        {extraMacros.map(item => <tr key={item.name}>
            <td>{item.name}</td>
            <td>{item.description}</td>
          </tr>)}
      </tbody>
    </table>
  </>;

export const companyName = "CData";

export const siteNameShort = "Arc";

export const siteName = "CData Arc";

Webhook コネクタは、パブリックAPI エンドポイントの公開をサポートします。

## 主な機能

* 最新の認証メカニズムを備えた、HTTP POST およびPUT データ取り込み用のパブリックAPI エンドポイントの公開
* CORS サポートを備えた、ユーザーベースのレート制限と同時リクエスト管理
* セキュリティを強化するHMAC 署名認証と、カスタムレスポンスイベントのスクリプト
* [XML Map](./xml-map/xml-map) コネクタとの統合およびワークフロー自動化のためのサンプルリクエストテンプレート

## 概要

Webhook コネクタにより、HTTP POST およびPUT を介して{siteName} フローにデータを入力できます。各Webhook コネクタは、外部クライアントがXML およびJSON ペイロードを送信できるエンドポイントをアプリケーション内に公開します。これらのペイロードはアウトプットファイルに書き込まれ、フロー内の次のコネクタに渡されます。

Webhook コネクタでサンプルリクエストを指定すると、エンドポイントにPOST されたデータの変換プロセスを簡素化できます。XML サンプルを指定し、Webhook コネクタがフロー内でXML Map コネクタに接続されている場合、XML Map コネクタは、エンドポイントにPOST されるXML ファイルの想定される構造を自動的に検出します。その後、XML Map コネクタの[ノード値エディタ](../mapping/mapping-node-value-editor)を使用して、この構造をターゲットのXML 構造にマッピングできます。

## コネクタの設定

このセクションには、設定可能なすべてのコネクタプロパティが記載されています。

### Settings タブ

#### Connector Details

*コネクタのコア操作に関連する設定。*

| 設定                        | 説明                                         |
| ------------------------- | ------------------------------------------ |
| **Connector Id**          | コネクタの静的で一意の識別子。                            |
| **Connector Type**        | コネクタ名とその機能の説明を表示します。                       |
| **Connector Description** | コネクタとフロー内でのその役割について、自由形式で説明を記述できる任意のフィールド。 |
| **Webhook Endpoint**      | エンドポイントが公開される（コネクタ名に基づいて）生成されたURL。         |

#### Advanced Settings

| 設定                             | 説明                                                                                                                                              |
| ------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------- |
| **Local File Scheme**          | コネクタによって出力されるメッセージにファイル名を割り当てるためのスキーム。ファイル名にマクロを使用することで、識別子やタイムスタンプなどの情報を動的に含めることができます。詳細については、[マクロ](#マクロ)を参照してください。                            |
| **Enable HMAC Authentication** | Webhook リクエストの真正性と完全性を検証するためにHMAC（Hash-based Message Authentication Code）署名認証を使用するには、**Enabled** をチェックします。詳細については、[HMAC 認証](#hmac-認証)を参照してください。 |
| **HMAC Signature Header**      | 署名ヘッダーの値。デフォルトでは`x-cdata-hmac-signature` ですが、カスタマイズできます。                                                                                        |

### Request Details タブ

受信データの想定される構造を表すXML またはJSON テンプレートを指定します。サンプルリクエストを指定する主なメリットは、Webhook コネクタをフロー内の[XML Map](./xml-map/xml-map) コネクタに接続する場合に得られます。API データをEDI ドキュメントやデータベースへの挿入など、他の形式に変換する必要がある場合は、XML Map コネクタを使用してください。

XML Map コネクタはサンプルリクエストのXML 構造を検出し、これをXML Map コネクタの**Source File** として使用します。ターゲット形式を表すXML 構造を**Destination File** としてアップロードし、ノード値エディタを使用してソース構造を送信先に変換します。

### Users タブ

**Users** タブでは、次のことができます：

* 関連するauthtoken およびOAuth 2.0 認証情報を持つユーザーの作成
* POST および/またはPUT 権限の定義
* 各ユーザーが1時間あたりに実行できるリクエスト数の指定
* 許可される同時リクエスト数の指定

このタブでは、ユーザーの追加、編集、削除ができます。各フィールドの詳細については、Add or Edit Users を参照してください。

<Note>ここでのリクエスト設定は、**Server** タブの[デフォルトレート制限](#default-rate-limits-per-user)セクションの設定を上書きします。</Note>

### Server タブ

#### Trusted IP Addresses

<TrustedIp />

#### Default Rate Limits (Per User)

*Users タブで値が指定されていない場合に、許可されるリクエスト数を制限する設定。*

| 設定                          | 説明                          |
| --------------------------- | --------------------------- |
| **Max Requests Per Hour**   | 1人のユーザーが1時間に発行できるリクエスト数の上限。 |
| **Max Concurrent Requests** | ユーザーが発行できる同時リクエスト数の上限。      |

#### Cross-Origin Resource Sharing (CORS)

*クロスオリジンリソースを配信するためのCORS の使用を制御する設定。*

<CommonCors />

#### Advanced Settings

| 設定                   | 説明                                                                                                                               |
| -------------------- | -------------------------------------------------------------------------------------------------------------------------------- |
| **Authtoken in URL** | 認証のためにコネクタがクエリ文字列パラメータでauthtoken を渡すことを許可するには、これをチェックします。詳細については、[クエリ文字列パラメータとしての認証トークンの使用](#クエリ文字列パラメータとしての認証トークンの使用)を参照してください。 |

### Advanced タブ

#### Message

<Message />

#### Logging

<Logging />

#### Miscellaneous

<MiscConnector />

### Alerts タブ

<AlertsTab />

### SLAs タブ

<SlasTab />

## HMAC 認証

HMAC（Hash-based Message Authentication Code）署名認証は、Webhook リクエストの真正性と完全性を検証する暗号化方式です。共有シークレットキーを使用して各リクエストに固有の署名を生成し、次を保証します：

* リクエストの真正性：リクエストが信頼できるソースから発信されたことを確認します
* データの完全性：リクエストペイロードが送信中に改ざんされていないことを検証します
* リプレイ攻撃の防止：傍受されたリクエストの悪意ある再利用から保護します

これにより、より簡単に侵害される可能性があるベーシック認証やAPI キーなどの従来の認証方式と比較して、はるかに強固なセキュリティが提供されます。

Professional またはEnterprise [ライセンス](../getting-started/administration/settings/license-settings)をお持ちのユーザーは、受信するWebhook リクエストに対してHMAC 署名認証を有効化できます。

### 設定

<Warning>HMAC 認証はグローバル設定であり、Webhook へのアクセスを許可されたすべてのユーザーに適用されます。</Warning>

1. HMAC 認証の有効化
   1. Webhook コネクタの設定で**Enable HMAC Authentication** をチェックします。
   2. 任意で、HMAC Signature Header の値をカスタマイズします（デフォルトは`x-cdata-hmac-signature` です）。

### ユーザーへのHMAC キーの設定

HMAC 認証を有効化したあと：

1. Webhook コネクタの**Users** タブに移動します。
2. 認証された各Webhook ユーザーのHMAC キーを設定します：
   1. 各ユーザーに対してHMAC キーが自動的に生成されます。自動生成されたキーをカスタム値で上書きできます。各ユーザーは、Webhook リクエストの有効な署名を生成するために、割り当てられたHMAC キーを使用する必要があります。

## 認証トークン認証

ユーザーは、リクエストにauthtoken を指定することでWebhook リソースにアクセスできます。[Users](#users-タブ) タブでユーザーを追加または編集し、**Authentication** タブに移動して、ユーザーとauthtoken を管理します。

ユーザーがWebhook エンドポイントを呼び出す前に、接続用の信頼できるIP アドレスも設定する必要があります。これらは**Server** タブの[Trusted IP Addresses](#trusted-ip-addresses)セクションで設定します。デフォルトでは、すべてのIP アドレスが制限されています。

### ベーシック認証での認証トークンの使用

ベーシック認証を使用する場合は、ユーザーのauthtoken をパスワードとして入力します。

### HTTP ヘッダーでの認証トークンの使用

HTTP リクエストの一部として、authtoken を含むHTTP ヘッダー`x-{companyName}-authtoken` を追加します。

### クエリ文字列パラメータとしての認証トークンの使用

コネクタがクエリ文字列パラメータでauthtoken を渡すことを許可するには、**Server** タブの[Advanced Settings](#advanced-settings)セクションで**Allow authtoken in URL** をチェックします。

この機能を有効化したあと、HTTP フォームポストデータの一部として、またはクエリパラメータとして指定する`@authtoken` パラメータの値としてauthtoken を指定できます。

## OAuth 2.0 認証

ユーザーは、OAuth 2.0 認証を使用してWebhook リソースをセキュアにできます。[Users](#users-タブ) タブでユーザーを追加または編集し、**Authentication** タブに移動して、ユーザーとOAuth 認証情報を管理します。

## データの受信

Webhook エンドポイントにデータがアップロードされると、Web リクエストのボディがアウトプットファイルとして書き込まれ、フロー内の次のコネクタに渡されます。これにより、外部API 呼び出しを介して{siteNameShort} ワークフローを起動する柔軟な方法が提供されます。

<Tip>エンドポイントにアップロードされたデータはWebhook コネクタでは検証されないため、必要に応じてフローの後段で検証する必要があります。</Tip>

## カスタムレスポンス

通常、Webhook コネクタはリクエストが受け入れられたことを示すトークンレスポンスとともにポストデータを受け入れますが、`Response` イベントを使用してレスポンスをカスタマイズできます。このイベントでは、`_request`、`_httpheaders`、`_response`、`_message` の特別なアイテムが利用できます。指定した場合、コネクタは`_response` アイテムを通じてカスタムレスポンスが提供されることを想定します。

`Response` イベントを使用して、次の属性でカスタムアウトプットアイテムをプッシュすることもできます：

* Filename：フローに渡すアウトプットメッセージのファイル名。
* Data：フローに渡すメッセージに含めるデータ。バイナリデータの場合は、代わりにBase64Data 属性を使用します。
* Base64Data：フローに渡すメッセージに含めるBase64 エンコードされたデータ。
* HeaderNames#：フローに渡すメッセージに含めるヘッダー名のリスト。一致するインデックスでこれらのヘッダーの値を指定するには、HeaderValues 属性を使用します。
* HeaderValues#：フローに渡すメッセージに含めるヘッダー値のリスト。これらの値は、HeaderNames リスト内の一致するインデックスで定義されたヘッダー名に使用されます。
* Logs#：トランザクションのログに含めるログエントリのリスト。

### レスポンスの例

カスタムのファイル名とヘッダーを付けて、Webhook リクエストのボディを含むファイルをフローに渡すには、`Response` イベント内の{siteNameShort}Script は次のようになります：

```xml theme={null}
<arc:set attr="out.Filename" value="MyCustomFilename.xml" />
<arc:set attr="out.Data" value="[_message.body]" />
<arc:set attr="out.HeaderNames#1" value="MyHeader1" />
<arc:set attr="out.HeaderValue#1" value="MyHeader1Value" />
<arc:push item="out" />
```

受信リクエスト上のヘッダーを、フローに渡すメッセージ上のヘッダーとして表面化するには、`Response` イベント内の{siteNameShort}Script は次のようになります：

```xml theme={null}
<arc:set attr="_message.header:MySpecialHeader" value="[_httpheaders.MyWebhookHeader]" />
<arc:set attr="_response.header:Content-Type" value="application/xml" />
<arc:set attr="_response.write" value="<Status>Successfully processed message with MySpecialHeader=[_message.header:MySpecialHeader]</Status>" />
```

上記の{siteNameShort}Script を`Response` イベントに設定すると、クライアントは次のようなリクエストを送信できます：

```http theme={null}
POST https://localhost/connector/Webhook1/webhook.rsb HTTP/1.1
content-type: application/xml
X-{siteNameShort}-Authtoken: 1s7U4w0a2P3l8v9W3l0q
MyWebhookHeader: Hello World!

<Items>
  <Webhook>Hello World!</Webhook>
</Items>
```

そして、次のレスポンスを受け取ります：

```http theme={null}
HTTP/1.1 200 OK
Connection: close
Date: Tue, 31 Aug 2021 19:16:13 GMT
X-Frame-Options: SAMEORIGIN
Content-Type: application/xml
Content-Length: 81
Server: Jetty(9.4.z-SNAPSHOT)

<Status>Successfully processed message with MySpecialHeader=Hello World!</Status>
```

## マクロ

<MacrosTable />

### 例

<MacrosExamples />
