Documentation ¶
Overview ¶
Note: This is a modified version of: https://github.com/dexidp/dex/blob/ed920dc27ad79c3593037ad658552e8e80bab928/cmd/dex/config.go
Note: This is a modified version of: https://github.com/dexidp/dex/blob/ed920dc27ad79c3593037ad658552e8e80bab928/storage/kubernetes/storage.go
Note: This is a modified version of: https://github.com/dexidp/dex/blob/ed920dc27ad79c3593037ad658552e8e80bab928/connector/oidc/oidc.go Package oidc implements logging in through OpenID Connect providers.
Note: This is a modified version of: https://github.com/dexidp/dex/blob/ed920dc27ad79c3593037ad658552e8e80bab928/server/server.go
Note: This is a modified version of: https://github.com/dexidp/dex/blob/ed920dc27ad79c3593037ad658552e8e80bab928/storage/storage.go
Index ¶
Constants ¶
This section is empty.
Variables ¶
var ConnectorsConfig = map[string]func() ConnectorConfig{ "oidc": func() ConnectorConfig { return new(OIDCConfig) }, }
ConnectorsConfig variable provides an easy way to return a config struct depending on the connector type.
Functions ¶
This section is empty.
Types ¶
type Config ¶
type Config struct { Issuer string `json:"issuer"` Storage Storage `json:"storage"` Web Web `json:"web"` OAuth2 OAuth2 `json:"oauth2"` Expiry Expiry `json:"expiry"` Frontend WebConfig `json:"frontend"` // StaticConnectors are user defined connectors specified in the ConfigMap // Write operations, like updating a connector, will fail. StaticConnectors []Connector `json:"connectors"` // StaticClients cause the server to use this list of clients rather than // querying the storage. Write operations, like creating a client, will fail. StaticClients []StorageClient `json:"staticClients"` // If enabled, the server will maintain a list of passwords which can be used // to identify a user. EnablePasswordDB bool `json:"enablePasswordDB"` }
Config is the config format for the main application.
type Connector ¶
type Connector struct { Type string `json:"type"` Name string `json:"name"` ID string `json:"id"` Config ConnectorConfig `json:"config"` }
Connector is a magical type that can unmarshal YAML dynamically. The Type field determines the connector type, which is then customized for Config.
func (*Connector) UnmarshalJSON ¶
UnmarshalJSON allows Connector to implement the unmarshaler interface to dynamically determine the type of the connector config.
type ConnectorConfig ¶
type ConnectorConfig interface { }
ConnectorConfig is a configuration that can open a connector.
type Expiry ¶
type Expiry struct { // SigningKeys defines the duration of time after which the SigningKeys will be rotated. SigningKeys string `json:"signingKeys"` // IdTokens defines the duration of time for which the IdTokens will be valid. IDTokens string `json:"idTokens"` // AuthRequests defines the duration of time for which the AuthRequests will be valid. AuthRequests string `json:"authRequests"` // DeviceRequests defines the duration of time for which the DeviceRequests will be valid. DeviceRequests string `json:"deviceRequests"` }
Expiry holds configuration for the validity period of components.
type KubernetesConfig ¶
type KubernetesConfig struct { InCluster bool `json:"inCluster"` KubeConfigFile string `json:"kubeConfigFile"` }
KubernetesConfig values for the Kubernetes storage type.
type OAuth2 ¶
type OAuth2 struct { ResponseTypes []string `json:"responseTypes"` // If specified, do not prompt the user to approve client authorization. The // act of logging in implies authorization. SkipApprovalScreen bool `json:"skipApprovalScreen"` // If specified, show the connector selection screen even if there's only one AlwaysShowLoginScreen bool `json:"alwaysShowLoginScreen"` // This is the connector that can be used for password grant PasswordConnector string `json:"passwordConnector"` }
OAuth2 describes enabled OAuth2 extensions.
type OIDCConfig ¶
type OIDCConfig struct { Issuer string `json:"issuer"` ClientID string `json:"clientID"` ClientSecret string `json:"clientSecret"` RedirectURI string `json:"redirectURI"` Scopes []string `json:"scopes"` // defaults to "profile" and "email" // Override the value of email_verified to true in the returned claims InsecureSkipEmailVerified bool `json:"insecureSkipEmailVerified"` // InsecureEnableGroups enables groups claims. This is disabled by default until https://github.com/dexidp/dex/issues/1065 is resolved InsecureEnableGroups bool `json:"insecureEnableGroups"` // Disable certificate verification InsecureSkipVerify bool `json:"insecureSkipVerify"` // GetUserInfo uses the userinfo endpoint to get additional claims for // the token. This is especially useful where upstreams return "thin" // id tokens GetUserInfo bool `json:"getUserInfo"` UserIDKey string `json:"userIDKey"` UserNameKey string `json:"userNameKey"` // PromptType will be used fot the prompt parameter (when offline_access, by default prompt=consent) PromptType string `json:"promptType"` ClaimMapping struct { // Configurable key which contains the preferred username claims PreferredUsernameKey string `json:"preferred_username"` // defaults to "preferred_username" // Configurable key which contains the email claims EmailKey string `json:"email"` // defaults to "email" // Configurable key which contains the groups claims GroupsKey string `json:"groups"` // defaults to "groups" } `json:"claimMapping"` }
OIDCConfig holds configuration options for OpenID Connect logins.
type Storage ¶
type Storage struct { Type string `json:"type"` Config interface{} `json:"config"` }
Storage holds app's storage configuration.
type StorageClient ¶
type StorageClient struct { // Client ID and secret used to identify the client. ID string `json:"id" yaml:"id"` IDEnv string `json:"idEnv" yaml:"idEnv"` Secret string `json:"secret" yaml:"secret"` SecretEnv string `json:"secretEnv" yaml:"secretEnv"` // A registered set of redirect URIs. When redirecting from dex to the client, the URI // requested to redirect to MUST match one of these values, unless the client is "public". RedirectURIs []string `json:"redirectURIs" yaml:"redirectURIs"` // Name and LogoURL used when displaying this client to the end user. Name string `json:"name" yaml:"name"` LogoURL string `json:"logoURL" yaml:"logoURL"` }
StorageClient represents an OAuth2 client.
For further reading see: