-
Notifications
You must be signed in to change notification settings - Fork 1.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add claimMapping enforcement #2233
Add claimMapping enforcement #2233
Conversation
The proper long-term solution for this is using middleware. I have two reservations with this PR:
|
@sagikazarmark Thanks for checking this PR. 👍
Sounds reasonable. I could restructure the PR but will you merge and accept it? I would:
I see this PR as a bridge between the current limitations and your suggestion with the middleware. I assume the latter implementation will require some time to be implemented. |
@Happy2C0de yes, I'd be inclined to merge it until we have a better solution in place. |
@sagikazarmark I did the expected changes and rerun the test. Looks good from my point of view. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks @Happy2C0de !
There are a couple things that needs to be cleared before we can merge it, but overall, it looks good to me.
@sagikazarmark |
@Happy2C0de I think you misunderstood one of my comments. I tried to clarify in a follow-up comment. |
connector/oidc/oidc_test.go
Outdated
}, | ||
}, | ||
{ | ||
name: "overrideWithMissingCustomEmailClaim", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This should result in an error accordingly
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@sagikazarmark
Thanks for the review. I apologise the late reply.
I removed the test. I first thought that I could try to test against the error message but the current test cases are not handling errors either. This would require a bigger restructuring of the testing.
I hope the current changes meet your expectations.
Thanks again for checking!
@Happy2C0de please rebase your PR so that CI can be triggered. Thanks! |
Signed-off-by: Happy2C0de <[email protected]>
Signed-off-by: Happy2C0de <[email protected]>
Signed-off-by: Happy2C0de <[email protected]>
Signed-off-by: Happy2C0de <[email protected]>
Signed-off-by: Happy2C0de <[email protected]>
Signed-off-by: Happy2C0de <[email protected]>
Signed-off-by: Happy2C0de <[email protected]>
2aa6be1
to
419db81
Compare
@sagikazarmark done :) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Perfect, thank you!
The official docker release for this release can be pulled from ``` ghcr.io/dexidp/dex:v2.31.0 ``` ## What's Changed * Bump Dex image to v2.30.0 for Kubernetes deployment example by @rdimitrov in dexidp#2232 * Update Go to 1.17 by @sagikazarmark in dexidp#2247 * refactor: move from io/ioutil to io and os package by @Juneezee in dexidp#2278 * feat: Add MySQL ent-based storage driver by @nabokihms in dexidp#2272 * chore: fix ioutil lint error after merging MySQL ent storage by @nabokihms in dexidp#2282 * Add parametrization of grant type supported in discovery endpoint by @ariary in dexidp#2265 * Resolves dexidp#2111 Option to fetch transitive group membership by @snuggie12 in dexidp#2268 * Return valid JWT access token from password grant by @enj in dexidp#2234 * fix: do not update offlinesession lastUsed field if refresh token was not updated by @nabokihms in dexidp#2300 * fix web static file path slash error for win platform by @copperyp in dexidp#2305 * Update grpc by @sagikazarmark in dexidp#2321 * ci: fix container image permissions by @sagikazarmark in dexidp#2329 * feat: print dex version in the logs by @iam-veeramalla in dexidp#2337 * OAuth connector by @xtremerui in dexidp#1630 * fix: return invalid_grant error on claiming token of another client by @nabokihms in dexidp#2344 * chore: warning about deprecated LDAP groupSearch fields by @nabokihms in dexidp#2026 * Add Nix environment by @sagikazarmark in dexidp#2324 * Update dependencies in the examples package by @sagikazarmark in dexidp#2372 * add sigstore to ADOPTERS.md by @bobcallaway in dexidp#2374 * Add claimMapping enforcement by @Happy2C0de in dexidp#2233 * ci: run trivy scan on container image by @sagikazarmark in dexidp#2387 * chore: update gomplate by @sagikazarmark in dexidp#2388 * chore: update golangci-lint download script by @nabokihms in dexidp#2394 * [fix] Replace /teams API w/ /workspaces endpoints by @rahulchheda in dexidp#2390 * ci: add Docker cache to speed builds up by @sagikazarmark in dexidp#2400 * distroless: Dockerfile works with distroless base image by @ankeesler in dexidp#2378 * Update dependencies by @sagikazarmark in dexidp#2404 * Update API package by @sagikazarmark in dexidp#2405 ## Dependency updates * build(deps): bump entgo.io/ent from 0.8.0 to 0.9.0 by @dependabot in dexidp#2226 * build(deps): bump golang from 1.16.6-alpine3.13 to 1.16.7-alpine3.13 by @dependabot in dexidp#2225 * build(deps): bump google.golang.org/grpc from 1.39.0 to 1.39.1 by @dependabot in dexidp#2227 * build(deps): bump google.golang.org/api from 0.52.0 to 0.53.0 by @dependabot in dexidp#2235 * build(deps): bump google.golang.org/grpc from 1.39.1 to 1.40.0 by @dependabot in dexidp#2236 * build(deps): bump alpine from 3.14.0 to 3.14.1 by @dependabot in dexidp#2229 * build(deps): bump github.com/go-ldap/ldap/v3 from 3.3.0 to 3.4.0 by @dependabot in dexidp#2239 * build(deps): bump google.golang.org/api from 0.53.0 to 0.54.0 by @dependabot in dexidp#2241 * build(deps): bump github.com/AppsFlyer/go-sundheit from 0.4.0 to 0.5.0 by @dependabot in dexidp#2240 * build(deps): bump google.golang.org/protobuf from 1.26.0 to 1.27.1 in /api/v2 by @dependabot in dexidp#2243 * build(deps): bump google.golang.org/grpc from 1.36.1 to 1.40.0 in /api/v2 by @dependabot in dexidp#2242 * build(deps): bump github.com/go-ldap/ldap/v3 from 3.4.0 to 3.4.1 by @dependabot in dexidp#2246 * build(deps): bump entgo.io/ent from 0.9.0 to 0.9.1 by @dependabot in dexidp#2249 * build(deps): bump alpine from 3.14.1 to 3.14.2 by @dependabot in dexidp#2258 * build(deps): bump google.golang.org/api from 0.54.0 to 0.55.0 by @dependabot in dexidp#2259 * build(deps): bump google.golang.org/api from 0.55.0 to 0.56.0 by @dependabot in dexidp#2262 * build(deps): bump github.com/lib/pq from 1.10.2 to 1.10.3 by @dependabot in dexidp#2263 * build(deps): bump github.com/russellhaering/goxmldsig from 1.1.0 to 1.1.1 by @dependabot in dexidp#2270 * build(deps): bump golang from 1.17.0-alpine3.14 to 1.17.1-alpine3.14 by @dependabot in dexidp#2269 * build(deps): bump google.golang.org/api from 0.56.0 to 0.57.0 by @dependabot in dexidp#2277 * build(deps): bump github.com/coreos/go-oidc/v3 from 3.0.0 to 3.1.0 by @dependabot in dexidp#2279 * build(deps): bump golang from 1.17.1-alpine3.14 to 1.17.2-alpine3.14 by @dependabot in dexidp#2292 * build(deps): bump go.etcd.io/etcd/client/pkg/v3 from 3.5.0 to 3.5.1 by @dependabot in dexidp#2298 * build(deps): bump go.etcd.io/etcd/client/v3 from 3.5.0 to 3.5.1 by @dependabot in dexidp#2299 * build(deps): bump google.golang.org/grpc from 1.40.0 to 1.41.0 by @dependabot in dexidp#2285 * build(deps): bump github.com/mattn/go-sqlite3 from 1.14.8 to 1.14.9 by @dependabot in dexidp#2302 * build(deps): bump google.golang.org/grpc from 1.40.0 to 1.41.0 in /api/v2 by @dependabot in dexidp#2286 * build(deps): bump google.golang.org/api from 0.57.0 to 0.58.0 by @dependabot in dexidp#2287 * build(deps): bump google.golang.org/api from 0.58.0 to 0.59.0 by @dependabot in dexidp#2303 * build(deps): bump google.golang.org/api from 0.59.0 to 0.60.0 by @dependabot in dexidp#2308 * build(deps): bump golang from 1.17.2-alpine3.14 to 1.17.3-alpine3.14 by @dependabot in dexidp#2317 * build(deps): bump github.com/lib/pq from 1.10.3 to 1.10.4 by @dependabot in dexidp#2320 * build(deps): bump alpine from 3.14.2 to 3.14.3 by @dependabot in dexidp#2325 * build(deps): bump alpine from 3.14.3 to 3.15.0 by @dependabot in dexidp#2336 * build(deps): bump google.golang.org/api from 0.60.0 to 0.61.0 by @dependabot in dexidp#2341 * build(deps): bump golang from 1.17.3-alpine3.14 to 1.17.4-alpine3.14 by @dependabot in dexidp#2345 * build(deps): bump google.golang.org/api from 0.61.0 to 0.62.0 by @dependabot in dexidp#2348 * build(deps): bump golang from 1.17.4-alpine3.14 to 1.17.5-alpine3.14 by @dependabot in dexidp#2349 * build(deps): bump github.com/spf13/cobra from 1.2.1 to 1.3.0 by @dependabot in dexidp#2354 * build(deps): bump google.golang.org/api from 0.62.0 to 0.63.0 by @dependabot in dexidp#2353 * build(deps): bump google.golang.org/grpc from 1.42.0 to 1.43.0 by @dependabot in dexidp#2355 * build(deps): bump google.golang.org/grpc from 1.42.0 to 1.43.0 in /api/v2 by @dependabot in dexidp#2356 * build(deps): bump github.com/mattn/go-sqlite3 from 1.14.9 to 1.14.10 by @dependabot in dexidp#2362 * build(deps): bump golang from 1.17.5-alpine3.14 to 1.17.6-alpine3.14 by @dependabot in dexidp#2363 * build(deps): bump google.golang.org/api from 0.63.0 to 0.64.0 by @dependabot in dexidp#2364 * build(deps): bump google.golang.org/api from 0.64.0 to 0.65.0 by @dependabot in dexidp#2368 * build(deps): bump github.com/prometheus/client_golang from 1.11.0 to 1.12.0 by @dependabot in dexidp#2380 * build(deps): bump google.golang.org/grpc from 1.43.0 to 1.44.0 by @dependabot in dexidp#2384 * build(deps): bump google.golang.org/grpc from 1.43.0 to 1.44.0 in /api/v2 by @dependabot in dexidp#2385 * build(deps): bump go.etcd.io/etcd/client/v3 from 3.5.1 to 3.5.2 by @dependabot in dexidp#2395 * build(deps): bump aquasecurity/trivy-action from 0.2.1 to 0.2.2 by @dependabot in dexidp#2398 * build(deps): bump google.golang.org/api from 0.65.0 to 0.67.0 by @dependabot in dexidp#2399 * build(deps): bump github.com/prometheus/client_golang from 1.12.0 to 1.12.1 by @dependabot in dexidp#2393 ## New Contributors * @rdimitrov made their first contribution in dexidp#2232 * @Juneezee made their first contribution in dexidp#2278 * @ariary made their first contribution in dexidp#2265 * @snuggie12 made their first contribution in dexidp#2268 * @enj made their first contribution in dexidp#2234 * @copperyp made their first contribution in dexidp#2305 * @iam-veeramalla made their first contribution in dexidp#2337 * @bobcallaway made their first contribution in dexidp#2374 * @Happy2C0de made their first contribution in dexidp#2233 * @rahulchheda made their first contribution in dexidp#2390 * @ankeesler made their first contribution in dexidp#2378 **Full Changelog**: dexidp/dex@v2.30.0...v2.31.0
Overview
Fixes #2162
This PR introduces an
enforce
option to specify if a user would like to enforce the values set inclaimMapping
. For example, the token:Currently, the user is not able to use the
preferred_email
claim because the token contains the defaultemail
claim.This change is very handy and assures backwards compatibility by introducing an
enforce
option. Configuration would look like:Same holds for
preferred_username
andgroups
options withinclaimMapping
.What this PR does / why we need it
Closes #2162
Special notes for your reviewer
OIDC connector tests were adjusted and expanded. Restructured the
claimMapping
struct to atype
in order to simplify the configuration.Does this PR introduce a user-facing change?