reCAPTCHA がプライベート アクセス トークンを使用する仕組みを理解する

このドキュメントでは、プライベート アクセス トークン(PAT)の概要と、reCAPTCHA で PAT がどのように使用されるかについて説明します。

プライベート アクセス トークンとは

reCAPTCHA は、iOS と macOS の PAT という機能を使用して、人間ユーザーに表示する CAPTCHA の数を減らします。

PAT は、一部の iOS デバイスと macOS デバイスで生成される不透明なトークンです。このトークンは、デバイスの信頼性と完全性に関するプライバシー保護の構成証明として機能します。PAT は Privacy Pass プロトコルの実装です。これは WWW-Authentication スキームの一種です。

reCAPTCHA で Private Access Token が使用される仕組み

reCAPTCHA は、リクエストが人間によるものか bot によるものかを判断するために、複数の要素を使用します。デバイスが PAT を生成できるかどうかは、こうしたシグナルの 1 つです。PAT を生成できないデバイスはペナルティの対象になりません。

PAT プロトコルは、プライバシーの保護を目的として設計されています。トークンには、特定のデバイスやユーザーを特定するために使用できる個人を特定できる情報は含まれていません。reCAPTCHA は、トークンが有効であることを確認して、リクエストが正規の Apple デバイスから送信されたことを確認します。

プライベート アクセス トークン リクエスト フロー

/pat で終わる reCAPTCHA URL から 401 エラーが表示されることがあります。このエラーは、PAT プロトコルの想定される一部です。デバイスが PAT を生成できるかどうかを判断するために、reCAPTCHA は最初のリクエストを拒否するレスポンスで特別なヘッダーを送信します。互換性のある Apple デバイスでは、このヘッダーにより、PAT を使用してリクエストを再試行するフローがトリガーされます。

この 401 エラーは、reCAPTCHA がページで機能することを妨げたり、他のエラーを引き起こしたりすることはありません。チェックボックスをクリックするか execute を呼び出すと、reCAPTCHA は有効なトークンを生成します。

次のステップ

Apple によるプライベート アクセス トークンの使用方法について詳しくは、Apple Developer ブログの投稿「プライベート アクセス トークンのご紹介」をご覧ください。