l3montree-dev / l3montree-dev/devguard

OIDC provider template drops `claims_source` (generic providers against Okta/Entra get no email claim)

Open Beginner friendly
#3,039 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

component/devguard-helm-chart
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

https://github.com/l3montree-dev/devguard-helm-chart/blob/3f6da06d041aeb5f975ff1d4ef59ce23bcb9cced/templates/kratos/kratos-config.yaml#L93-L109

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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.