chore(deps): update ghcr.io/sebadob/rauthy docker tag to v0.36.0 #555
No reviewers
Labels
No labels
bug
duplicate
enhancement
help wanted
high priority
invalid
L
low priority
M
medium priority
needs refinement
optional
question
S
technical improvement
UX Improvement
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference: local-it/mitgliederverwaltung#555
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "renovate/ghcr.io-sebadob-rauthy-0.x"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
This PR contains the following updates:
0.35.2→0.36.0Release Notes
sebadob/rauthy (ghcr.io/sebadob/rauthy)
v0.36.0Compare Source
Breaking
Technically, this is not a breaking change, but it might be for you. The config parser now has an
additional validation for left-over, unknown keys after parsing has finished. If any data is left,
Rauthy will
panic. This makes sure you cannot have typos or data in your config that does nothingat all. This means this might be a somewhat "breaking" change if you have invalid or additional data
in your config. Just be prepared to adjust your config when you update.
#1587
Security
In some scenarios, when you knew the internal User ID of another user, and you had a similar
Password / MFA configuration, it was possible to get mixed session states during Webauthn Ceremony
Finish. It was e.g. possible to reset the "last login" timestamp or to trigger a "Login from new
location" message for another user.
#1625
Changes
Delegated Group Admins
You can now delegate user management to non-admins via group-scoped roles. A role named
rauthy_admin:<group>makes its holders a group admin for the matching group(s): an exact match bydefault, a trailing
*for a prefix glob, andrauthy_admin:*for all groups.A group admin can manage users that are members of a group it manages (create, edit profile, toggle
enabled, manage in-scope group memberships, reset MFA, reset or set a password, manage the profilepicture, view / invalidate sessions, and send a bulk E-Mail scoped to one of its managed groups) and
gets a read-only view of Sessions, Events and the Blacklist for debugging. It can never modify
roles, delete users, send unscoped bulk E-Mails, manage other admins, or touch any non-user
administration. This is non-breaking unless you already use a custom role starting with
rauthy_admin:; such roles are logged on startup.#1538
Custom Claims on
client_credentialsTokensA client can now carry admin-defined custom claims. You can set a JSON object on a
Clientin theAdmin UI (or via the management API), which is emitted into the access token of the
client_credentialsflow. This lets machine clients carry self-describing claims (workloadidentity, tenant id, deployment profile, ...) without the resource server having to look anything up
by
client_id.By default, the claims are nested under the
customclaim; an opt-inclaims_at_rootflag emitsthem at the token root instead (a collision with a reserved claim fails token issuance). The value
must be a JSON object and is capped at 1024 serialized characters. Dynamic and ephemeral clients
cannot set their own claims.
#1604
Resource Indicators (RFC 8707)
Rauthy now supports RFC 8707 resource indicators. Clients
may send a
resourceparameter on the authorization and token requests (for theauthorization_code,client_credentialsandrefresh_tokengrants) to request anaudience-restricted access token. The requested resource is validated against a new per-client
allowed_resourcesallow-list (empty means deny, returninginvalid_target), and a second newper-client field
default_audlets you always add fixed audiences to a client's tokens without arequest parameter, e.g. for clients that cannot send a
resource.Ephemeral clients deny resource requests by default unless
ephemeral_clients.danger_allow_unvalidated_resourceis enabled or the client document declares itsown
allowed_resources.As part of this, the
audclaim is now emitted as a JSON array when a token carries two or moreaudiences, and stays a single string otherwise. This also fixes the
solid_audcase for Solid-OIDCephemeral clients, which previously emitted a string that merely looked like an array.
#1562
Secrets from file
You now have a 3rd option to provide secrets. The first is to inline them in the config, which makes
the config itself a secret. The 2nd is to provide them as ENV vars, which you should avoid if
possible, but sometimes it's the only way. The new option now is from an additional secrets file.
By default, Rauthy will look for a
./secrets.toml. You can overwrite the path via CLI whenserveing with the-s, --secrets-file <SECRETS_FILE>option.You can only put real secrets inside this file. Anything additional will trigger an error. By
default, these values are ignored unless you explicitly configure them to be read from this file.
To do so, instead of providing a secrets inside the config directly, you can set the values to
This value is case-sensitive. If set to any of the secrets, the config parser expects the value to
exist in the secrets toml file.
As mentioned already, this file must have the exact same sections and variable names as the secret
in the main config. For instance, if you have
database.pg_passwordin the config, and you set thevalue to
"$SECRETS", you must provide adatabase.pg_passwordin the secrets toml.You can optionally read the following secrets in this way:
#1623
PAM User custom home
You can now set a custom home directory for PAM users. To make this work end-to-end, an update of
the
rauthy-pam-nssservice is necessary as well.#1592
API Keys Advanced Bootstrap
API Keys can now be bootstrapped during advanced bootstrapping from JSON files.
#1585
Advanced Bootstrapping
Secrets can now be auto-generated during bootstrapping from files. They are then saved inside an
encrypted container on disk, which you can read via the Rauthy CLI afterwards. For detailed
information, check the book.
#1610
API Keys can manage other API Keys
Even though not being recommended, you can now allow an API key to manage other API keys.
#1609
Pattern hint for
preferred_usernameYou can now specify a custom pattern hint for the pattern validation in the UI for the Preferred
Username.
#1624
Stricter Client ID validation
Client IDs for manually managed clients are now validated against the stricter pattern
^[a-zA-Z0-9._\-]{2,256}$, which matches the existing Admin UI restriction. This applies whencreating a client via the API and when bootstrapping clients from JSON files. Ephemeral clients are
unaffected and may still use a full URI as their ID.
Previously, the backend accepted URI-shaped IDs on these paths, even though such a client cannot be
managed in the Admin UI and behaves completely differently depending on whether ephemeral clients
are enabled. Existing clients with such an ID keep working and can still be updated, since the ID
for an update is taken from the URL path; only creating or bootstrapping a new client with such an
ID is now rejected.
As part of this, the redundant
idfield was removed from the client update request body. It was aleftover from an older API version: on update the ID is always taken from the URL path and could
never be changed, so the field had no effect, and any
idstill sent in the body is now ignored.#1605
Validate Config
The CLI can now validate an existing Rauthy Config:
#1588
Hiqlite
v0.14.0Hiqlite was updated to
v0.14.0.You can now rate-limit all Raft write actions. These are things like cache PUT or e.g. execute
queries. This limit does not affect read actions, since they are local and do not travel through the
network. With this rate-limiting, if tuned properly for your deployment, you can guarantee that you
never saturate your disk, and therefore can never get in a situation where you overwhelm the
cluster, no matter how high requests might spike.
Just as a very rough guideline: When you only write tiny queries that
INSERT3 columns per row,and you limit the Raft to 50.000 requests / s, your disk already writes 350+ MB/s. How you want to
tune this value depends a lot on how much your server can handle and how expensive your queries are.
It's impossible to provide a reasonable default value here.
Each client has its own rate-limiter. This is crucial. If the leader enforced it, all limited
requests would need to travel through the network only for getting limited. This means if you have a
traffic spike that your deployment cannot handle, it would still flood the network. Instead, each
client enforces this locally BEFORE sending out any network requests. At the same time, this means
if you limit to e.g. 100 RPS while having a 3-node cluster, it will effectively mean ~300 RPS for
the whole cluster (assuming even load balancing).
You have new config values:
Bugfix
v24__cust_attrs_token_root.sqlwas named with a lowercasevand wastherefore silently skipped by
refinery(which only matches an uppercaseV/Uprefix). OnPostgres, the
scopes.claims_at_rootcolumn was never created and a fresh bootstrap failed. Themigration is renamed to
V24__cust_attrs_token_root.sql.v0.35.0the URL to the dashboard that's built for a fresh instancewas wrong. It contained an additional
/and was therefore invalid.#1578
Integervalue that could not be parsed successfully, you might haveseen a misleading error message in some cases.
#1586
#1591
prompt=loginwas ignored in certain scnearios.#1627
email_jobswhen running Postgres.#1630
Configuration
📅 Schedule: (UTC)
* * 1-7 * *)🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR has been generated by Mend Renovate.
154101fc0dtoc50702e489View command line instructions
Checkout
From your project repository, check out a new branch and test the changes.