oidcclaims

package
v1.0.7 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 2, 2024 License: Apache-2.0 Imports: 5 Imported by: 0

Documentation

Overview

Package oidcclaims allows reading of claims including Standard Claims.

Index

Constants

This section is empty.

Variables

View Source
var (
	// ErrNoStandardClaims is returned when no Standard Claims have been set.
	ErrNoStandardClaims = errors.New("no Standard Claims found")
)

Functions

func Resource

func Resource(claims *Claims) (*auditv1.Resource, error)

Resource returned based on a set of claims.

Types

type Address

type Address struct {
	// Full mailing address, formatted for display or use on a mailing label. This field MAY contain multiple lines, separated by newlines.
	// Newlines can be represented either as a carriage return/line feed pair ("\r\n") or as a single line feed character ("\n").
	Formatted string `json:"formatted,omitempty"`
	// Full street address component, which MAY include house number, street name, Post Office Box, and multi-line extended street address
	// information. This field MAY contain multiple lines, separated by newlines. Newlines can be represented either as a carriage return/line
	// feed pair ("\r\n") or as a single line feed character ("\n").
	StreetAddress string `json:"street_address,omitempty"`
	// City or locality component.
	Locality string `json:"locality,omitempty"`
	// State, province, prefecture, or region component.
	Region string `json:"region,omitempty"`
	// Zip code or postal code component.
	PostalCode string `json:"postal_code,omitempty"`
	// Country name component.
	Country string `json:"country,omitempty"`
}

Address represents a physical mailing address. It's defined at https://openid.net/specs/openid-connect-core-1_0.html#AddressClaim.

type Claims

type Claims struct {
	*Standard
	All map[string]interface{}
}

Claims about a User.

func (*Claims) Resource

func (c *Claims) Resource() (*auditv1.Resource, error)

Resource created by using Claims.

func (*Claims) UnmarshalJSON

func (c *Claims) UnmarshalJSON(data []byte) error

UnmarshalJSON decodes Claims.

type Standard

type Standard struct {
	// Subject - Identifier for the End-User at the Issuer.
	Sub string `json:"sub,omitempty"`
	// End-User's full name in displayable form including all name parts, possibly including titles and suffixes, ordered according to the
	// End-User's locale and preferences.
	Name string `json:"name,omitempty"`
	// Given name(s) or first name(s) of the End-User. Note that in some cultures, people can have multiple given names; all can be present, with
	// the names being separated by space characters.
	GivenName string `json:"given_name,omitempty"`
	// Surname(s) or last name(s) of the End-User. Note that in some cultures, people can have multiple family names or no family name; all can
	// be present, with the names being separated by space characters.
	FamilyName string `json:"family_name,omitempty"`
	// Middle name(s) of the End-User. Note that in some cultures, people can have multiple middle names; all can be present, with the names
	// being separated by space characters. Also note that in some cultures, middle names are not used.
	MiddleName string `json:"middle_name,omitempty"`
	// Casual name of the End-User that may or may not be the same as the given_name. For instance, a nickname value of Mike might be returned
	// alongside a given_name value of Michael.
	Nickname string `json:"nickname,omitempty"`
	// Shorthand name by which the End-User wishes to be referred to at the RP, such as janedoe or j.doe. This value MAY be any valid JSON string
	// including special characters such as @, /, or whitespace. The RP MUST NOT rely upon this value being unique, as discussed in Section 5.7.
	PreferredUsername string `json:"preferred_username,omitempty"`
	// URL of the End-User's profile page. The contents of this Web page SHOULD be about the End-User.
	Profile string `json:"profile,omitempty"`
	// URL of the End-User's profile picture. This URL MUST refer to an image file (for example, a PNG, JPEG, or GIF image file), rather than to
	// a Web page containing an image. Note that this URL SHOULD specifically reference a profile photo of the End-User suitable for displaying
	// when describing the End-User, rather than an arbitrary photo taken by the End-User.
	Picture string `json:"picture,omitempty"`
	// URL of the End-User's Web page or blog. This Web page SHOULD contain information published by the End-User or an organization that the
	// End-User is affiliated with.
	Website string `json:"website,omitempty"`
	// End-User's preferred e-mail address. Its value MUST conform to the RFC 5322 [RFC5322] addr-spec syntax. The RP MUST NOT rely upon this
	// value being unique, as discussed in Section 5.7.
	Email string `json:"email,omitempty"`
	// True if the End-User's e-mail address has been verified; otherwise false. When this Claim Value is true, this means that the OP took
	// affirmative steps to ensure that this e-mail address was controlled by the End-User at the time the verification was performed. The means
	// by which an e-mail address is verified is context-specific, and dependent upon the trust framework or contractual agreements within which
	// the parties are operating.
	EmailVerified bool `json:"email_verified,omitempty"`
	// 	End-User's gender. Values defined by this specification are female and male. Other values MAY be used when neither of the defined values
	//	are applicable.
	Gender string `json:"gender,omitempty"`
	// End-User's birthday, represented as an ISO 8601:2004 [ISO8601‑2004] YYYY-MM-DD format. The year MAY be 0000, indicating that it is
	// omitted. To represent only the year, YYYY format is allowed. Note that depending on the underlying platform's date related function,
	// providing just year can result in varying month and day, so the implementers need to take this factor into account to correctly process
	// the dates.
	Birthdate string `json:"birthday,omitempty"`
	// String from zoneinfo [zoneinfo] time zone database representing the End-User's time zone. For example, Europe/Paris or
	// America/Los_Angeles.
	Zoneinfo string `json:"zoneinfo,omitempty"`
	// End-User's locale, represented as a BCP47 [RFC5646] language tag. This is typically an ISO 639-1 Alpha-2 [ISO639‑1] language code in
	// lowercase and an ISO 3166-1 Alpha-2 [ISO3166‑1] country code in uppercase, separated by a dash. For example, en-US or fr-CA. As a
	// compatibility note, some implementations have used an underscore as the separator rather than a dash, for example, en_US; Relying Parties
	// MAY choose to accept this locale syntax as well.
	Locale string `json:"locale,omitempty"`
	// End-User's preferred telephone number. E.164 [E.164] is RECOMMENDED as the format of this Claim, for example, +1 (425) 555-1212 or
	// +56 (2) 687 2400. If the phone number contains an extension, it is RECOMMENDED that the extension be represented using the
	// RFC 3966 [RFC3966] extension syntax, for example, +1 (604) 555-1234;ext=5678.
	PhoneNumber string `json:"phone_number,omitempty"`
	// True if the End-User's phone number has been verified; otherwise false. When this Claim Value is true, this means that the OP took
	// affirmative steps to ensure that this phone number was controlled by the End-User at the time the verification was performed. The means by
	// which a phone number is verified is context-specific, and dependent upon the trust framework or contractual agreements within which the
	// parties are operating. When true, the phone_number Claim MUST be in E.164 format and any extensions MUST be represented in RFC 3966
	// format.
	PhoneNumberVerified bool `json:"phone_number_verified,omitempty"`
	// End-User's preferred postal address. The value of the address member is a JSON [RFC4627] structure containing some or all of the members
	// defined in Section 5.1.1.
	Address *Address `json:"address,omitempty"`
	// Time the End-User's information was last updated. Its value is a JSON number representing the number of seconds from 1970-01-01T0:0:0Z as
	// measured in UTC until the date/time.
	UpdatedAt int64 `json:"updated_at,omitempty"`
}

Standard are defined by OpenID Connect Core in https://openid.net/specs/openid-connect-core-1_0.html#StandardClaims.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL