Commit dcbe67d8 authored by Eric Chiang's avatar Eric Chiang

{cmd/dex,server}: expose skip approval screen option

parent 182f14fb
...@@ -72,6 +72,9 @@ func (p password) toPassword() (storage.Password, error) { ...@@ -72,6 +72,9 @@ func (p password) toPassword() (storage.Password, error) {
// OAuth2 describes enabled OAuth2 extensions. // OAuth2 describes enabled OAuth2 extensions.
type OAuth2 struct { type OAuth2 struct {
ResponseTypes []string `yaml:"responseTypes"` ResponseTypes []string `yaml:"responseTypes"`
// If specified, do not prompt the user to approve client authorization. The
// act of logging in implies authorization.
SkipApprovalScreen bool `yaml:"skipApprovalScreen"`
} }
// Web is the config format for the HTTP server. // Web is the config format for the HTTP server.
......
...@@ -116,6 +116,7 @@ func serve(cmd *cobra.Command, args []string) error { ...@@ -116,6 +116,7 @@ func serve(cmd *cobra.Command, args []string) error {
serverConfig := server.Config{ serverConfig := server.Config{
SupportedResponseTypes: c.OAuth2.ResponseTypes, SupportedResponseTypes: c.OAuth2.ResponseTypes,
SkipApprovalScreen: c.OAuth2.SkipApprovalScreen,
Issuer: c.Issuer, Issuer: c.Issuer,
Connectors: connectors, Connectors: connectors,
Storage: s, Storage: s,
......
...@@ -41,6 +41,10 @@ type Config struct { ...@@ -41,6 +41,10 @@ type Config struct {
// flow. If no response types are supplied this value defaults to "code". // flow. If no response types are supplied this value defaults to "code".
SupportedResponseTypes []string SupportedResponseTypes []string
// If enabled, the server won't prompt the user to approve authorization requests.
// Logging in implies approval.
SkipApprovalScreen bool
RotateKeysAfter time.Duration // Defaults to 6 hours. RotateKeysAfter time.Duration // Defaults to 6 hours.
IDTokensValidFor time.Duration // Defaults to 24 hours IDTokensValidFor time.Duration // Defaults to 24 hours
...@@ -73,7 +77,6 @@ type Server struct { ...@@ -73,7 +77,6 @@ type Server struct {
templates *templates templates *templates
// If enabled, don't prompt user for approval after logging in through connector. // If enabled, don't prompt user for approval after logging in through connector.
// No package level API to set this, only used in tests.
skipApproval bool skipApproval bool
supportedResponseTypes map[string]bool supportedResponseTypes map[string]bool
...@@ -145,6 +148,7 @@ func newServer(c Config, rotationStrategy rotationStrategy) (*Server, error) { ...@@ -145,6 +148,7 @@ func newServer(c Config, rotationStrategy rotationStrategy) (*Server, error) {
), ),
supportedResponseTypes: supported, supportedResponseTypes: supported,
idTokensValidFor: value(c.IDTokensValidFor, 24*time.Hour), idTokensValidFor: value(c.IDTokensValidFor, 24*time.Hour),
skipApproval: c.SkipApprovalScreen,
now: now, now: now,
templates: tmpls, templates: tmpls,
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment