l3montree-dev / l3montree-dev/devguard
OIDC provider template drops `claims_source` (generic providers against Okta/Entra get no email claim)
Nobody has claimed this yet.
- Dominant language
- Go
- Stars
- 161
- Forks
- 43
- Avg merge
- 1d 8h
- Merged PRs (30d)
- 37
Description
Summary
Kratos supports claims_source: userinfo per OIDC provider, and it is required for identity providers whose authorization-code flow issues "thin" ID tokens Okta's org authorization server is the canonical example: profile/email claims are only served from the userinfo endpoint. The chart's provider template renders a fixed field list and silently discards any other key, so a generic Okta provider fails at registration with missing properties: "email".
Chart version: 1.13.4 (main @ 3f6da06).
Details
Only id, provider, clientId, issuerUrl and scope are passed through. The workaround we run today is a raw kratos env override via kratos.additionalEnvs:
kratos:
additionalEnvs:
SELFSERVICE_METHODS_OIDC_CONFIG_PROVIDERS_0_CLAIMS_SOURCE: userinfo
which works but is index-coupled to the providers list and easy to break.
Proposal
{{- if .claimsSource }}
claims_source: {{ .claimsSource }}
{{- end }}
in the provider range, plus the field in schema/schema.ts.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Read templates/kratos/kratos-config.yaml around the provider range and schema/schema.ts to compare the supported provider fields with the issue's claimsSource example. Render the chart with claimsSource set and verify the generated Kratos configuration preserves claims_source without breaking providers that omit it.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- helm, typescript
- Domain
- devops
- Issue type
- Bug
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Activity status
- Active
- Clarity
- Clearly specified
- Newbie friendliness
- 88/100