Ephemeral ID は、訪問者の操作ごとに Turnstile が生成する、短期間だけ有効なデバイス識別子です。IP ベースの検知と異なり、Cookie やクライアント側ストレージに依存せず、訪問者の行動を特定のクライアントデバイスに紐づけます。リクエストごとに IP アドレスを変える攻撃者に対しても有効です。
Ephemeral ID は、Turnstile の各チャレンジ試行で動的に生成されます。Cookie やローカルストレージは不要です。
Ephemeral ID は Cloudflare アカウント単位でスコープされ、アカウント間では共有できません。ID は数日以内に期限切れになり、個人ユーザーの特定には使えません。
この方式は、攻撃者が検知を避けるために IP アドレスを切り替えるクレデンシャルスタッフィングや、偽アカウント作成に対して特に有効です。
詳細は ブログ記事 ↗ を参照してください。
-
Cloudflare のアカウントチームに連絡し、アカウントで Ephemeral ID の利用資格を有効にします。この機能は Enterprise レベルのアクセスが必要で、自分では有効化できません。
-
利用資格を有効にしたあと、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 }' -
ウィジェット設定を確認し、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 は Siteverify API のレスポンスに含まれます。
{
"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 顧客が利用できます。アクセスについてはアカウントチームに問い合わせてください。