Skip to content

release: v1.11.0 - #185

Merged
Jaro-c merged 1 commit into
mainfrom
develop
Jun 29, 2026
Merged

release: v1.11.0#185
Jaro-c merged 1 commit into
mainfrom
develop

Conversation

@Jaro-c

@Jaro-c Jaro-c commented Jun 29, 2026

Copy link
Copy Markdown
Member

Release v1.11.0 — multi-tenant OIDC. No breaking changes.

  • auth/oauth: Config.IssuerValidator (oauth: support multi-tenant issuer validation (Azure common/organizations) #174). An optional predicate that replaces the exact iss match, so a multi-tenant provider (Azure AD common/organizations) whose tokens carry a per-tenant issuer can be verified. Nil by default — exact match unchanged. AzureMultiTenantIssuer() accepts any Azure v2.0 per-tenant issuer; pair with a tid allowlist to restrict tenants. Signature/audience/expiry/nonce still enforced.

Roadmap #174. `VerifyIDToken` matched `iss` exactly, so a multi-tenant
provider (Azure AD common/organizations) — whose tokens carry a
per-tenant issuer — could never validate.

- `Config.IssuerValidator func(issuer string) bool`: optional predicate
that replaces the exact match. **Nil by default → exact match against
`Provider.Issuer` unchanged** (secure default).
- A provider is OIDC-valid with JWKS + (fixed `Issuer` OR
`IssuerValidator`).
- `AzureMultiTenantIssuer()` accepts any
`https://login.microsoftonline.com/<tenant>/v2.0` issuer; docs pair it
with a `tid`-claim allowlist to restrict tenants.
- Only the issuer check is delegated — signature, audience, expiry and
nonce are still enforced.

Tests: validator accepts the approved per-tenant issuer and fails closed
when it rejects; `AzureMultiTenantIssuer` accepts a valid v2.0 issuer
and rejects google/common/v1.0/http. `go build`, `go vet`,
`golangci-lint` (0 issues) and the full suite with `-race` pass.

Closes #174

Signed-off-by: Jaro-c <75870284+Jaro-c@users.noreply.github.com>
@Jaro-c
Jaro-c enabled auto-merge June 29, 2026 18:07
@Jaro-c
Jaro-c merged commit 07cc864 into main Jun 29, 2026
26 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant