diff --git a/Documentation/api.md b/Documentation/api.md
index 48a9f509e04e6892debed6c1a4ace9a58c44989e..67c1ba3cb9efb2bffa21cffe3e181fbff3f38fea 100644
--- a/Documentation/api.md
+++ b/Documentation/api.md
@@ -12,11 +12,13 @@ Admins that wish to expose the gRPC service must add the following entry to the
 grpc:
   # Cannot be the same address as an HTTP(S) service.
   addr: 127.0.0.1:5557
-  # Server certs. If TLS credentials aren't provided dex will generate self-signed ones.
+  # Server certs. If TLS credentials aren't provided dex will run in plaintext (HTTP) mode.
   tlsCert: /etc/dex/grpc.crt
   tlsKey: /etc/dex/grpc.key
   # Client auth CA.
   tlsClientCA: /etc/dex/client.crt
+  # enable reflection
+  reflection: true
 ```
 
 ## Generating clients
diff --git a/cmd/dex/config.go b/cmd/dex/config.go
index 77f4a779c502ad1eaa4268ecf42c04c008c54269..a0536b1cc5a4cdd4137898e59c95a33f4121a700 100644
--- a/cmd/dex/config.go
+++ b/cmd/dex/config.go
@@ -150,6 +150,7 @@ type GRPC struct {
 	TLSCert     string `json:"tlsCert"`
 	TLSKey      string `json:"tlsKey"`
 	TLSClientCA string `json:"tlsClientCA"`
+	Reflection  bool   `json:"reflection"`
 }
 
 // Storage holds app's storage configuration.
diff --git a/cmd/dex/serve.go b/cmd/dex/serve.go
index 208ec9c09664ecf56d4fe7040869d72b4228b611..bba643a139608d6d1114edbad3cdd07b32d5890d 100644
--- a/cmd/dex/serve.go
+++ b/cmd/dex/serve.go
@@ -21,6 +21,7 @@ import (
 	"github.com/spf13/cobra"
 	"google.golang.org/grpc"
 	"google.golang.org/grpc/credentials"
+	"google.golang.org/grpc/reflection"
 
 	"github.com/dexidp/dex/api"
 	"github.com/dexidp/dex/pkg/log"
@@ -282,6 +283,10 @@ func serve(cmd *cobra.Command, args []string) error {
 				s := grpc.NewServer(grpcOptions...)
 				api.RegisterDexServer(s, server.NewAPI(serverConfig.Storage, logger))
 				grpcMetrics.InitializeMetrics(s)
+				if c.GRPC.Reflection {
+					logger.Info("enabling reflection in grpc service")
+					reflection.Register(s)
+				}
 				err = s.Serve(list)
 				return fmt.Errorf("listening on %s failed: %v", c.GRPC.Addr, err)
 			}()