これらのドキュメントの内容は、法的助言を意図したものではなく、法的支援に代わるものでもありません。GDPR を理解し、遵守する最終的な責任はお客様にありますが、Auth0 は可能な範囲で GDPR 要件への対応を支援します。
概要
consentGiven(true/false) は、ユーザーが同意したかどうかを示します (true は同意済み、false は未同意)consentTimestamp(Unix timestamp) は、ユーザーが同意した日時を示します
- フラグを表示し、データベース接続に対応し、
auth0.jsライブラリを使用してユーザーを作成するもの (Single-Page Applications で使用) 。詳細については、Auth0.js v9 Reference を参照してください。 - フラグを表示し、データベース接続に対応し、Authentication API を使用してユーザーを作成するもの (Regular Web Apps で使用)
- フラグを表示し、ソーシャル接続に対応し、Management API を使用してユーザー情報を更新するもの (SPA または Regular Web Apps で使用)
- 利用規約および/またはプライバシーポリシーの情報を確認し、同意情報を提供できる別のページにリダイレクトするもの (SPA または Regular Web Apps で使用)
オプション 1: auth0.js を使用する
-
Auth0 Dashboard > Applications > Applications に移動し、新しいアプリケーションを作成します。種類として
Single Web Page Applicationsを選択します。Settings に移動し、Allowed Callback URLs をhttp://localhost:3000に設定します。 このフィールドには、ユーザーの認証後に Auth0 がリダイレクトできる URL の一覧を設定します。サンプルアプリはhttp://localhost:3000で実行されるため、この値を設定します。 - クライアントID と ドメイン の値をコピーします。あとで必要になります。
- Auth0 Dashboard > Authentication > Database に移動し、新しい接続を作成します。Create DB Connection をクリックし、新しい接続の名前を設定して Save をクリックします。接続の Applications タブに移動し、新しく作成したアプリケーションが有効になっていることを確認します。
- JavaScript SPA Sample をダウンロードします。
- クライアントID と ドメインの値を設定します。
- Auth0 Dashboard > Branding > Universal Login に移動します。Login タブでトグルを有効にします。
-
Default Templates ドロップダウンで、
Custom Login Formが選択されていることを確認します。コードはあらかじめ入力されています。 -
databaseConnection変数の値を、アプリで使用しているデータベース接続の名前に設定します。 -
consentGivenメタデータ用のフィールドを追加するには、フォームにチェックボックスを追加します。この例では、チェックボックスをデフォルトでオンかつ無効に設定し、ユーザーがチェックを外せないようにしています。必要に応じて、ビジネス要件に合わせて調整してください。 -
サインアップ関数を編集してメタデータを設定します。ここでは、メタデータの値をブール値ではなく、値
trueを持つ文字列として設定しています。また、数値を文字列に変換するためにtoStringを使用している点にも注意してください。これは、値として文字列しか受け付けない Authentication API の Signup エンドポイント の制限によるものです。 - ログインウィジェットの表示を確認するには、Preview タブをクリックします。

- この設定をテストするには、アプリケーションを実行し、
http://localhost:3000にアクセスします。新しいユーザーでサインアップしてください。次に、Auth0 Dashboard > User Management > Users に移動して、その新しいユーザーを検索します。User Details に移動し、Metadata セクションまでスクロールします。user_metadata のテキストエリアに、consentGivenメタデータがtrueに設定されていることを確認できます。
オプション 2: API を使用する (データベース)
consentTimestamp リクエストパラメーターの値は、ユーザーが同意した時点のタイムスタンプに置き換えてください。
メタデータ の値は、ブール値ではなく、値が true の文字列として設定している点に注意してください。これは、API では値としてブール値ではなく文字列のみを受け付けるという制約があるためです。
ブール値を設定する必要がある場合は、代わりに を使用できます。この場合は、通常どおりユーザーをサインアップさせた後、Management API の Update User エンドポイント を呼び出して、ユーザーの作成後に必要な メタデータ を設定します。詳しい手順については、このまま読み進めてください。次の段落では、このエンドポイントを使用します。
ソーシャル接続を使用している場合、そのエンドポイントはデータベース接続でしか使えないため、Authentication API を使用して Auth0 にユーザーを作成することはできません。
代わりに、ユーザーをソーシャルプロバイダー経由でサインアップさせてください (これにより Auth0 にユーザーレコードが作成されます) 。その後、Management API を使用してユーザー情報を更新します。
Management API を呼び出す前に、有効なトークンを取得する必要があります。詳しくは、本番環境向けの Management API アクセストークンを取得するを参照してください。
リンク先の記事では、トークンの取得に Client Credentials Flow を使用していますが、これはブラウザー上で実行されるアプリでは使用できません。代わりに、Implicit Flow を使用できます。Client Credentials Flow の詳細については、Client Credentials Flowを参照してください。Implicit Flow の詳細については、Implicit Flowを参照してください。
リクエストパラメーターの を https://YOUR_DOMAIN/api/v2/ に設定し、scope パラメーターをスコープ create:current_user_metadata に設定します。レスポンスで取得した を使って、Management API の Update User エンドポイント を呼び出すことができます。
有効なトークンを取得したら、次のスニペットを使用してユーザーのメタデータを更新します。
この呼び出しを行うには、一意の user_id を把握しておく必要がある点に注意してください。レスポンスから取得している場合は、の sub クレームからこれを取得できます。詳しくは、ID Tokens を参照してください。あるいは、メールアドレスしかわからない場合は、Management API の別のエンドポイントを呼び出して id を取得できます。詳しくは、User Search Best Practices を参照してください。
オプション 4: 別のページにリダイレクトする
-
リダイレクト用の Rules を追加します。Auth0 Dashboard > Auth Pipeline > Rules に移動し、Create Rule をクリックします。Rules Templates で、empty rule を選択します。デフォルトのルール名
empty ruleを、内容が分かる名前 (例:Redirect to consent form) に変更します。 -
次の JavaScript コードをスクリプトエディターに追加し、変更を Save します。
-
Auth0 Dashboard > Auth0 Pipeline > Rules に戻り、ページ下部の Settings セクションまでスクロールします。次のようにキーと値のペアを作成します。
- Key:
CONSENT_FORM_URL - Value:
your-consent-form-url.com
- Key:
設定をテストする
- アプリケーションを実行し、
https://localhost:3000にアクセスします。 - 新しいユーザーでサインアップします。すると、同意フォームにリダイレクトされます。
- I agree チェックボックスを選択し、Submit をクリックします。
- Auth0 Dashboard > User Management > Users に移動し、新しいユーザーを検索します。
- User Details に移動し、Metadata セクションまでスクロールします。
- user_metadata テキストエリアで、
consentGivenメタデータがtrueに設定され、consentTimestampがユーザーが同意した時点の Unix タイムスタンプに設定されていることを確認します。