Skip to content

docs(oidc): document fallback claim lists for acl.oidc.sub.claim and acl.oidc.groups.claim - #575

Open
glasstiger wants to merge 2 commits into
mainfrom
feat/qwp-entra-token-provider
Open

glasstiger wants to merge 2 commits into
mainfrom
feat/qwp-entra-token-provider

Conversation

@glasstiger

Copy link
Copy Markdown
Contributor

Summary

Documents questdb/questdb-enterprise#1267: acl.oidc.sub.claim and acl.oidc.groups.claim now accept a comma-separated list of claim names in priority order, such as name,oid,sub and groups,roles.

  • OIDC guide: new User and group claims section. It covers:
    • how QuestDB reads the principal and the groups from the user information;
    • the fallback rules: list order wins over token order, missing, null and empty claims fall through, null and empty group names are skipped, groups are never combined across claims, only top-level claims count, names are case-sensitive, listed claims must have the expected shape, and unlisted claims are ignored whatever their shape;
    • the startup validation, with the exact error messages;
    • the Failed to find required claims [subClaims=..., groupsClaims=...] log line for rejected logins.
  • Entra ID guide: new subsection on accepting managed identity and service principal (app-only) tokens alongside user logins. It covers:
    • the name,oid,sub / groups,roles configuration;
    • the server-side requirements: keep acl.oidc.groups.encoded.in.token=true, issue v2.0 access tokens (requestedAccessTokenVersion: 2) so that aud matches acl.oidc.audience, and give each identity at least one app role;
    • mapping app roles with CREATE GROUP ... WITH EXTERNAL ALIAS.
  • Mapping user permissions: corrected. A missing or empty groups claim rejects the login. "Authenticated without permissions" applies only when none of the user's groups is mapped.
  • Non-interactive clients: pointer to the new section for tokens issued to applications.
  • Configuration reference:
    • list syntax and the startup validation for both settings;
    • acl.oidc.groups.claim now shows no default, because it is required when OIDC is enabled (this was true before #1267 as well);
    • acl.oidc.pkce.enabled renamed to acl.oidc.pkce.required, the name the server reads, with a note that the old name is ignored.
  • Changelog: October 2026 entries.

Dependencies

…acl.oidc.groups.claim

acl.oidc.sub.claim and acl.oidc.groups.claim accept a comma-separated list
of claim names in priority order (questdb/questdb-enterprise#1267).

- OIDC guide: new "User and group claims" section covering fallback claim
  lists, the rules for missing, null and empty claims, the startup
  validation and the "Failed to find required claims" log message.
- Entra ID guide: accepting managed identity and service principal
  (app-only) tokens alongside user logins.
- Configuration reference: claim list syntax for both settings;
  acl.oidc.groups.claim has no default and is required with OIDC enabled.
- Configuration reference: rename acl.oidc.pkce.enabled to
  acl.oidc.pkce.required, the name the server reads.
- Changelog: October 2026 entries.
@github-actions

github-actions Bot commented Oct 8, 2026 •

Copy link
Copy Markdown

🚀 Build success!

Latest successful preview: https://preview-575--questdb-documentation.netlify.app/docs/

Commit SHA: 4a5cba0

📦 Build generates a preview & updates the link on each commit.

…setup

- Require a single-tenant QuestDB app registration for app-role mapping:
  token mode checks the signature, aud and exp, but not the issuer or tenant
- Add 4.0.2 warnings to the claims section, the Entra ID subsection and the
  configuration reference, including the pre-4.0.2 requirement for a groups
  array in token mode
- Link the non-interactive clients section and the claim examples to the
  Entra ID subsection, and label the example payloads as Entra ID tokens
- Cover app role assignment, managed identity token caching, the HTTP and
  INSERT grants, the token scope, and token refresh for services
- Document token-mode validation (kid, aud, exp, non-empty sub) and its log
  messages under Rejected logins, and add sub to the app-only payload
- Describe token mode as reading the JWT the client presents, not only the
  ID token
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