This release upgrades FoxIDs to .NET 10, delivering the latest runtime improvements and long term support benefits.
It also includes multiple enhancements across dependencies, Control Client usability, claims handling, and SAML interoperability.
A major addition is support for Password Policy Groups and Aging, giving administrators more flexible password control per environment. Environments can now define up to 10 named policy groups in Environment Settings and assign users to them. If no group is assigned, the environment's base password policy applies.
The policy itself has been extended with controls for maximum password length, banned characters, password history checks, maximum password age, and a soft password-change window. Users now store PasswordLastChanged, and during login passwords are validated against the active policy. Expired passwords require change, while soft aging prompts users without blocking sign in.
In addition, a critical Windows Server certificate loading issue has been resolved through fallback read methods, and a Control Client test application URL update bug has been fixed.
New Features and Improvements
Upgraded to .NET 10
FoxIDs now runs on .NET 10 for improved performance, security, and platform support.
Dependency updates
Updated NuGet packages across the solution, including PgKeyValueDB.
Control Client claims and text updates
- Improved claims mapping in the Control Client.
- Improved rendering and handling of text pages.
Better internal user claim handling
Improved support for phone and email claims on internal users, instead of having the values as identifiers.
Improved browser auto-complete
Enhanced username and password auto-complete behavior in supported browsers.
Improved time formatting in Control Client
Updated date and time presentation for certificates and logs to be more consistent and readable.
UI spacing refinements
Added more space between buttons in button groups for clearer layouts.
Unified SAML Authn endpoint
Added support for using the SAML Authn endpoint as a single URL that:
- Serves IdP metadata on
GET, and
- Handles AuthnRequests via Redirect/POST.
Password Policy Groups and Aging
This release adds support for password policy groups per environment and extends the base environment password policy.
Environments can now hold up to 10 named policy groups, each with an optional display name. Users may be linked to a group by name. If no group is assigned, the environments base password policy applies. The feature is exposed in the Control Client UI under Envionment Settings.
The password policy has been expanded with new controls:
- Maximum password length
- Banned characters list
- Password history check
- Maximum password age
- Soft password-change window
Users now also store `PasswordLastChanged, set on initial password creation and on later password changes.
Login behavior:
- Passwords are validated against the active policy during login.
- If a password exceeds maximum age, the user must change it.
- With a soft password-change window enabled, users are prompted during login and may either change immediately or continue signing in normally.
- Reset-password flows always enforce a hard password change regardless of soft window settings.
Bugs Resolved
Certificate loading reliability fix
A reliability issue affecting certificate loading on Windows Server in certain cases has been resolved.
Fallback certificate read methods have been added to ensure stable certificate handling across environments.
Unable to change client ID on test application
Resolved an issue where the test application URL was not updated when the client ID was changed.