Skip to content
Snippets Groups Projects
Commit 47897f73 authored by Phu Kieu's avatar Phu Kieu
Browse files

Validate audience with entityIssuer if present, use redirectURI otherwise

parent 40f0265a
Branches
Tags
No related merge requests found
......@@ -40,6 +40,8 @@ connectors:
# insecureSkipSignatureValidation: true
# Optional: Issuer value for AuthnRequest
# Must be contained within the "AudienceRestriction" attribute in all responses
# If not set, redirectURI will be used for audience validation
entityIssuer: https://dex.example.com/callback
# Optional: Issuer value for SAML Response
......
......@@ -466,6 +466,10 @@ func (p *provider) validateConditions(assertion *assertion) error {
}
}
// Validates audience
audienceValue := p.entityIssuer
if audienceValue == "" {
audienceValue = p.redirectURI
}
audienceRestriction := conditions.AudienceRestriction
if audienceRestriction != nil {
audiences := audienceRestriction.Audiences
......@@ -473,14 +477,14 @@ func (p *provider) validateConditions(assertion *assertion) error {
values := make([]string, len(audiences))
issuerInAudiences := false
for i, audience := range audiences {
if audience.Value == p.redirectURI {
if audience.Value == audienceValue {
issuerInAudiences = true
break
}
values[i] = audience.Value
}
if !issuerInAudiences {
return fmt.Errorf("required audience %s was not in Response audiences %s", p.redirectURI, values)
return fmt.Errorf("required audience %s was not in Response audiences %s", audienceValue, values)
}
}
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment