chore(deps): update ghcr.io/sebadob/rauthy docker tag to v0.35.0 #477
No reviewers
Labels
No labels
bug
duplicate
enhancement
help wanted
high priority
invalid
L
low priority
M
medium priority
needs refinement
optional
question
S
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#477
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.34.3→0.35.0Release Notes
sebadob/rauthy (ghcr.io/sebadob/rauthy)
v0.35.0Compare Source
Breaking
The Rauthy Issuer was changed!
Before, it was
https://iam.example.com/auth/v1. Now it will behttps://iam.example.com/auth/v1/,with the trailing
/appended. This was a somewhat necessary change to do before v1.0.0. There areclients out there, which do not check for a trailing
/, and only use the issuer URL as a base toconstruct the
openid-configurationURL for instance. This can fail, as the/v1beforehand wasseen as something like a filename, and therefore stripped from the "base URL". This leads to an
invalid URL for the
openid-configuration, and therefore to incompatibility. To improve thissituation, it was decided to change the Issuer and always append the
/in the end.This single character comes with a huge impact!
You will need to update your clients! Their token validation will fail, when they validate for the
old issuer without the trailing
/. This means that this update will require downtime!. Not onRauthy's side, but it will most probably make client logins unavailable until they were updated.
For instance, when I tested with a forgejo instance which used auto-discovery, all it needed was a
restart to trigger a fresh lookup and clear caches. For another Harbor instance however, I needed
to log in and manually update the issuer, and append the
/. This has lead to a weird error (whichwas probably a bug in Harbor), that the user under the hood was now not linked to the existing
provider anymore. This was very unexpected, as it was only updated, never deleted. The fix was to
delete all OIDC users and let them do a fresh onboarding with the next login.
When you use the rauthy-client, I advise you to update to v0.13 BEFORE updating Rauthy. This
version will be compatible with Rauthy v0.35 and the old ones at the same time, as it will accept
the issuer with and without the trailing
/. This means with therauthy-client:0.13+, you willbe able to do the Rauthy upgrade without any downtime.
So sum this up:
rauthy-client, upgrade to0.13beforehand, which means no downtime.clear, if available.
/in the end.Custom Attributes Values
The custom user attributes were taking every value a just a
String, even though the UI said"JSON Value". The backend parsed them as JSON Values, but since the UI always sent
Strings, theywere all JSON Strings, which is not that helpful. This version changes this behavior. There is no
equivalent for Rusts
serde_json::Valuein JS, but a custom parsing function was added to the UI.This now makes it possible to actually parse separate, typed JSON values.
This means when you had set custom attributes before, they were returned like this:
Now instead, since the UI can parse and type the input properly, you will get:
Depending on how you currently extract custom attributes, this may be a breaking change for you.
#1491
Changes
Global KV Store
Sometimes, you need a simple place to store e.g. additional policies or things like that, or maybe
you need some additional information about your Rauthy instance, or some clients, and you want to
have all your authn / authz related information in one place. For that reason, Rauthy now brings
a global KV store.
You can define multiple, independent namespaces. Each namespace is private by default but can
optionally allow public access. You can add additional Access Keys for each namespace. Key / Value
pairs can be added without any prior definition necessary. The value can be any valid
JSONvalue,and it therefore typed automatically. You can add:
They will be auto-detected and returned properly by the API. You can find it in the Admin UI
navigation on the left side.
#1491
Credential Stuffing Detection
Rauthy was already detecting brute-force attempts for a user. When multiple passwords were wrong,
the timeout between retries would be artificially increased. Now it can also detect credential
stuffing over multiple accounts. How it works is pretty simple:
hash(username + password)and store it in the cache.scan_window, which can be configured.blacklisted.
scan_windowwill NOT expire depending on the first add, but the timer will reset with teach event.
There is also a new event you can configure the level for:
#1488
User Enumeration Prevention
When you had an open user registration, it was a known issue that it had the potential for username
enumeration because Rauthy simply behaved like almost all other applications. However, this is
mitigated now. When a user registers and the email exists already, the response will always be
'success'. If it existed before, however, the user will receive a notification email about it with a
link to request a password reset.
#1487
Upgraded to
hiqlite-v0.13The underlying
hiqlitewas upgraded tov0.13. This version includes a small throughputimprovement of ~12%. Apart from that, it comes with optimized and much improved macros, which do
not only boost performance (as seen on the 12%), but they also provide better future maintenance.
Many manual DB deserialization impls are now auto-generated. The same macro was created for Postgres
types as well to have the exact same behavior. Apart from maybe the small performance improvement,
the end user will not really notice anything about it though. It's most about future maintenance,
stability and improved DX.
Another feature that was added with this version is auto-encrypted in-cluster TLS traffic. If you
want to follow a zero trust philosophy, and you don't have something like a service mesh with auto
mTLS in place already, you don't need to manage TLS certificates for hiqlite cluster traffic
manually anymore. You have a new config variable to make it maintenance-free:
#1481
The Binary is a CLI
The
rauthybinary is now a CLI tool. This makes it possible to not only specify a custom path toyour config file, but it also provides additional utility. You can use it to generate new encryption
keys, or to generate a complete config to get you started. More documentation about it will be added
to the book in the future. The tl;dr for now is: You start the Server with
rauthy servenow, andwith the
-coption, you can select a custom config file path:#1481
Bootstrapping
You can now bootstrap a lot more values:
These are read from
*.jsonfiles. You have a new config variable in thebootstrapsection toconfigure the directory:
The book was not updated with all the new types yet, but you can take a look at examples here:
https://github.com/sebadob/rauthy/tree/main/bootstrap
Or take a look at the definitions directly here:
https://github.com/sebadob/rauthy/blob/main/src/data/src/migration/bootstrap/types.rs
#1490
Client IDs can now contain UPPERCASE characters
Some clients like OpenCloud have very weird requirements. They basically dictate their hardcoded
client ID to the IdP, and in this case they expect camelCasedIds. This is an absolutely terrible
design and should never be done, but at least Rauthy supports this weird behavior now.
#1418
Updates for Dynamic Clients
To finalize the support for Matrix "next-gen auth" some more adjustments and improvements have been
added for dynamic clients. The default and allowed scopes are now configurable.
The cleanup scheduler for unused dynamically registered clients was expanded. It can now also clean
up dynamic clients that have been inactive or unsued since X days. The Matrix "next-gen auth"
basically spams the database with dynamic clients (by terrible design imo), and they are forgotten
and never cleaned up at some point. The inactive auto-cleanup fixes issues like these.
#1413
#1419
Hierarchical scope matching for URNs (MSC3861)
This is another addon for Matrix "next-gen auth" only (probably). Rauthy now allowed wildscard scope
matching for matrix via opt-in.
Auth Provider compatibility improvements
To further improve compatibility with different upstream providers, the user info data extraction
was updated and is less strict now. This brings compatibility with e.g. Discord, which sends a very
weird
id_token, which does not contain the values of the requested scoped for whatever reason. Tofix edge cases like this, the extraction of necessary values will first be tried via
id_token, andif it fails, the
/userinfoendpoint will be used in combination with theaccess_token. Thisshould now even fix OAuth2 providers that are trying to do OIDC (but do it not quite right).
#1431
Auth Provider logo deletion
It was not possible to delete a logo for an Auth Provider once it was added. The implementation was
simply never done. You will now see a button next to an uploaded logo which makes it possible to
delete it again.
#1433
SCIM requirements loosened up
To provide better compatibility with (pretty bad) SCIM clients that don't strictly follow the RFC,
various values have been made optional, even though the RFC defines them as required. This brings
compatibility for e.g. clients like VMware vCenter.
#1395
#1402
sigadded to JWKS responseSuper tiny addon to the JWKS endpoint.
sigis no included for each entry, as some clinets seemsto filter by it (and fail if it does not exist, which is their fault actually). To have lees errors
even with bad client impl's, the
sigwill be set for each entry.#1404
Bugfix
can now be up to 2048 characters long.
#1397
#1426
#1403
wrong TTL for cache entries.
#1416
#1420
correctly now in the same ways as when there is no update.
#1427
#1428
/userinfoendpoint only showed the picture ID for a user when it should have shown thecomplete URL instead.
#1429
#1430
preferrred_usernameconfigured asrequired, it was not possible to registera new user as an admin without seeing an error. The user values validation for admin registrations
is now simply ignored, as you would see the full User Values form anyway immediately afterwards,
so you can fix any possible issues there.
#1434
did not support
ED25519or ECDSA keys. The custom verifier now also offers lots of other (onlysafe) algorithms to choose from. No config required.
#1436
prompt=noneto a request during authorization, Rauthy did not return a302and therefore did not redirect back to the client.
#1484
preferred_usernamewas set torequired.#1485
id_tokenand on the/userinforesponse for thephoneclaim was notmatching the RFC. It was called
phonewhen it should have beenphone_number.#1486
Configuration
📅 Schedule: Branch creation - Between day 1 and 7 of the month ( * * 1-7 * * ) (UTC), Automerge - At any time (no schedule defined).
🚦 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 Renovate Bot.
9f9413d11eto9c862ed399View command line instructions
Checkout
From your project repository, check out a new branch and test the changes.