diff --git a/pkg/op/discovery.go b/pkg/op/discovery.go index 5a79a09c..e30a5a4b 100644 --- a/pkg/op/discovery.go +++ b/pkg/op/discovery.go @@ -100,7 +100,11 @@ func createDiscoveryConfigV2(ctx context.Context, config Configuration, storage } func Scopes(c Configuration) []string { - return DefaultSupportedScopes // TODO: config + provider, ok := c.(*Provider) + if ok && provider.config.SupportedScopes != nil { + return provider.config.SupportedScopes + } + return DefaultSupportedScopes } func ResponseTypes(c Configuration) []string { @@ -135,7 +139,7 @@ func GrantTypes(c Configuration) []oidc.GrantType { } func SubjectTypes(c Configuration) []string { - return []string{"public"} //TODO: config + return []string{"public"} // TODO: config } func SigAlgorithms(ctx context.Context, storage DiscoverStorage) []string { diff --git a/pkg/op/discovery_test.go b/pkg/op/discovery_test.go index cb4cfba0..61afb62c 100644 --- a/pkg/op/discovery_test.go +++ b/pkg/op/discovery_test.go @@ -81,6 +81,11 @@ func Test_scopes(t *testing.T) { args{}, op.DefaultSupportedScopes, }, + { + "custom scopes", + args{newTestProvider(&op.Config{SupportedScopes: []string{"test1", "test2"}})}, + []string{"test1", "test2"}, + }, } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { diff --git a/pkg/op/op.go b/pkg/op/op.go index 22480983..190c2c4f 100644 --- a/pkg/op/op.go +++ b/pkg/op/op.go @@ -167,6 +167,7 @@ type Config struct { RequestObjectSupported bool SupportedUILocales []language.Tag SupportedClaims []string + SupportedScopes []string DeviceAuthorization DeviceAuthorizationConfig BackChannelLogoutSupported bool BackChannelLogoutSessionSupported bool