Documentation
¶
Index ¶
- type Client
- type ConsentRequest
- type ConsentRequestSessionData
- type CreateRequest
- type FlushInactiveOAuth2TokensRequest
- type GenericError
- type HandledConsentRequest
- type HandledLoginRequest
- type Introspection
- type LoginRequest
- type LogoutRequest
- type OpenIDConnectContext
- type PreviousConsentSession
- type RequestDeniedError
- type RequestHandlerResponse
- type SwaggerHealthStatus
- type SwaggerJSONWebKey
- type SwaggerJSONWebKeySet
- type SwaggerNotReadyStatus
- type SwaggerOAuthTokenResponse
- type SwaggerVersion
- type Swaggeroauth2TokenResponse
- type SwaggeruserinfoResponsePayload
- type WellKnown
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Client ¶
type Client struct { // AllowedCORSOrigins are one or more URLs (scheme://host[:port]) which are allowed to make CORS requests // to the /oauth/token endpoint. If this array is empty, the sever's CORS origin configuration (`CORS_ALLOWED_ORIGINS`) // will be used instead. If this array is set, the allowed origins are appended to the server's CORS origin configuration. // Be aware that environment variable `CORS_ENABLED` MUST be set to `true` for this to work. AllowedCORSOrigins []string `json:"allowed_cors_origins"` // Audience is a whitelist defining the audiences this client is allowed to request tokens for. An audience limits // the applicability of an OAuth 2.0 Access Token to, for example, certain API endpoints. The value is a list // of URLs. URLs MUST NOT contain whitespaces. Audience []string `json:"audience"` // Boolean value specifying whether the RP requires that a sid (session ID) Claim be included in the Logout // Token to identify the RP session with the OP when the backchannel_logout_uri is used. // If omitted, the default value is false. BackChannelLogoutSessionRequired bool `json:"backchannel_logout_session_required,omitempty"` // RP URL that will cause the RP to log itself out when sent a Logout Token by the OP. BackChannelLogoutURI string `json:"backchannel_logout_uri,omitempty"` // ClientID is the id for this client. ClientID string `json:"client_id,omitempty"` // ClientURI is an URL string of a web page providing information about the client. // If present, the server SHOULD display this URL to the end-user in // a clickable fashion. ClientURI string `json:"client_uri,omitempty"` // Contacts is a array of strings representing ways to contact people responsible // for this client, typically email addresses. Contacts []string `json:"contacts"` // CreatedAt returns the timestamp of the client's creation. // Format: date-time CreatedAt strfmt.DateTime `json:"created_at,omitempty"` // Boolean value specifying whether the RP requires that iss (issuer) and sid (session ID) query parameters be // included to identify the RP session with the OP when the frontchannel_logout_uri is used. // If omitted, the default value is false. FrontChannelLogoutSessionRequired bool `json:"frontchannel_logout_session_required,omitempty"` // RP URL that will cause the RP to log itself out when rendered in an iframe by the OP. An iss (issuer) query // parameter and a sid (session ID) query parameter MAY be included by the OP to enable the RP to validate the // request and to determine which of the potentially multiple sessions is to be logged out; if either is // included, both MUST be. FrontChannelLogoutURI string `json:"frontchannel_logout_uri,omitempty"` // GrantTypes is an array of grant types the client is allowed to use. // Pattern: client_credentials|authorization_code|implicit|refresh_token GrantTypes []string `json:"grant_types"` // URL for the Client's JSON Web Key Set [JWK] document. If the Client signs requests to the Server, it contains // the signing key(s) the Server uses to validate signatures from the Client. The JWK Set MAY also contain the // Client's encryption keys(s), which are used by the Server to encrypt responses to the Client. When both signing // and encryption keys are made available, a use (Key Use) parameter value is REQUIRED for all keys in the referenced // JWK Set to indicate each key's intended usage. Although some algorithms allow the same key to be used for both // signatures and encryption, doing so is NOT RECOMMENDED, as it is less secure. The JWK x5c parameter MAY be used // to provide X.509 representations of keys provided. When used, the bare key values MUST still be present and MUST // match those in the certificate. JSONWebKeysURI string `json:"jwks_uri,omitempty"` // LogoURI is an URL string that references a logo for the client. LogoURI string `json:"logo_uri,omitempty"` // Name is the human-readable string name of the client to be presented to the // end-user during authorization. Name string `json:"client_name,omitempty"` // Owner is a string identifying the owner of the OAuth 2.0 Client. Owner string `json:"owner,omitempty"` // PolicyURI is a URL string that points to a human-readable privacy policy document // that describes how the deployment organization collects, uses, // retains, and discloses personal data. PolicyURI string `json:"policy_uri,omitempty"` // Array of URLs supplied by the RP to which it MAY request that the End-User's User Agent be redirected using the // post_logout_redirect_uri parameter after a logout has been performed. PostLogoutRedirectURIs []string `json:"post_logout_redirect_uris"` // RedirectURIs is an array of allowed redirect urls for the client, for example http://mydomain/oauth/callback . RedirectURIs []string `json:"redirect_uris"` // JWS [JWS] alg algorithm [JWA] that MUST be used for signing Request Objects sent to the OP. All Request Objects // from this Client MUST be rejected, if not signed with this algorithm. RequestObjectSigningAlgorithm string `json:"request_object_signing_alg,omitempty"` // Array of request_uri values that are pre-registered by the RP for use at the OP. Servers MAY cache the // contents of the files referenced by these URIs and not retrieve them at the time they are used in a request. // OPs can require that request_uri values used be pre-registered with the require_request_uri_registration // discovery parameter. RequestURIs []string `json:"request_uris"` // ResponseTypes is an array of the OAuth 2.0 response type strings that the client can // use at the authorization endpoint. // Pattern: id_token|code|token ResponseTypes []string `json:"response_types"` // Scope is a string containing a space-separated list of scope values (as // described in Section 3.3 of OAuth 2.0 [RFC6749]) that the client // can use when requesting access tokens. // Pattern: ([a-zA-Z0-9\.\*]+\s?)+ Scope string `json:"scope,omitempty"` // Secret is the client's secret. The secret will be included in the create request as cleartext, and then // never again. The secret is stored using BCrypt so it is impossible to recover it. Tell your users // that they need to write the secret down as it will not be made available again. Secret string `json:"client_secret,omitempty"` // SecretExpiresAt is an integer holding the time at which the client // secret will expire or 0 if it will not expire. The time is // represented as the number of seconds from 1970-01-01T00:00:00Z as // measured in UTC until the date/time of expiration. // // This feature is currently not supported and it's value will always // be set to 0. SecretExpiresAt int64 `json:"client_secret_expires_at,omitempty"` // URL using the https scheme to be used in calculating Pseudonymous Identifiers by the OP. The URL references a // file with a single JSON array of redirect_uri values. SectorIdentifierURI string `json:"sector_identifier_uri,omitempty"` // SubjectType requested for responses to this Client. The subject_types_supported Discovery parameter contains a // list of the supported subject_type values for this server. Valid types include `pairwise` and `public`. SubjectType string `json:"subject_type,omitempty"` // TermsOfServiceURI is a URL string that points to a human-readable terms of service // document for the client that describes a contractual relationship // between the end-user and the client that the end-user accepts when // authorizing the client. TermsOfServiceURI string `json:"tos_uri,omitempty"` // Requested Client Authentication method for the Token Endpoint. The options are client_secret_post, // client_secret_basic, private_key_jwt, and none. TokenEndpointAuthMethod string `json:"token_endpoint_auth_method,omitempty"` // UpdatedAt returns the timestamp of the last update. // Format: date-time UpdatedAt strfmt.DateTime `json:"updated_at,omitempty"` // JWS alg algorithm [JWA] REQUIRED for signing UserInfo Responses. If this is specified, the response will be JWT // [JWT] serialized, and signed using JWS. The default, if omitted, is for the UserInfo Response to return the Claims // as a UTF-8 encoded JSON object using the application/json content-type. UserinfoSignedResponseAlg string `json:"userinfo_signed_response_alg,omitempty"` // jwks Jwks *SwaggerJSONWebKeySet `json:"jwks,omitempty"` }
Client Client represents an OAuth 2.0 Client. swagger:model Client
func (*Client) MarshalBinary ¶
MarshalBinary interface implementation
func (*Client) UnmarshalBinary ¶
UnmarshalBinary interface implementation
type ConsentRequest ¶
type ConsentRequest struct { // ACR represents the Authentication AuthorizationContext Class Reference value for this authentication session. You can use it // to express that, for example, a user authenticated using two factor authentication. ACR string `json:"acr,omitempty"` // Challenge is the identifier ("authorization challenge") of the consent authorization request. It is used to // identify the session. Challenge string `json:"challenge,omitempty"` // Context contains arbitrary information set by the login endpoint or is empty if not set. Context map[string]interface{} `json:"context,omitempty"` // LoginChallenge is the login challenge this consent challenge belongs to. It can be used to associate // a login and consent request in the login & consent app. LoginChallenge string `json:"login_challenge,omitempty"` // LoginSessionID is the login session ID. If the user-agent reuses a login session (via cookie / remember flag) // this ID will remain the same. If the user-agent did not have an existing authentication session (e.g. remember is false) // this will be a new random value. This value is used as the "sid" parameter in the ID Token and in OIDC Front-/Back- // channel logout. It's value can generally be used to associate consecutive login requests by a certain user. LoginSessionID string `json:"login_session_id,omitempty"` // RequestURL is the original OAuth 2.0 Authorization URL requested by the OAuth 2.0 client. It is the URL which // initiates the OAuth 2.0 Authorization Code or OAuth 2.0 Implicit flow. This URL is typically not needed, but // might come in handy if you want to deal with additional request parameters. RequestURL string `json:"request_url,omitempty"` // RequestedScope contains the access token audience as requested by the OAuth 2.0 Client. RequestedAudience []string `json:"requested_access_token_audience"` // RequestedScope contains the OAuth 2.0 Scope requested by the OAuth 2.0 Client. RequestedScope []string `json:"requested_scope"` // Skip, if true, implies that the client has requested the same scopes from the same user previously. // If true, you must not ask the user to grant the requested scopes. You must however either allow or deny the // consent request using the usual API call. Skip bool `json:"skip,omitempty"` // Subject is the user ID of the end-user that authenticated. Now, that end user needs to grant or deny the scope // requested by the OAuth 2.0 client. Subject string `json:"subject,omitempty"` // client Client *Client `json:"client,omitempty"` // oidc context OidcContext *OpenIDConnectContext `json:"oidc_context,omitempty"` }
ConsentRequest Contains information on an ongoing consent request. swagger:model ConsentRequest
func (*ConsentRequest) MarshalBinary ¶
func (m *ConsentRequest) MarshalBinary() ([]byte, error)
MarshalBinary interface implementation
func (*ConsentRequest) UnmarshalBinary ¶
func (m *ConsentRequest) UnmarshalBinary(b []byte) error
UnmarshalBinary interface implementation
type ConsentRequestSessionData ¶
type ConsentRequestSessionData struct { // AccessToken sets session data for the access and refresh token, as well as any future tokens issued by the // refresh grant. Keep in mind that this data will be available to anyone performing OAuth 2.0 Challenge Introspection. // If only your services can perform OAuth 2.0 Challenge Introspection, this is usually fine. But if third parties // can access that endpoint as well, sensitive data from the session might be exposed to them. Use with care! AccessToken map[string]interface{} `json:"access_token,omitempty"` // IDToken sets session data for the OpenID Connect ID token. Keep in mind that the session'id payloads are readable // by anyone that has access to the ID Challenge. Use with care! IDToken map[string]interface{} `json:"id_token,omitempty"` }
ConsentRequestSessionData Used to pass session data to a consent request. swagger:model ConsentRequestSessionData
func (*ConsentRequestSessionData) MarshalBinary ¶
func (m *ConsentRequestSessionData) MarshalBinary() ([]byte, error)
MarshalBinary interface implementation
func (*ConsentRequestSessionData) UnmarshalBinary ¶
func (m *ConsentRequestSessionData) UnmarshalBinary(b []byte) error
UnmarshalBinary interface implementation
type CreateRequest ¶
type CreateRequest struct { // The algorithm to be used for creating the key. Supports "RS256", "ES512", "HS512", and "HS256" // Required: true Algorithm *string `json:"alg"` // The kid of the key to be created // Required: true KeyID *string `json:"kid"` // The "use" (public key use) parameter identifies the intended use of // the public key. The "use" parameter is employed to indicate whether // a public key is used for encrypting data or verifying the signature // on data. Valid values are "enc" and "sig". // Required: true Use *string `json:"use"` }
CreateRequest create request swagger:model createRequest
func (*CreateRequest) MarshalBinary ¶
func (m *CreateRequest) MarshalBinary() ([]byte, error)
MarshalBinary interface implementation
func (*CreateRequest) UnmarshalBinary ¶
func (m *CreateRequest) UnmarshalBinary(b []byte) error
UnmarshalBinary interface implementation
type FlushInactiveOAuth2TokensRequest ¶
type FlushInactiveOAuth2TokensRequest struct { // NotAfter sets after which point tokens should not be flushed. This is useful when you want to keep a history // of recently issued tokens for auditing. // Format: date-time NotAfter strfmt.DateTime `json:"notAfter,omitempty"` }
FlushInactiveOAuth2TokensRequest flush inactive o auth2 tokens request swagger:model FlushInactiveOAuth2TokensRequest
func (*FlushInactiveOAuth2TokensRequest) MarshalBinary ¶
func (m *FlushInactiveOAuth2TokensRequest) MarshalBinary() ([]byte, error)
MarshalBinary interface implementation
func (*FlushInactiveOAuth2TokensRequest) UnmarshalBinary ¶
func (m *FlushInactiveOAuth2TokensRequest) UnmarshalBinary(b []byte) error
UnmarshalBinary interface implementation
type GenericError ¶
type GenericError struct { // Code represents the error status code (404, 403, 401, ...). Code int64 `json:"status_code,omitempty"` // Debug contains debug information. This is usually not available and has to be enabled. Debug string `json:"debug,omitempty"` // Description contains further information on the nature of the error. Description string `json:"error_description,omitempty"` // Name is the error name. // Required: true Name *string `json:"error"` }
GenericError Error response
Error responses are sent when an error (e.g. unauthorized, bad request, ...) occurred. swagger:model genericError
func (*GenericError) MarshalBinary ¶
func (m *GenericError) MarshalBinary() ([]byte, error)
MarshalBinary interface implementation
func (*GenericError) UnmarshalBinary ¶
func (m *GenericError) UnmarshalBinary(b []byte) error
UnmarshalBinary interface implementation
type HandledConsentRequest ¶
type HandledConsentRequest struct { // GrantedAudience sets the audience the user authorized the client to use. Should be a subset of `requested_access_token_audience`. GrantedAudience []string `json:"grant_access_token_audience"` // GrantScope sets the scope the user authorized the client to use. Should be a subset of `requested_scope`. GrantedScope []string `json:"grant_scope"` // Remember, if set to true, tells ORY Hydra to remember this consent authorization and reuse it if the same // client asks the same user for the same, or a subset of, scope. Remember bool `json:"remember,omitempty"` // RememberFor sets how long the consent authorization should be remembered for in seconds. If set to `0`, the // authorization will be remembered for the duration of the browser session (using a session cookie). RememberFor int64 `json:"remember_for,omitempty"` // session Session *ConsentRequestSessionData `json:"session,omitempty"` }
HandledConsentRequest The request payload used to accept a consent request. swagger:model HandledConsentRequest
func (*HandledConsentRequest) MarshalBinary ¶
func (m *HandledConsentRequest) MarshalBinary() ([]byte, error)
MarshalBinary interface implementation
func (*HandledConsentRequest) UnmarshalBinary ¶
func (m *HandledConsentRequest) UnmarshalBinary(b []byte) error
UnmarshalBinary interface implementation
type HandledLoginRequest ¶
type HandledLoginRequest struct { // ACR sets the Authentication AuthorizationContext Class Reference value for this authentication session. You can use it // to express that, for example, a user authenticated using two factor authentication. ACR string `json:"acr,omitempty"` // Context is an optional object which can hold arbitrary data. The data will be made available when fetching the // consent request under the "context" field. This is useful in scenarios where login and consent endpoints share // data. Context map[string]interface{} `json:"context,omitempty"` // ForceSubjectIdentifier forces the "pairwise" user ID of the end-user that authenticated. The "pairwise" user ID refers to the // (Pairwise Identifier Algorithm)[http://openid.net/specs/openid-connect-core-1_0.html#PairwiseAlg] of the OpenID // Connect specification. It allows you to set an obfuscated subject ("user") identifier that is unique to the client. // // Please note that this changes the user ID on endpoint /userinfo and sub claim of the ID Token. It does not change the // sub claim in the OAuth 2.0 Introspection. // // Per default, ORY Hydra handles this value with its own algorithm. In case you want to set this yourself // you can use this field. Please note that setting this field has no effect if `pairwise` is not configured in // ORY Hydra or the OAuth 2.0 Client does not expect a pairwise identifier (set via `subject_type` key in the client's // configuration). // // Please also be aware that ORY Hydra is unable to properly compute this value during authentication. This implies // that you have to compute this value on every authentication process (probably depending on the client ID or some // other unique value). // // If you fail to compute the proper value, then authentication processes which have id_token_hint set might fail. ForceSubjectIdentifier string `json:"force_subject_identifier,omitempty"` // Remember, if set to true, tells ORY Hydra to remember this user by telling the user agent (browser) to store // a cookie with authentication data. If the same user performs another OAuth 2.0 Authorization Request, he/she // will not be asked to log in again. Remember bool `json:"remember,omitempty"` // RememberFor sets how long the authentication should be remembered for in seconds. If set to `0`, the // authorization will be remembered for the duration of the browser session (using a session cookie). RememberFor int64 `json:"remember_for,omitempty"` // Subject is the user ID of the end-user that authenticated. // Required: true Subject *string `json:"subject"` }
HandledLoginRequest HandledLoginRequest is the request payload used to accept a login request. swagger:model HandledLoginRequest
func (*HandledLoginRequest) MarshalBinary ¶
func (m *HandledLoginRequest) MarshalBinary() ([]byte, error)
MarshalBinary interface implementation
func (*HandledLoginRequest) UnmarshalBinary ¶
func (m *HandledLoginRequest) UnmarshalBinary(b []byte) error
UnmarshalBinary interface implementation
type Introspection ¶
type Introspection struct { // Active is a boolean indicator of whether or not the presented token // is currently active. The specifics of a token's "active" state // will vary depending on the implementation of the authorization // server and the information it keeps about its tokens, but a "true" // value return for the "active" property will generally indicate // that a given token has been issued by this authorization server, // has not been revoked by the resource owner, and is within its // given time window of validity (e.g., after its issuance time and // before its expiration time). // Required: true Active *bool `json:"active"` // Audience contains a list of the token's intended audiences. Audience []string `json:"aud"` // ClientID is aclient identifier for the OAuth 2.0 client that // requested this token. ClientID string `json:"client_id,omitempty"` // Expires at is an integer timestamp, measured in the number of seconds // since January 1 1970 UTC, indicating when this token will expire. ExpiresAt int64 `json:"exp,omitempty"` // Extra is arbitrary data set by the session. Extra map[string]interface{} `json:"ext,omitempty"` // Issued at is an integer timestamp, measured in the number of seconds // since January 1 1970 UTC, indicating when this token was // originally issued. IssuedAt int64 `json:"iat,omitempty"` // IssuerURL is a string representing the issuer of this token Issuer string `json:"iss,omitempty"` // NotBefore is an integer timestamp, measured in the number of seconds // since January 1 1970 UTC, indicating when this token is not to be // used before. NotBefore int64 `json:"nbf,omitempty"` // ObfuscatedSubject is set when the subject identifier algorithm was set to "pairwise" during authorization. // It is the `sub` value of the ID Token that was issued. ObfuscatedSubject string `json:"obfuscated_subject,omitempty"` // Scope is a JSON string containing a space-separated list of // scopes associated with this token. Scope string `json:"scope,omitempty"` // Subject of the token, as defined in JWT [RFC7519]. // Usually a machine-readable identifier of the resource owner who // authorized this token. Subject string `json:"sub,omitempty"` // TokenType is the introspected token's type, for example `access_token` or `refresh_token`. TokenType string `json:"token_type,omitempty"` // Username is a human-readable identifier for the resource owner who // authorized this token. Username string `json:"username,omitempty"` }
Introspection Introspection contains an access token's session data as specified by IETF RFC 7662, see:
https://tools.ietf.org/html/rfc7662 swagger:model Introspection
func (*Introspection) MarshalBinary ¶
func (m *Introspection) MarshalBinary() ([]byte, error)
MarshalBinary interface implementation
func (*Introspection) UnmarshalBinary ¶
func (m *Introspection) UnmarshalBinary(b []byte) error
UnmarshalBinary interface implementation
type LoginRequest ¶
type LoginRequest struct { // Challenge is the identifier ("login challenge") of the login request. It is used to // identify the session. Challenge string `json:"challenge,omitempty"` // RequestURL is the original OAuth 2.0 Authorization URL requested by the OAuth 2.0 client. It is the URL which // initiates the OAuth 2.0 Authorization Code or OAuth 2.0 Implicit flow. This URL is typically not needed, but // might come in handy if you want to deal with additional request parameters. RequestURL string `json:"request_url,omitempty"` // RequestedScope contains the access token audience as requested by the OAuth 2.0 Client. RequestedAudience []string `json:"requested_access_token_audience"` // RequestedScope contains the OAuth 2.0 Scope requested by the OAuth 2.0 Client. RequestedScope []string `json:"requested_scope"` // SessionID is the login session ID. If the user-agent reuses a login session (via cookie / remember flag) // this ID will remain the same. If the user-agent did not have an existing authentication session (e.g. remember is false) // this will be a new random value. This value is used as the "sid" parameter in the ID Token and in OIDC Front-/Back- // channel logout. It's value can generally be used to associate consecutive login requests by a certain user. SessionID string `json:"session_id,omitempty"` // Skip, if true, implies that the client has requested the same scopes from the same user previously. // If true, you can skip asking the user to grant the requested scopes, and simply forward the user to the redirect URL. // // This feature allows you to update / set session information. Skip bool `json:"skip,omitempty"` // Subject is the user ID of the end-user that authenticated. Now, that end user needs to grant or deny the scope // requested by the OAuth 2.0 client. If this value is set and `skip` is true, you MUST include this subject type // when accepting the login request, or the request will fail. Subject string `json:"subject,omitempty"` // client Client *Client `json:"client,omitempty"` // oidc context OidcContext *OpenIDConnectContext `json:"oidc_context,omitempty"` }
LoginRequest Contains information on an ongoing login request. swagger:model LoginRequest
func (*LoginRequest) MarshalBinary ¶
func (m *LoginRequest) MarshalBinary() ([]byte, error)
MarshalBinary interface implementation
func (*LoginRequest) UnmarshalBinary ¶
func (m *LoginRequest) UnmarshalBinary(b []byte) error
UnmarshalBinary interface implementation
type LogoutRequest ¶
type LogoutRequest struct { // RPInitiated is set to true if the request was initiated by a Relying Party (RP), also known as an OAuth 2.0 Client. RPInitiated bool `json:"rp_initiated,omitempty"` // RequestURL is the original Logout URL requested. RequestURL string `json:"request_url,omitempty"` // SessionID is the login session ID that was requested to log out. SessionID string `json:"sid,omitempty"` // Subject is the user for whom the logout was request. Subject string `json:"subject,omitempty"` }
LogoutRequest Contains information about an ongoing logout request. swagger:model LogoutRequest
func (*LogoutRequest) MarshalBinary ¶
func (m *LogoutRequest) MarshalBinary() ([]byte, error)
MarshalBinary interface implementation
func (*LogoutRequest) UnmarshalBinary ¶
func (m *LogoutRequest) UnmarshalBinary(b []byte) error
UnmarshalBinary interface implementation
type OpenIDConnectContext ¶
type OpenIDConnectContext struct { // ACRValues is the Authentication AuthorizationContext Class Reference requested in the OAuth 2.0 Authorization request. // It is a parameter defined by OpenID Connect and expresses which level of authentication (e.g. 2FA) is required. // // OpenID Connect defines it as follows: // > Requested Authentication AuthorizationContext Class Reference values. Space-separated string that specifies the acr values // that the Authorization Server is being requested to use for processing this Authentication Request, with the // values appearing in order of preference. The Authentication AuthorizationContext Class satisfied by the authentication // performed is returned as the acr Claim Value, as specified in Section 2. The acr Claim is requested as a // Voluntary Claim by this parameter. ACRValues []string `json:"acr_values"` // Display is a string value that specifies how the Authorization Server displays the authentication and consent user interface pages to the End-User. // The defined values are: // page: The Authorization Server SHOULD display the authentication and consent UI consistent with a full User Agent page view. If the display parameter is not specified, this is the default display mode. // popup: The Authorization Server SHOULD display the authentication and consent UI consistent with a popup User Agent window. The popup User Agent window should be of an appropriate size for a login-focused dialog and should not obscure the entire window that it is popping up over. // touch: The Authorization Server SHOULD display the authentication and consent UI consistent with a device that leverages a touch interface. // wap: The Authorization Server SHOULD display the authentication and consent UI consistent with a "feature phone" type display. // // The Authorization Server MAY also attempt to detect the capabilities of the User Agent and present an appropriate display. Display string `json:"display,omitempty"` // IDTokenHintClaims are the claims of the ID Token previously issued by the Authorization Server being passed as a hint about the // End-User's current or past authenticated session with the Client. IDTokenHintClaims map[string]interface{} `json:"id_token_hint_claims,omitempty"` // LoginHint hints about the login identifier the End-User might use to log in (if necessary). // This hint can be used by an RP if it first asks the End-User for their e-mail address (or other identifier) // and then wants to pass that value as a hint to the discovered authorization service. This value MAY also be a // phone number in the format specified for the phone_number Claim. The use of this parameter is optional. LoginHint string `json:"login_hint,omitempty"` // UILocales is the End-User'id preferred languages and scripts for the user interface, represented as a // space-separated list of BCP47 [RFC5646] language tag values, ordered by preference. For instance, the value // "fr-CA fr en" represents a preference for French as spoken in Canada, then French (without a region designation), // followed by English (without a region designation). An error SHOULD NOT result if some or all of the requested // locales are not supported by the OpenID Provider. UILocales []string `json:"ui_locales"` }
OpenIDConnectContext Contains optional information about the OpenID Connect request. swagger:model OpenIDConnectContext
func (*OpenIDConnectContext) MarshalBinary ¶
func (m *OpenIDConnectContext) MarshalBinary() ([]byte, error)
MarshalBinary interface implementation
func (*OpenIDConnectContext) UnmarshalBinary ¶
func (m *OpenIDConnectContext) UnmarshalBinary(b []byte) error
UnmarshalBinary interface implementation
type PreviousConsentSession ¶
type PreviousConsentSession struct { // GrantedAudience sets the audience the user authorized the client to use. Should be a subset of `requested_access_token_audience`. GrantedAudience []string `json:"grant_access_token_audience"` // GrantScope sets the scope the user authorized the client to use. Should be a subset of `requested_scope` GrantedScope []string `json:"grant_scope"` // Remember, if set to true, tells ORY Hydra to remember this consent authorization and reuse it if the same // client asks the same user for the same, or a subset of, scope. Remember bool `json:"remember,omitempty"` // RememberFor sets how long the consent authorization should be remembered for in seconds. If set to `0`, the // authorization will be remembered indefinitely. RememberFor int64 `json:"remember_for,omitempty"` // consent request ConsentRequest *ConsentRequest `json:"consent_request,omitempty"` // session Session *ConsentRequestSessionData `json:"session,omitempty"` }
PreviousConsentSession The response used to return used consent requests same as HandledLoginRequest, just with consent_request exposed as json swagger:model PreviousConsentSession
func (*PreviousConsentSession) MarshalBinary ¶
func (m *PreviousConsentSession) MarshalBinary() ([]byte, error)
MarshalBinary interface implementation
func (*PreviousConsentSession) UnmarshalBinary ¶
func (m *PreviousConsentSession) UnmarshalBinary(b []byte) error
UnmarshalBinary interface implementation
type RequestDeniedError ¶
type RequestDeniedError struct { // code Code int64 `json:"status_code,omitempty"` // debug Debug string `json:"error_debug,omitempty"` // description Description string `json:"error_description,omitempty"` // hint Hint string `json:"error_hint,omitempty"` // name Name string `json:"error,omitempty"` }
RequestDeniedError The request payload used to accept a login or consent request. swagger:model RequestDeniedError
func (*RequestDeniedError) MarshalBinary ¶
func (m *RequestDeniedError) MarshalBinary() ([]byte, error)
MarshalBinary interface implementation
func (*RequestDeniedError) UnmarshalBinary ¶
func (m *RequestDeniedError) UnmarshalBinary(b []byte) error
UnmarshalBinary interface implementation
type RequestHandlerResponse ¶
type RequestHandlerResponse struct { // RedirectURL is the URL which you should redirect the user to once the authentication process is completed. RedirectTo string `json:"redirect_to,omitempty"` }
RequestHandlerResponse The response payload sent when accepting or rejecting a login or consent request. swagger:model RequestHandlerResponse
func (*RequestHandlerResponse) MarshalBinary ¶
func (m *RequestHandlerResponse) MarshalBinary() ([]byte, error)
MarshalBinary interface implementation
func (*RequestHandlerResponse) UnmarshalBinary ¶
func (m *RequestHandlerResponse) UnmarshalBinary(b []byte) error
UnmarshalBinary interface implementation
type SwaggerHealthStatus ¶
type SwaggerHealthStatus struct { // Status always contains "ok". Status string `json:"status,omitempty"` }
SwaggerHealthStatus swagger health status swagger:model swaggerHealthStatus
func (*SwaggerHealthStatus) MarshalBinary ¶
func (m *SwaggerHealthStatus) MarshalBinary() ([]byte, error)
MarshalBinary interface implementation
func (*SwaggerHealthStatus) UnmarshalBinary ¶
func (m *SwaggerHealthStatus) UnmarshalBinary(b []byte) error
UnmarshalBinary interface implementation
type SwaggerJSONWebKey ¶
type SwaggerJSONWebKey struct { // The "alg" (algorithm) parameter identifies the algorithm intended for // use with the key. The values used should either be registered in the // IANA "JSON Web Signature and Encryption Algorithms" registry // established by [JWA] or be a value that contains a Collision- // Resistant Name. // Required: true Alg *string `json:"alg"` // crv Crv string `json:"crv,omitempty"` // d D string `json:"d,omitempty"` // dp Dp string `json:"dp,omitempty"` // dq Dq string `json:"dq,omitempty"` // e E string `json:"e,omitempty"` // k K string `json:"k,omitempty"` // The "kid" (key ID) parameter is used to match a specific key. This // is used, for instance, to choose among a set of keys within a JWK Set // during key rollover. The structure of the "kid" value is // unspecified. When "kid" values are used within a JWK Set, different // keys within the JWK Set SHOULD use distinct "kid" values. (One // example in which different keys might use the same "kid" value is if // they have different "kty" (key type) values but are considered to be // equivalent alternatives by the application using them.) The "kid" // value is a case-sensitive string. // Required: true Kid *string `json:"kid"` // The "kty" (key type) parameter identifies the cryptographic algorithm // family used with the key, such as "RSA" or "EC". "kty" values should // either be registered in the IANA "JSON Web Key Types" registry // established by [JWA] or be a value that contains a Collision- // Resistant Name. The "kty" value is a case-sensitive string. // Required: true Kty *string `json:"kty"` // n N string `json:"n,omitempty"` // p P string `json:"p,omitempty"` // q Q string `json:"q,omitempty"` // qi Qi string `json:"qi,omitempty"` // Use ("public key use") identifies the intended use of // the public key. The "use" parameter is employed to indicate whether // a public key is used for encrypting data or verifying the signature // on data. Values are commonly "sig" (signature) or "enc" (encryption). // Required: true Use *string `json:"use"` // x X string `json:"x,omitempty"` // The "x5c" (X.509 certificate chain) parameter contains a chain of one // or more PKIX certificates [RFC5280]. The certificate chain is // represented as a JSON array of certificate value strings. Each // string in the array is a base64-encoded (Section 4 of [RFC4648] -- // not base64url-encoded) DER [ITU.X690.1994] PKIX certificate value. // The PKIX certificate containing the key value MUST be the first // certificate. X5c []string `json:"x5c"` // y Y string `json:"y,omitempty"` }
SwaggerJSONWebKey swagger JSON web key swagger:model swaggerJSONWebKey
func (*SwaggerJSONWebKey) MarshalBinary ¶
func (m *SwaggerJSONWebKey) MarshalBinary() ([]byte, error)
MarshalBinary interface implementation
func (*SwaggerJSONWebKey) UnmarshalBinary ¶
func (m *SwaggerJSONWebKey) UnmarshalBinary(b []byte) error
UnmarshalBinary interface implementation
type SwaggerJSONWebKeySet ¶
type SwaggerJSONWebKeySet struct { // The value of the "keys" parameter is an array of JWK values. By // default, the order of the JWK values within the array does not imply // an order of preference among them, although applications of JWK Sets // can choose to assign a meaning to the order for their purposes, if // desired. Keys []*SwaggerJSONWebKey `json:"keys"` }
SwaggerJSONWebKeySet swagger JSON web key set swagger:model swaggerJSONWebKeySet
func (*SwaggerJSONWebKeySet) MarshalBinary ¶
func (m *SwaggerJSONWebKeySet) MarshalBinary() ([]byte, error)
MarshalBinary interface implementation
func (*SwaggerJSONWebKeySet) UnmarshalBinary ¶
func (m *SwaggerJSONWebKeySet) UnmarshalBinary(b []byte) error
UnmarshalBinary interface implementation
type SwaggerNotReadyStatus ¶
type SwaggerNotReadyStatus struct { // Errors contains a list of errors that caused the not ready status. Errors map[string]string `json:"errors,omitempty"` }
SwaggerNotReadyStatus swagger not ready status swagger:model swaggerNotReadyStatus
func (*SwaggerNotReadyStatus) MarshalBinary ¶
func (m *SwaggerNotReadyStatus) MarshalBinary() ([]byte, error)
MarshalBinary interface implementation
func (*SwaggerNotReadyStatus) UnmarshalBinary ¶
func (m *SwaggerNotReadyStatus) UnmarshalBinary(b []byte) error
UnmarshalBinary interface implementation
type SwaggerOAuthTokenResponse ¶
type SwaggerOAuthTokenResponse struct { // The access token issued by the authorization server. AccessToken string `json:"access_token,omitempty"` // The lifetime in seconds of the access token. For // example, the value "3600" denotes that the access token will // expire in one hour from the time the response was generated. ExpiresIn int64 `json:"expires_in,omitempty"` // To retrieve a refresh token request the id_token scope. IDToken int64 `json:"id_token,omitempty"` // The refresh token, which can be used to obtain new // access tokens. To retrieve it add the scope "offline" to your access token request. RefreshToken string `json:"refresh_token,omitempty"` // The scope of the access token Scope int64 `json:"scope,omitempty"` // The type of the token issued TokenType string `json:"token_type,omitempty"` }
SwaggerOAuthTokenResponse The token response swagger:model swaggerOAuthTokenResponse
func (*SwaggerOAuthTokenResponse) MarshalBinary ¶
func (m *SwaggerOAuthTokenResponse) MarshalBinary() ([]byte, error)
MarshalBinary interface implementation
func (*SwaggerOAuthTokenResponse) UnmarshalBinary ¶
func (m *SwaggerOAuthTokenResponse) UnmarshalBinary(b []byte) error
UnmarshalBinary interface implementation
type SwaggerVersion ¶
type SwaggerVersion struct { // Version is the service's version. Version string `json:"version,omitempty"` }
SwaggerVersion swagger version swagger:model swaggerVersion
func (*SwaggerVersion) MarshalBinary ¶
func (m *SwaggerVersion) MarshalBinary() ([]byte, error)
MarshalBinary interface implementation
func (*SwaggerVersion) UnmarshalBinary ¶
func (m *SwaggerVersion) UnmarshalBinary(b []byte) error
UnmarshalBinary interface implementation
type Swaggeroauth2TokenResponse ¶
type Swaggeroauth2TokenResponse struct { // access token AccessToken string `json:"access_token,omitempty"` // expires in ExpiresIn int64 `json:"expires_in,omitempty"` // Id token IDToken string `json:"id_token,omitempty"` // refresh token RefreshToken string `json:"refresh_token,omitempty"` // scope Scope string `json:"scope,omitempty"` // token type TokenType string `json:"token_type,omitempty"` }
Swaggeroauth2TokenResponse The Access Token Response swagger:model swaggeroauth2TokenResponse
func (*Swaggeroauth2TokenResponse) MarshalBinary ¶
func (m *Swaggeroauth2TokenResponse) MarshalBinary() ([]byte, error)
MarshalBinary interface implementation
func (*Swaggeroauth2TokenResponse) UnmarshalBinary ¶
func (m *Swaggeroauth2TokenResponse) UnmarshalBinary(b []byte) error
UnmarshalBinary interface implementation
type SwaggeruserinfoResponsePayload ¶
type SwaggeruserinfoResponsePayload struct { // 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:"birthdate,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"` // 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"` // 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"` // 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"` // 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"` // 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"` // 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"` // 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"` // 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"` // 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"` // Non-unique 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. 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"` // Subject - Identifier for the End-User at the IssuerURL. Subject string `json:"sub,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"` // 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"` // 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"` }
SwaggeruserinfoResponsePayload The userinfo response swagger:model swaggeruserinfoResponsePayload
func (*SwaggeruserinfoResponsePayload) MarshalBinary ¶
func (m *SwaggeruserinfoResponsePayload) MarshalBinary() ([]byte, error)
MarshalBinary interface implementation
func (*SwaggeruserinfoResponsePayload) UnmarshalBinary ¶
func (m *SwaggeruserinfoResponsePayload) UnmarshalBinary(b []byte) error
UnmarshalBinary interface implementation
type WellKnown ¶
type WellKnown struct { // URL of the OP's OAuth 2.0 Authorization Endpoint. // Required: true AuthURL *string `json:"authorization_endpoint"` // Boolean value specifying whether the OP can pass a sid (session ID) Claim in the Logout Token to identify the RP // session with the OP. If supported, the sid Claim is also included in ID Tokens issued by the OP BackChannelLogoutSessionSupported bool `json:"backchannel_logout_session_supported,omitempty"` // Boolean value specifying whether the OP supports back-channel logout, with true indicating support. BackChannelLogoutSupported bool `json:"backchannel_logout_supported,omitempty"` // Boolean value specifying whether the OP supports use of the claims parameter, with true indicating support. ClaimsParameterSupported bool `json:"claims_parameter_supported,omitempty"` // JSON array containing a list of the Claim Names of the Claims that the OpenID Provider MAY be able to supply // values for. Note that for privacy or other reasons, this might not be an exhaustive list. ClaimsSupported []string `json:"claims_supported"` // URL at the OP to which an RP can perform a redirect to request that the End-User be logged out at the OP. EndSessionEndpoint string `json:"end_session_endpoint,omitempty"` // Boolean value specifying whether the OP can pass iss (issuer) and sid (session ID) query parameters to identify // the RP session with the OP when the frontchannel_logout_uri is used. If supported, the sid Claim is also // included in ID Tokens issued by the OP. FrontChannelLogoutSessionSupported bool `json:"frontchannel_logout_session_supported,omitempty"` // Boolean value specifying whether the OP supports HTTP-based logout, with true indicating support. FrontChannelLogoutSupported bool `json:"frontchannel_logout_supported,omitempty"` // JSON array containing a list of the OAuth 2.0 Grant Type values that this OP supports. GrantTypesSupported []string `json:"grant_types_supported"` // JSON array containing a list of the JWS signing algorithms (alg values) supported by the OP for the ID Token // to encode the Claims in a JWT. // Required: true IDTokenSigningAlgValuesSupported []string `json:"id_token_signing_alg_values_supported"` // URL using the https scheme with no query or fragment component that the OP asserts as its IssuerURL Identifier. // If IssuerURL discovery is supported , this value MUST be identical to the issuer value returned // by WebFinger. This also MUST be identical to the iss Claim value in ID Tokens issued from this IssuerURL. // Required: true Issuer *string `json:"issuer"` // URL of the OP's JSON Web Key Set [JWK] document. This contains the signing key(s) the RP uses to validate // signatures from the OP. The JWK Set MAY also contain the Server's encryption key(s), which are used by RPs // to encrypt requests to the Server. When both signing and encryption keys are made available, a use (Key Use) // parameter value is REQUIRED for all keys in the referenced JWK Set to indicate each key's intended usage. // Although some algorithms allow the same key to be used for both signatures and encryption, doing so is // NOT RECOMMENDED, as it is less secure. The JWK x5c parameter MAY be used to provide X.509 representations of // keys provided. When used, the bare key values MUST still be present and MUST match those in the certificate. // Required: true JWKsURI *string `json:"jwks_uri"` // URL of the OP's Dynamic Client Registration Endpoint. RegistrationEndpoint string `json:"registration_endpoint,omitempty"` // Boolean value specifying whether the OP supports use of the request parameter, with true indicating support. RequestParameterSupported bool `json:"request_parameter_supported,omitempty"` // Boolean value specifying whether the OP supports use of the request_uri parameter, with true indicating support. RequestURIParameterSupported bool `json:"request_uri_parameter_supported,omitempty"` // Boolean value specifying whether the OP requires any request_uri values used to be pre-registered // using the request_uris registration parameter. RequireRequestURIRegistration bool `json:"require_request_uri_registration,omitempty"` // JSON array containing a list of the OAuth 2.0 response_mode values that this OP supports. ResponseModesSupported []string `json:"response_modes_supported"` // JSON array containing a list of the OAuth 2.0 response_type values that this OP supports. Dynamic OpenID // Providers MUST support the code, id_token, and the token id_token Response Type values. // Required: true ResponseTypes []string `json:"response_types_supported"` // URL of the authorization server's OAuth 2.0 revocation endpoint. RevocationEndpoint string `json:"revocation_endpoint,omitempty"` // SON array containing a list of the OAuth 2.0 [RFC6749] scope values that this server supports. The server MUST // support the openid scope value. Servers MAY choose not to advertise some supported scope values even when this parameter is used ScopesSupported []string `json:"scopes_supported"` // JSON array containing a list of the Subject Identifier types that this OP supports. Valid types include // pairwise and public. // Required: true SubjectTypes []string `json:"subject_types_supported"` // JSON array containing a list of Client Authentication methods supported by this Token Endpoint. The options are // client_secret_post, client_secret_basic, client_secret_jwt, and private_key_jwt, as described in Section 9 of OpenID Connect Core 1.0 TokenEndpointAuthMethodsSupported []string `json:"token_endpoint_auth_methods_supported"` // URL of the OP's OAuth 2.0 Token Endpoint // Required: true TokenURL *string `json:"token_endpoint"` // URL of the OP's UserInfo Endpoint. UserinfoEndpoint string `json:"userinfo_endpoint,omitempty"` // JSON array containing a list of the JWS [JWS] signing algorithms (alg values) [JWA] supported by the UserInfo Endpoint to encode the Claims in a JWT [JWT]. UserinfoSigningAlgValuesSupported []string `json:"userinfo_signing_alg_values_supported"` }
WellKnown WellKnown represents important OpenID Connect discovery metadata
It includes links to several endpoints (e.g. /oauth2/token) and exposes information on supported signature algorithms among others. swagger:model WellKnown
func (*WellKnown) MarshalBinary ¶
MarshalBinary interface implementation
func (*WellKnown) UnmarshalBinary ¶
UnmarshalBinary interface implementation
Source Files
¶
- client.go
- consent_request.go
- consent_request_session_data.go
- create_request.go
- flush_inactive_o_auth2_tokens_request.go
- generic_error.go
- handled_consent_request.go
- handled_login_request.go
- introspection.go
- login_request.go
- logout_request.go
- open_id_connect_context.go
- previous_consent_session.go
- request_denied_error.go
- request_handler_response.go
- swagger_health_status.go
- swagger_json_web_key.go
- swagger_json_web_key_set.go
- swagger_not_ready_status.go
- swagger_o_auth_token_response.go
- swagger_version.go
- swaggeroauth2_token_response.go
- swaggeruserinfo_response_payload.go
- well_known.go