family_ name
Registry Context
family_name is the End-User's surname or last name claim. OpenID Connect Core defines it as a string and notes that cultures can have multiple family names or no family name.
Technical Summary
OpenID Connect Core Section 5.1 defines family_name as a Standard Claim of type string. Multilingual/script-specific representations can use language-tagged claim names such as family_name#ja-Kana-JP under the Claims Languages and Scripts rules.
When Used
Used in UserInfo Responses or ID Tokens to convey the End-User's surname or last name information.
Normative Requirements
Requests
openid-connect-core-1_0 - Section 5.5.2
request languages and scripts for family_name by including Claim Names containing #-separated BCP47 language tags in the Claims request.
Condition: within a request for individual Claims
requested languages and scripts for particular Claims MAY be requested by including Claim Names that contain #-separated BCP47 language tags
Implementations
openid-connect-core-1_0 - Section 5.2
interpret language tag values supplied in family_name Claim Names case-insensitively.
Condition: when processing BCP47 language tag values in language-tagged Claim Names
implementations SHOULD interpret the language tag values supplied in a case-insensitive manner.
Unspecified actor
openid-connect-core-1_0 - Section 5.2
make language tag values for language-tagged family_name Claims only as specific as necessary.
Condition: when choosing BCP47 language tag values for Claims
language tag values for Claims SHOULD only be as specific as necessary.
openid-connect-core-1_0 - Section 5.2
spell language tag values used in language-tagged family_name Claim Names using the character case registered in the IANA Language Subtag Registry.
Condition: when using BCP47 language tags in Claim Names such as family_name#ja-Kana-JP
it is strongly RECOMMENDED that language tag values used in Claim Names be spelled using the character case
openid-connect-core-1_0 - Section 5.2
represent human-readable family_name Claim Values in multiple languages and scripts.
Condition: when treating family_name as a human-readable Claim Value
Human-readable Claim Values ... MAY be represented in multiple languages and scripts.
OP
openid-connect-core-1_0 - Section 5.5.2
use a language tag in the Claim Name for returned family_name versions that do not use the requested language and script.
Condition: if the OP receives a request for human-readable Claims in a language and script it does not have
any versions of those Claims returned that do not use the requested language and script SHOULD use a language tag
OPs
openid-connect-core-1_0 - Section 5.2
try to match requested family_name Claim locales with Claims the OP has.
Condition: where possible, when a Client requests a locale for a human-readable Claim such as family_name
Where possible, OPs SHOULD try to match requested Claim locales with Claims it has.
Validation Guidance
Accept family_name as a JSON string when present; Section 5.1 defines the member type as string, but does not state this with an uppercase BCP 14 keyword.
For language-tagged family_name variants, accept BCP47 tag casing case-insensitively.
When generating language-tagged family_name claim names, prefer registered BCP47 casing and avoid tags more specific than needed.
When fulfilling an individual claim request for family_name in a requested language/script, try to match available claim locales and tag fallback variants that do not use the requested language/script.
Reference
Details
- Entry Id
family_name - Claim Name
family_name - Claim Description
Surname(s) or last name(s)- Change Controller
OpenID_Foundation_ Artifact_ Binding_ Working_ Group - Reference
OpenID Connect Core 1.0 - Section 5.1