Skip to content

非公式本サイトは非公式の日本語ドキュメントであり、Cloudflare 公式サイトではありません。最新情報はdevelopers.cloudflare.comをご確認ください。

Ephemeral ID

最終更新 Markdown で表示Agent セットアップ

Ephemeral ID は、訪問者の操作ごとに Turnstile が生成する、短期間だけ有効なデバイス識別子です。IP ベースの検知と異なり、Cookie やクライアント側ストレージに依存せず、訪問者の行動を特定のクライアントデバイスに紐づけます。リクエストごとに IP アドレスを変える攻撃者に対しても有効です。

Ephemeral ID の仕組み

Ephemeral ID は、Turnstile の各チャレンジ試行で動的に生成されます。Cookie やローカルストレージは不要です。

Ephemeral ID は Cloudflare アカウント単位でスコープされ、アカウント間では共有できません。ID は数日以内に期限切れになり、個人ユーザーの特定には使えません。

この方式は、攻撃者が検知を避けるために IP アドレスを切り替えるクレデンシャルスタッフィングや、偽アカウント作成に対して特に有効です。

詳細は ブログ記事 を参照してください。


実装

Ephemeral ID を有効にする

  1. Cloudflare のアカウントチームに連絡し、アカウントで Ephemeral ID の利用資格を有効にします。この機能は Enterprise レベルのアクセスが必要で、自分では有効化できません。

  2. 利用資格を有効にしたあと、Cloudflare API で特定のウィジェットに対して Ephemeral ID を有効にします。

    cURL コマンドbash
    curl -X PUT "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/challenges/widgets/$WIDGET_ID" \
      -H "Authorization: Bearer $API_TOKEN" \
      -H "Content-Type: application/json" \
      -d '{
        "ephemeral_id": true
      }'
  3. ウィジェット設定を確認し、Ephemeral ID が有効になっていることを確かめます。

    cURL コマンドbash
    curl -X GET "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/challenges/widgets/$WIDGET_ID" \
      -H "Authorization: Bearer $API_TOKEN"

Ephemeral ID を取得する

有効にすると、Ephemeral ID は Siteverify API のレスポンスに含まれます。

Siteverify API のレスポンスjson
{
	"success": true,
	"challenge_ts": "2022-02-28T15:14:30.096Z",
	"hostname": "example.com",
	"error-codes": [],
	"action": "login",
	"cdata": "sessionid-123456789",
	"metadata": {
		"ephemeral_id": "x:9f78e0ed210960d7693b167e"
	}
}

提供状況

Ephemeral ID は、Enterprise Bot Management の顧客で Enterprise Turnstile アドオンを利用している場合、またはスタンドアロンの Enterprise Turnstile 顧客が利用できます。アクセスについてはアカウントチームに問い合わせてください。

役に立ちましたか?