fix: add feedback from review
This commit is contained in:
parent
9bd6a1306a
commit
a7937a81a7
|
|
@ -25,7 +25,7 @@ func CreateTokenToSessionFunc(verify VerifyFunc) TokenToSessionFunc {
|
|||
Verified *bool `json:"email_verified"`
|
||||
PreferredUsername string `json:"preferred_username"`
|
||||
Groups []string `json:"groups"`
|
||||
Acr string `json:"acr"`
|
||||
ACR string `json:"acr"`
|
||||
}
|
||||
|
||||
idToken, err := verify(ctx, token)
|
||||
|
|
@ -50,7 +50,7 @@ func CreateTokenToSessionFunc(verify VerifyFunc) TokenToSessionFunc {
|
|||
User: claims.Subject,
|
||||
Groups: claims.Groups,
|
||||
PreferredUsername: claims.PreferredUsername,
|
||||
Acr: claims.Acr,
|
||||
ACR: claims.ACR,
|
||||
AccessToken: token,
|
||||
IDToken: token,
|
||||
RefreshToken: "",
|
||||
|
|
|
|||
|
|
@ -727,7 +727,6 @@ func (l *LegacyProvider) convert() (Providers, error) {
|
|||
provider.KeycloakConfig = KeycloakOptions{
|
||||
Groups: l.KeycloakGroups,
|
||||
Roles: l.AllowedRoles,
|
||||
ACRs: l.AcrValues,
|
||||
}
|
||||
case "keycloak":
|
||||
provider.KeycloakConfig = KeycloakOptions{
|
||||
|
|
|
|||
|
|
@ -149,7 +149,6 @@ type KeycloakOptions struct {
|
|||
|
||||
// Role enables to restrict login to users with role (only available when using the keycloak-oidc provider)
|
||||
Roles []string `json:"roles,omitempty"`
|
||||
ACRs string `json:"acr,omitempty"`
|
||||
}
|
||||
|
||||
type AzureOptions struct {
|
||||
|
|
@ -261,6 +260,8 @@ type OIDCOptions struct {
|
|||
// ExtraAudiences is a list of additional audiences that are allowed
|
||||
// to pass verification in addition to the client id.
|
||||
ExtraAudiences []string `json:"extraAudiences,omitempty"`
|
||||
// to pass acr values to the provider
|
||||
ACRs string `json:"acr,omitempty"`
|
||||
}
|
||||
|
||||
type LoginGovOptions struct {
|
||||
|
|
|
|||
|
|
@ -28,7 +28,7 @@ type SessionState struct {
|
|||
User string `msgpack:"u,omitempty"`
|
||||
Groups []string `msgpack:"g,omitempty"`
|
||||
PreferredUsername string `msgpack:"pu,omitempty"`
|
||||
Acr string `msgpack:"acr,omitempty"`
|
||||
ACR string `msgpack:"acr,omitempty"`
|
||||
|
||||
// Internal helpers, not serialized
|
||||
Clock clock.Clock `msgpack:"-"`
|
||||
|
|
@ -150,7 +150,7 @@ func (s *SessionState) GetClaim(claim string) []string {
|
|||
case "preferred_username":
|
||||
return []string{s.PreferredUsername}
|
||||
case "acr":
|
||||
return []string{s.Acr}
|
||||
return []string{s.ACR}
|
||||
default:
|
||||
return []string{}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -61,7 +61,6 @@ func NewKeycloakProvider(p *ProviderData, opts options.KeycloakOptions) *Keycloa
|
|||
|
||||
provider := &KeycloakProvider{ProviderData: p}
|
||||
provider.setAllowedGroups(opts.Groups)
|
||||
provider.setAllowedACR(opts.ACRs)
|
||||
return provider
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -26,7 +26,6 @@ func NewKeycloakOIDCProvider(p *ProviderData, opts options.Provider) *KeycloakOI
|
|||
}
|
||||
|
||||
provider.addAllowedRoles(opts.KeycloakConfig.Roles)
|
||||
provider.setAllowedACR(opts.KeycloakConfig.ACRs)
|
||||
return provider
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -46,6 +46,7 @@ func NewOIDCProvider(p *ProviderData, opts options.OIDCOptions) *OIDCProvider {
|
|||
}
|
||||
|
||||
p.setProviderDefaults(oidcProviderDefaults)
|
||||
p.setAllowedACR(opts.ACRs)
|
||||
p.getAuthorizationHeaderFunc = makeOIDCHeader
|
||||
|
||||
return &OIDCProvider{
|
||||
|
|
|
|||
|
|
@ -268,7 +268,7 @@ func (p *ProviderData) buildSessionFromClaims(rawIDToken, accessToken string) (*
|
|||
{p.UserClaim, &ss.User},
|
||||
{p.EmailClaim, &ss.Email},
|
||||
{p.GroupsClaim, &ss.Groups},
|
||||
{oidcAcrClaim, &ss.Acr},
|
||||
{oidcAcrClaim, &ss.ACR},
|
||||
// TODO (@NickMeves) Deprecate for dynamic claim to session mapping
|
||||
{"preferred_username", &ss.PreferredUsername},
|
||||
} {
|
||||
|
|
|
|||
|
|
@ -117,8 +117,7 @@ func (p *ProviderData) EnrichSession(_ context.Context, _ *sessions.SessionState
|
|||
// This is not used for fine-grained per route authorization rules.
|
||||
func (p *ProviderData) Authorize(_ context.Context, s *sessions.SessionState) (bool, error) {
|
||||
if len(p.AllowedACRs) > 0 {
|
||||
var _, ok = p.AllowedACRs[s.Acr]
|
||||
if !ok {
|
||||
if _, ok := p.AllowedACRs[s.ACR]; !ok {
|
||||
return false, nil
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -128,7 +128,7 @@ func TestProviderDataAuthorize(t *testing.T) {
|
|||
|
||||
session := &sessions.SessionState{
|
||||
Groups: tc.groups,
|
||||
Acr: tc.userAcr,
|
||||
ACR: tc.userAcr,
|
||||
}
|
||||
p := &ProviderData{}
|
||||
p.setAllowedGroups(tc.allowedGroups)
|
||||
|
|
|
|||
Loading…
Reference in New Issue