Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Fix bug with AadIssuerValidator
#3047
Description
The current implementation of AadIssuerValidator always expects that token issuer length should be greater than templateTenantIdPosition + tenantId's length.
It's not true for the case when Issuer in token and Issuer template in OIDC configuration match, but don't have a trailing slash.
Example:
Issuer template in OIDC configuration:
https://sts.windows.net/{tenantid}
Issuer in JWT token:
https://sts.windows.net/f645ad92-e38d-4d1a-b510-d1b09a74a8ca
Condition
tokenIssuer.Length <= templateTenantIdPosition + tenantId.Length
ofIsValidIssuer
method results to true becausetokenIssuer.Length
equals totemplateTenantIdPosition
+tenantId.Length
. As a result, the issuer is considered as invalid even when it matches to the issuer template from OIDC config.