v0.3.0 — Microsoft/Entra + Discord + any-OIDC social, richer SCIM
go-auth-x v0.3.0
More social providers and a more conformant SCIM server. Additive at the public API — no removals or renames.
✨ Highlights
Social login: Microsoft/Entra, Discord, and any OIDC provider
- Microsoft / Entra ID (Azure AD) — work, school, and personal accounts; tenant-scoped or
common. Entra tokens often omitemail_verified, so the tenant-owned token email is trusted by default (MICROSOFT_STRICT_EMAIL_VERIFIEDforces strict). - Discord — OAuth2 + REST (
/users/@me), verified email required. - Any OIDC provider —
Config.SocialOIDCregisters GitLab, Okta, Auth0, Keycloak, or any compliant IdP as a social login at/auth/social/<name>/{login,callback}, reusing Google's PKCE +nonce+azp+email_verifiedpath (per-providerAssumeVerifiedopt-in). GET /auth/confignow reports every enabled provider in asocialProvidersarray so the SPA can render the right buttons. The route gate and config report now also cover Facebook and Apple.- New env:
MICROSOFT_CLIENT_ID/MICROSOFT_CLIENT_SECRET/MICROSOFT_TENANT,DISCORD_CLIENT_ID/DISCORD_CLIENT_SECRET.
SCIM 2.0 — more conformant
- Pagination —
startIndex/counton the Users and Groups list endpoints (RFC 7644 §3.4.2.4), with accuratetotalResults/startIndex/itemsPerPage(count=0is a valid count-only query). - Resource timestamps —
meta.created/meta.lastModifiedon Users and Groups (surfaced from the store; omitted when unavailable). - Full schema documents —
GET /Schemasreturns a ListResponse of complete User + Group schema definitions (attributes, types, mutability, uniqueness), plusGET /Schemas/{id}(RFC 7643 §7 / RFC 7644 §4).
🔎 Verified
New tests cover SCIM pagination/meta/schemas and the social routing/registry guards, plus an end-to-end mock-IdP integration test (real OIDC discovery + JWKS + RS256 verify) that confirms the generic-OIDC path rejects unverified emails, nonce mismatches, azp mismatches, and foreign signatures.
Upgrade
go get github.com/alex-savin/go-auth-x@v0.3.0Source-compatible with v0.2.x. AuthUser gains CreatedAt/UpdatedAt and Group gains UpdatedAt (additive fields for SCIM meta); Config gains the Microsoft/Discord/SocialOIDC fields.
Full changelog: https://github.com/alex-savin/go-auth-x/blob/main/CHANGELOG.md