Current Series Release Notes¶
30.0.0-16¶
New Features¶
Keystone now transparently upgrades stored password hashes on successful authentication when the stored hash uses a different algorithm than
[identity] password_hash_algorithm, or a weaker work factor than the currently configured value. This applies to bcrypt, bcrypt_sha256, scrypt, and PBKDF2-SHA512. Operators can raisepassword_hash_roundsor change algorithm without requiring users to reset their passwords. The rehash preserves password metadata (created_at, expires_at, history) and only updates the hash itself. See the administrator guide on password hashing for details.
Upgrade Notes¶
EC2 and S3 token requests that omit a timestamp (
Timestampquery parameter,X-Amz-Date, or the date embedded in the string-to-sign) are now rejected with HTTP 401. All AWS-compliant clients include a timestamp by default; only non-standard or hand-crafted requests are affected.The
[credential] auth_ttlconfiguration option (default 15 minutes) is now reliably applied to all EC2/S3 authentication requests. Previously it was silently ignored for requests that did not include an explicit timestamp field. Operators who have set a customauth_ttlvalue will see it take effect as documented.
The deprecated
[oslo_policy] enforce_scopeconfiguration option has been removed in oslo.policy version 6.0.0 which will impact Keystone as there is no longer any way to disable RBAC policy scope enforcement; scope checks are now always enforced regardless of configuration.If you are not upgrading the oslo.policy to 6.0.0, then there will not be any change in scope enforcement behaviour.
Security Issues¶
[bug 2165281]
POST /v3/credentialsno longer persists client-suppliedtrust_id,app_cred_id, oraccess_token_idvalues in an EC2 credential blob. Those fields are server-managed: they are stripped from the request and only stamped from the caller’s auth context when present. Previously a primary-auth user who learned an unrelated impersonationtrust_idcould forge it into their own EC2 blob and later exchange it viaPOST /v3/ec2tokensorPOST /v3/s3tokensfor a project-scoped token as the trustor.Independently, the EC2/S3 authentication path now requires the credential’s
user_idto be a party to the referenced trust (trustor or trustee), and to match the owning user of a referenced application credential or OAuth1 access token. This closes the auth-time gap for any EC2 credentials that already carry a forged delegation id in their blob.
EC2 and S3 signed token requests now require a timestamp. Previously, requests that omitted the timestamp field bypassed the
[credential] auth_ttlreplay-protection window entirely. Keystone now enforces that every signed EC2/S3 request carries a verifiable timestamp and rejects those that do not with HTTP 401 Unauthorized.For requests forwarded by Swift’s s3token middleware the timestamp is extracted from the signature-verified string-to-sign (SigV2 Date /
x-amz-date/ Expires, or SigV4X-Amz-Date), using the same urlsafe-base64 decoding as signature verification. Extraction failures fail closed.
Bug Fixes¶
Fixed identity provider remote_ids JSON schema validation rejecting values longer than 64 characters. The database column allows 255 characters; the incorrect limit was introduced when federation protocol schema validation reused a 64-character string type for IdP remote IDs. Typical OIDC issuer URLs often exceed 64 characters.
[bug 2154808] Fixed an issue where renaming a project to a name already in use within the same domain via
PATCH /v3/projects/{project_id}returnedHTTP 500instead of the documentedHTTP 409 Conflict. The conflict-message helper assumed the project payload always carried anidkey, which is never the case for the update API (the schema forbidsidin the request body). The helper now derives the project id from the surrounding context, and the correct409 Conflictresponse is returned.
Fixed federation protocol PATCH JSON schema incorrectly requiring
mapping_idon every update. PATCH now accepts a body that changes onlyremote_id_attribute, matching the API behavior before federation protocol request validation was tightened.