Auth0のメタデータはセキュリティ保護されたデータストアではないため、機密情報の保管に使用されるべきではありません。これには社会保障番号やクレジットカード番号など、高リスクの個人情報が含まれます。Auth0の顧客はメタデータに保管されているデータを評価して、IDとアクセスの管理に必要なものだけを保管することを強くお勧めします。
メタデータタイプ | フィールド名 | 説明 |
---|---|---|
User Information(ユーザー情報) | user_metadata | ユーザーの主要な機能性に影響しない設定などのユーザー属性を保管します。このデータは、Management APIを使ってフォームを作成すると、ログイン済みのユーザーが編集できるため、安全なデータ保管場所としては使用できません。 |
Access Information(アクセス情報) | app_metadata | 権限、Auth0プラン、外部IDなど、ユーザーの機能へのアクセスに影響する情報を保管します。このデータはユーザーが編集できないため、このフィールドに保管できる情報には制約があります。 |
Application Information(アプリケーション情報) | Client オブジェクトのclient_metadata 、ルールのcontext.clientMetadata 、ログイン後アクションのevent.client.metadata 。 | アプリケーション(OIDC OAuth2の用語ではクライアント)に関する情報を保管します。たとえば、アプリケーションのホームページのURL(Auth0がアプリケーション設定で指定しない任意の値)です。 |
メタデータフィールド名
使用できる文字
フィールド名に.
(ドット)または$
(ドル記号)の文字を含めてはいけません。
たとえば、以下は許可されません。
動的フィールド名
フィールド名は静的である必要があります。動的フィールド名は、インデックス作成の効率を低下させ、検索クエリのパフォーマンスを劣化させます。静的スキーマは、検索、操作、作業が容易です。 以下のようにするのではなく、名前の衝突
app_metadata
フィールドとルートプロファイルフィールドに同一の名前を使用することは避けてください。app_metadata
フィールドは、ルールとアクションの両方でルートプロファイルにマージされるため、ルートプロファイルフィールドが上書きされる可能性があります。
たとえば、ユーザーのルートプロファイルに( IDプロバイダーから返される)groups
フィールドがあり、app_metadata
内にもgroups
フィールドがある場合、ユーザーのプロファイルは次のようになる可能性があります。
groups
フィールドを読み込む際、以下を返します:["internal-group-1", "internal-group-2"]
メタデータのデータ型
メタデータフィールドはすべてのJSON互換データ型をサポートします。- 文字列
- 数値
- 配列
- オブジェクト
user.user_metadata.age = "23"
)すると同時に、別のユーザー値を数値として保存する(user.user_metadata.age = 23
)と、データを取得する際に問題が発生する可能性があります。
制限と制約
レート制限
ログイン時にルールまたはアクションを使用してメタデータを更新すると、テナントのレート制限が適用されます。詳細については、「Management APIエンドポイントレート制限」をお読みください。メタデータにはユーザー認証に関連するデータだけを保管します。Auth0のストレージ・検索機能は、検索・更新の頻度があまり高くないユースケースを想定して設計されています。ユーザーのプロファイル関連の詳細なデータを維持したい場合は、外部システムで行ってください。そのシステムで生成されるユーザーの識別子を、Auth0にメタデータフィールドとして保存できます。
サイズ制限とストレージ
- ユーザー検索エンドポイントでインデックス作成、クエリ、返却できるユーザーデータには1ユーザーあたり1MBの制限があります。ユーザープロファイルが1MBより大きい場合、
app_metadata
およびuser_metadata
内で256文字より多いすべての属性値は、検索できず、検索結果に返されません。ユーザープロファイルがこれらの大きな値を省いてもなお1MBを超える場合、そのユーザーのapp_metadata
およびuser_metadata
属性は検索不可または返却不可となります。Auth0は、ユーザープロファイルが省略後もなお1MBを超える場合をwum
イベントコードの下でキャプチャし、ログに記録します。オーバーサイズのユーザープロファイルについては、すべてのメタデータ属性を取得するために、ユーザー取得エンドポイントを使用する必要があります。 user_metadata
フィールドをAuthentication APIのサインアップエンドポイントを使って設定する際には、それぞれの値が500文字を超えない文字列フィールドを最大10個含めることができます。カスタムサインアッププロセスでのメタデータの扱いの例については、「カスタムサインアップ」をお読みください。client_metadata
フィールドには最大10個のキーを含めることができます。そのキーと値のそれぞれの最大長は255文字で、UTF-8の特殊文字を含むことはできません。
制限
app_metadata
フィールドには、以下のいずれのプロパティも含めてはいけません。
__tenant
_id
blocked
clientID
created_at
email_verified
email
globalClientID
global_client_id
identities
lastIP
lastLogin
loginsCount
metadata
multifactor_last_modified
multifactor
updated_at
user_id