GDPRの第7条によると、明確かつ利用しやすい方法で、ユーザーの個人データの処理についてユーザーに同意を求める必要があります。また、ユーザーが同意したことを示さなければならず、いつでも同意を取り消すことができる簡単な方法を提供しなければなりません。 この記事では、これらの要件を実装するためのAuth0の機能の使い方について説明します。Documentation Index
Fetch the complete documentation index at: https://auth0.generaltranslation.app/llms.txt
Use this file to discover all available pages before exploring further.
これらの文書の内容は、法的な助言を意図したものではなく、法的支援の代替と見なされるべきではありません。 GDPRを理解し順守することの最終責任はお客様にあり、Auth0は可能な限りにおいて、お客様がGDPR要件を満たすことを支援します。
同意を求める
user_metadataの合計サイズを16 MBに制限しています。詳細については、メタデータのフィールド名とデータタイプをご覧ください。
Lockを使用する
mustAcceptTermsのLockオプションで設定できます。このプロパティは、trueに設定されたとき、サインアップ前にチェックを入れる必要があるチェックボックスを条件と一緒に表示します。条件は、languageDictionaryオプションを使用して、指定できます。詳細については、「Lock構成オプション」をお読みください。
ユーザーが承認してサインアップすると、最初のログイン時に実行するルールを使用して、user_metadataに同意情報を保存します。ルールの詳細については、「Auth0ルール」をお読みください。
データベース接続でユーザーを認証し、サインアップ中にユーザーからより多くの情報を取得したい場合は、Lock UIにカスタムフィールドを追加できます。これは、additionalSignUpFieldsのLockオプションで設定できます。カスタムフィールドは、自動的にuser_metadataに追加されます。
ソーシャルログインを使用している場合は、カスタムフィールドを追加できませんが、同意と追加情報を求める別のページにユーザーをリダイレクトし、その後認証処理を終わらせるために再びリダイレクトして戻すことができます。これは、リダイレクトルールを使用します。詳細については、ルール内でユーザーをリダイレクトするをお読みください。サインアップのプロセスが完了したら、更新ユーザーエンドポイントを呼び出して、user_metadataに同意の情報を保存します。
これらのシナリオの実装方法については、GDPR:Lockで同意を追跡するをご覧ください。
カスタムUIの使用
user_metadataの一部として同意情報を設定できます。
または、SPAのAuth0.jsを使用する場合は、signupメソッドを使用 してAuth0にユーザーを作成し、user_metadataの一部として同意情報を設定できます。
ソーシャルプロバイダーのカスタムサインアップフォームを使用する場合は、サインアップ時にユーザーの同意情報を設定できませんが、ユーザーが作成されたらすぐに更新できます。Management API更新ユーザーエンドポイントを呼び出して、user_metadataに同意の情報を保存します。
これらのシナリオの実装方法については、「GDPR:カスタムUIで同意を追跡する」をご覧ください。
再同意とユーザーの移行
- ユーザーのデータの使用方法、データが使用される期間、ユーザーの権利など、ユーザーに表示される通知を詳述し、UIサインアップボックスをカスタマイズする必要があります。
- 旧条件および以前のプライバシー認証に応じて、ユーザーに対して再同意が必要かどうかを判断します。
同意の追跡
user_metadataの一部としてユーザーの’同意情報を保存できます。ユーザーの同意したか否かを示すフラグのみを保存するか、同意情報および優先設定一式(たとえば、ユーザーが同意した日、同意した条件など)を保存できます。その後、Management APIを使用してこの情報にアクセス、操作できます。
またManagement APIは、ユーザー検索と、ユーザーメタデータの更新またはユーザーの一括エクスポートのためのエンドポイントについて、いくつかのオプションを提供します。
Management APIにアクセスするには、アクセストークンが必要です。Management APIのアクセストークンの取得方法については、「Management APIのアクセストークン」をご覧ください。
メールアドレスでユーザーを検索する
user_metadataに設定します。こうすることで、完全なユーザープロファイルの代わりに、user_metadataのみが返されます。
要求例:
応答例
IDでユーザーを検索する
user_metadataに設定します。こうすることで、完全なユーザープロファイルの代わりに、user_metadataのみが返されます。
要求例:
応答例
同意情報を更新する
user_metadataを更新するには、**Update a Uwer(ユーザーの更新)**エンドポイントを使用します。
要求をどのように構成するかは、メタデータの構成の仕方(ルートプロパティか、内部プロパティか)によって異なります。
メタデータがルートプロパティとして保存されている場合:
ルートプロパティの更新
01/23/2018に設定したいとします。
これにより、ユーザープロファイルに新しいプロパティuser_metadata.consentDateが追加され、 顧客が同意した日を保持します。応答は完全なユーザープロファイルです。更新されたメタデータは以下のようになります。
内部プロパティの更新
01/23/2018に設定しましょう。
これにより、ユーザープロファイルに新しいプロパティuser_metadata.consentDateが追加され、 顧客が同意した日を保持します。応答は完全なユーザープロファイルです。更新されたメタデータは以下のようになります。
同意情報のエクスポート
- 同意の追跡方法を決めます。ユーザーの同意日のみだけでなく、ユーザーが同意した条件のバージョンに関する情報も含めることをお勧めします。また、許可を撤回したユーザーについての情報を保持する配列も含めることをお勧めします(ユーザーは複数回、同意と撤回ができることをお忘れなく)。
- 同意を保存したい場所を選択します:Auth0のデータベースまたは他のどこか。
同意の撤回
ユーザーを削除
削除済みとしてユーザーにフラグを付ける
プロファイルにフラグを付ける
フラグ付けされたユーザーのログインを無効にする
- [Auth0 Dashboard]>[Auth Pipeline(Authパイプライン)]>[Rules(ルール)]に移動して、ルールを作成します。
-
以下のスクリプトをコピーします。
スクリプトは以下を実行します。
- **deleted(削除済み)**メタデータプロパティ(
user.app_metadata.deleted)の値を確認します。 user.app_metadata.deleted = trueの場合、アプリにAccess denied (deleted user)エラーを返します。
- **deleted(削除済み)**メタデータプロパティ(
- ルールに名前を付けて、変更を保存します。
- 同意の撤回が十分に詳述されていることを確認する。
- 顧客が同意を撤回できるエリアをアプリに設定する。