You've already forked oauth2-proxy
mirror of
https://github.com/oauth2-proxy/oauth2-proxy.git
synced 2025-07-15 01:44:22 +02:00
Merge pull request #2229 from tuunit/bugfix/default-scopes-for-oidc-based-providers
bugfix: default scopes for OIDCProvider based providers
This commit is contained in:
@ -11,6 +11,7 @@
|
|||||||
- [#2221](https://github.com/oauth2-proxy/oauth2-proxy/pull/2221) Backwards compatible fix for wrong environment variable name (OAUTH2_PROXY_GOOGLE_GROUPS) (@kvanzuijlen)
|
- [#2221](https://github.com/oauth2-proxy/oauth2-proxy/pull/2221) Backwards compatible fix for wrong environment variable name (OAUTH2_PROXY_GOOGLE_GROUPS) (@kvanzuijlen)
|
||||||
- [#1989](https://github.com/oauth2-proxy/oauth2-proxy/pull/1989) Fix default scope for keycloak-oidc provider
|
- [#1989](https://github.com/oauth2-proxy/oauth2-proxy/pull/1989) Fix default scope for keycloak-oidc provider
|
||||||
- [#2217](https://github.com/oauth2-proxy/oauth2-proxy/pull/2217) Upgrade alpine to version 3.18 (@polarctos)
|
- [#2217](https://github.com/oauth2-proxy/oauth2-proxy/pull/2217) Upgrade alpine to version 3.18 (@polarctos)
|
||||||
|
- [#2229](https://github.com/oauth2-proxy/oauth2-proxy/pull/2229) bugfix: default scopes for OIDCProvider based providers
|
||||||
|
|
||||||
# V7.5.0
|
# V7.5.0
|
||||||
|
|
||||||
|
@ -46,10 +46,7 @@ func NewADFSProvider(p *ProviderData, opts options.ADFSOptions) *ADFSProvider {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
oidcProvider := &OIDCProvider{
|
oidcProvider := NewOIDCProvider(p, options.OIDCOptions{InsecureSkipNonce: false})
|
||||||
ProviderData: p,
|
|
||||||
SkipNonce: false,
|
|
||||||
}
|
|
||||||
|
|
||||||
return &ADFSProvider{
|
return &ADFSProvider{
|
||||||
OIDCProvider: oidcProvider,
|
OIDCProvider: oidcProvider,
|
||||||
|
@ -136,7 +136,13 @@ var _ = Describe("ADFS Provider Tests", func() {
|
|||||||
It("uses defaults", func() {
|
It("uses defaults", func() {
|
||||||
providerData := NewADFSProvider(&ProviderData{}, options.ADFSOptions{}).Data()
|
providerData := NewADFSProvider(&ProviderData{}, options.ADFSOptions{}).Data()
|
||||||
Expect(providerData.ProviderName).To(Equal("ADFS"))
|
Expect(providerData.ProviderName).To(Equal("ADFS"))
|
||||||
Expect(providerData.Scope).To(Equal("openid email profile"))
|
Expect(providerData.Scope).To(Equal(oidcDefaultScope))
|
||||||
|
})
|
||||||
|
It("uses custom scope", func() {
|
||||||
|
providerData := NewADFSProvider(&ProviderData{Scope: "openid email"}, options.ADFSOptions{}).Data()
|
||||||
|
Expect(providerData.ProviderName).To(Equal("ADFS"))
|
||||||
|
Expect(providerData.Scope).To(Equal("openid email"))
|
||||||
|
Expect(providerData.Scope).NotTo(Equal(oidcDefaultScope))
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
|
@ -40,10 +40,7 @@ func NewGitLabProvider(p *ProviderData, opts options.GitLabOptions) (*GitLabProv
|
|||||||
p.Scope = gitlabDefaultScope
|
p.Scope = gitlabDefaultScope
|
||||||
}
|
}
|
||||||
|
|
||||||
oidcProvider := &OIDCProvider{
|
oidcProvider := NewOIDCProvider(p, options.OIDCOptions{InsecureSkipNonce: false})
|
||||||
ProviderData: p,
|
|
||||||
SkipNonce: false,
|
|
||||||
}
|
|
||||||
|
|
||||||
provider := &GitLabProvider{
|
provider := &GitLabProvider{
|
||||||
OIDCProvider: oidcProvider,
|
OIDCProvider: oidcProvider,
|
||||||
|
@ -170,6 +170,15 @@ var _ = Describe("Gitlab Provider Tests", func() {
|
|||||||
b.Close()
|
b.Close()
|
||||||
})
|
})
|
||||||
|
|
||||||
|
Context("New Provider Init", func() {
|
||||||
|
It("creates new keycloak oidc provider with expected defaults", func() {
|
||||||
|
providerData := p.Data()
|
||||||
|
Expect(providerData.ProviderName).To(Equal(gitlabProviderName))
|
||||||
|
Expect(providerData.Scope).To(Equal(gitlabDefaultScope))
|
||||||
|
Expect(providerData.ProviderName).NotTo(Equal(oidcDefaultScope))
|
||||||
|
})
|
||||||
|
})
|
||||||
|
|
||||||
Context("with bad token", func() {
|
Context("with bad token", func() {
|
||||||
It("should trigger an error", func() {
|
It("should trigger an error", func() {
|
||||||
p.AllowUnverifiedEmail = false
|
p.AllowUnverifiedEmail = false
|
||||||
|
@ -22,9 +22,7 @@ func NewKeycloakOIDCProvider(p *ProviderData, opts options.KeycloakOptions) *Key
|
|||||||
})
|
})
|
||||||
|
|
||||||
provider := &KeycloakOIDCProvider{
|
provider := &KeycloakOIDCProvider{
|
||||||
OIDCProvider: &OIDCProvider{
|
OIDCProvider: NewOIDCProvider(p, options.OIDCOptions{InsecureSkipNonce: false}),
|
||||||
ProviderData: p,
|
|
||||||
},
|
|
||||||
}
|
}
|
||||||
|
|
||||||
provider.addAllowedRoles(opts.Roles)
|
provider.addAllowedRoles(opts.Roles)
|
||||||
|
@ -67,7 +67,7 @@ func newKeycloakOIDCProvider(serverURL *url.URL, opts options.KeycloakOptions) *
|
|||||||
Scheme: "https",
|
Scheme: "https",
|
||||||
Host: "keycloak-oidc.com",
|
Host: "keycloak-oidc.com",
|
||||||
Path: "/api/v3/user"},
|
Path: "/api/v3/user"},
|
||||||
Scope: "openid email profile"},
|
},
|
||||||
opts)
|
opts)
|
||||||
|
|
||||||
if serverURL != nil {
|
if serverURL != nil {
|
||||||
@ -97,7 +97,15 @@ var _ = Describe("Keycloak OIDC Provider Tests", func() {
|
|||||||
Expect(providerData.RedeemURL.String()).To(Equal("https://keycloak-oidc.com/oauth/token"))
|
Expect(providerData.RedeemURL.String()).To(Equal("https://keycloak-oidc.com/oauth/token"))
|
||||||
Expect(providerData.ProfileURL.String()).To(Equal("https://keycloak-oidc.com/api/v3/user"))
|
Expect(providerData.ProfileURL.String()).To(Equal("https://keycloak-oidc.com/api/v3/user"))
|
||||||
Expect(providerData.ValidateURL.String()).To(Equal("https://keycloak-oidc.com/api/v3/user"))
|
Expect(providerData.ValidateURL.String()).To(Equal("https://keycloak-oidc.com/api/v3/user"))
|
||||||
Expect(providerData.Scope).To(Equal("openid email profile"))
|
Expect(providerData.Scope).To(Equal(oidcDefaultScope))
|
||||||
|
})
|
||||||
|
It("creates new keycloak oidc provider with custom scope", func() {
|
||||||
|
p := NewKeycloakOIDCProvider(&ProviderData{Scope: "openid email"}, options.KeycloakOptions{})
|
||||||
|
providerData := p.Data()
|
||||||
|
|
||||||
|
Expect(providerData.ProviderName).To(Equal(keycloakOIDCProviderName))
|
||||||
|
Expect(providerData.Scope).To(Equal("openid email"))
|
||||||
|
Expect(providerData.Scope).NotTo(Equal(oidcDefaultScope))
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
|
@ -24,8 +24,14 @@ const oidcDefaultScope = "openid email profile"
|
|||||||
|
|
||||||
// NewOIDCProvider initiates a new OIDCProvider
|
// NewOIDCProvider initiates a new OIDCProvider
|
||||||
func NewOIDCProvider(p *ProviderData, opts options.OIDCOptions) *OIDCProvider {
|
func NewOIDCProvider(p *ProviderData, opts options.OIDCOptions) *OIDCProvider {
|
||||||
|
name := "OpenID Connect"
|
||||||
|
|
||||||
|
if p.ProviderName != "" {
|
||||||
|
name = p.ProviderName
|
||||||
|
}
|
||||||
|
|
||||||
oidcProviderDefaults := providerDefaults{
|
oidcProviderDefaults := providerDefaults{
|
||||||
name: "OpenID Connect",
|
name: name,
|
||||||
loginURL: nil,
|
loginURL: nil,
|
||||||
redeemURL: nil,
|
redeemURL: nil,
|
||||||
profileURL: nil,
|
profileURL: nil,
|
||||||
|
Reference in New Issue
Block a user