For OpenID Connect, scope can be used to request that specific sets of information be made available as OpenID Connect Claims Values. This document describes only the scope values used by OpenID Connect.
OpenID Connect allows additional scope values to be defined and used. Scope values used that are not understood by an implementation SHOULD be ignored.
OpenID Connect Claims requested by the following scope are treated by Authorization Servers as Voluntary Claims.
OpenID Connect defines the following OpenID Connect Scope values:
Scope | Claims |
---|---|
email, email_verified | |
address | address |
profile | name, family_name, given_name, middle_name, nickname, preferred_username, profile, picture, website, gender, birthdate, zoneinfo, locale, updated_at |
phone | phone_number, phone_number_verified |
openid | sub, auth_time, acr |
Properties of the Claims being requested MAY also be specified.
Support for the claims parameter is OPTIONAL. Should an OP not support this parameter and an RP uses it, the OP SHOULD return a set of Claims to the RP that it believes would be useful to the RP and the End-User using whatever heuristics it believes are appropriate. The claims_parameter_supported Discovery result indicates whether the OP supports this parameter.
The claims parameter value is represented in an OAuth 2.0 request as UTF-8 encoded JSON (which ends up being form-urlencoded when passed as an OAuth parameter). When used in a Request Object value, per Section 6.1, the JSON is used as the value of the claims member.
The top-level members of the OpenID Connect Claims request JSON Object are:
Other members MAY be present. Any members used that are not understood MUST be ignored.
An example Claims request is as follows:
{ "userinfo": { "given_name": {"essential": true}, "nickname": null, "email": {"essential": true}, "email_verified": {"essential": true}, "picture": null, "http://example.info/claims/groups": null }, "id_token": { "auth_time": {"essential": true}, "acr": {"values": ["urn:mace:incommon:iap:silver"] } } }
Note that a Claim that is not in the OpenID Connect Standard Claims defined in Section 5.1, the (example) http://example.info/claims/groups Claim, is being requested. Using the claims parameter is the only way to request Claims outside the OpenID Connect Standard Claims. It is also the only way to request specific combinations of the OpenID Connect Standard Claims that cannot be specified using scope values.