Auth0 では、特定の種類の情報を保存するために使用されるメタデータを 3 種類に分類しています。
Auth0 のメタデータは安全なデータストアではないため、高リスクのシークレットや、社会保障番号やクレジットカード番号のような個人を特定できる情報 (PII) などの機密情報の保存には使用しないでください。Auth0 のお客様には、メタデータに保存するデータを十分に評価し、アイデンティティおよびアクセス管理の目的に必要なものだけを保存することを強く推奨します。
フィールド名には、. (ドット) または$ (ドル記号) を含めることはできません。
たとえば、次のような名前は使用できません。
ただし、次のように展開することもできます。
フィールド名は固定にするべきです。動的なフィールド名はインデックス効率を下げ、検索クエリの性能低下を招きます。スキーマは固定されているほうが、検索や操作、扱いがしやすくなります。
次のようにするのではなく:
次を行ってください:
app_metadata フィールドとルートプロファイルフィールドに同じ名前を使用しないでください。app_metadata フィールドは、ルールと Actions の両方でルートプロファイルにマージされるため、ルートプロファイルフィールドを上書きしてしまう可能性があります。
たとえば、ユーザーのルートプロファイルに groups フィールド ( から返されるもの) があり、app_metadata 内にも groups フィールドがある場合、プロファイルは次のようになります。
Rule で ユーザーオブジェクト の groups フィールドを参照すると、["internal-group-1", "internal-group-2"] が返されます。
メタデータフィールドでは、JSON互換のデータ型をすべてサポートしています。
- String
- Number
- Array
- Object
データ型はユーザー間で統一するようにしてください。たとえば、あるユーザーでは値を文字列として保存し (user.user_metadata.age = "23")、別のユーザーでは数値として保存している場合 (user.user_metadata.age = 23)、データの取得時に問題が発生する可能性があります。
ルール または Actions を使ってログイン時にメタデータを更新する場合は、テナントのレート制限が適用されます。詳しくは、Management API Endpoint Rate Limits を参照してください。
メタデータには、ユーザー認証に関するデータのみを保存するようにしてください。Auth0 の保存機能と検索機能は、大量の検索や頻繁な更新を必要としないユースケース向けに設計されています。ユーザーに関する詳細なプロファイルデータを保持する必要がある場合は、外部システムで管理してください。そのシステム上のユーザー識別子を、Auth0 のメタデータフィールドとして保存できます。
- user search endpoint でインデックス化、クエリ、および返却できるユーザーデータには、ユーザーごとに 1 MB の上限があります。ユーザープロファイルが 1 MB を超える場合、
app_metadata と user_metadata 内の 256 文字を超える属性値は検索できず、検索結果にも返されません。これらの大きな値を除外してもユーザープロファイルが 1 MB を超える場合、そのユーザーの app_metadata と user_metadata の属性は、いずれも検索も返却もできません。Auth0 は、大きな値を除外してもユーザープロファイルが 1 MB を超えている事例を、wum のイベントコードで記録します。サイズ超過のユーザープロファイルについてすべてのメタデータ属性を取得するには、ユーザー取得エンドポイントを使用する必要があります。
- Auth0 Authentication API のSignup エンドポイントを使用して
user_metadata フィールドを設定する場合、各値が 500 文字以下の文字列フィールドを最大 10 個まで含めることができます。カスタムのサインアッププロセスでメタデータを扱う例については、Custom Signupを参照してください。
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