<feed xmlns='http://www.w3.org/2005/Atom'>
<title>openstack/kolla-ansible.git/doc/source/reference/shared-services/keystone-guide.rst, branch stable/2025.1</title>
<subtitle>Unnamed repository; edit this file 'description' to name the repository.
</subtitle>
<id>https://git.platform-os.org/openstack/kolla-ansible.git/atom?h=stable%2F2025.1</id>
<link rel='self' href='https://git.platform-os.org/openstack/kolla-ansible.git/atom?h=stable%2F2025.1'/>
<link rel='alternate' type='text/html' href='https://git.platform-os.org/openstack/kolla-ansible.git/'/>
<updated>2026-04-07T17:56:08+00:00</updated>
<entry>
<title>Remove deleted mod_auth_openidc option</title>
<updated>2026-04-07T17:56:08+00:00</updated>
<author>
<name>Pierre Riteau</name>
<email>pierre@stackhpc.com</email>
</author>
<published>2026-04-07T16:34:55+00:00</published>
<link rel='alternate' type='text/html' href='https://git.platform-os.org/openstack/kolla-ansible.git/commit/?id=4f45162a3a39ad167116dd16f7d4cb31153dc171'/>
<id>urn:sha1:4f45162a3a39ad167116dd16f7d4cb31153dc171</id>
<content type='text'>
The option OIDCTokenBindingPolicy was deleted from mod_auth_openidc [1].
Remove it from our documentation. SSO with Keycloak was successfully
tested without it.

Keep documentation about keystone_federation_oidc_additional_options by
using OIDCOutgoingProxy instead.

[1] https://github.com/OpenIDC/mod_auth_openidc/commit/f9a52507acee0817b9cc91ec194bcea894f77ee0

Change-Id: Icfe4ef0f6070a97c4e43f691643169e71cc2772a
Signed-off-by: Pierre Riteau &lt;pierre@stackhpc.com&gt;
(cherry picked from commit 2e9f2caaf8a8eb19563a1085e6a23d778b279dbc)
</content>
</entry>
<entry>
<title>CI: Add codespell to pep8</title>
<updated>2024-04-22T13:19:23+00:00</updated>
<author>
<name>Michal Nasiadka</name>
<email>mnasiadka@gmail.com</email>
</author>
<published>2024-04-10T16:44:21+00:00</published>
<link rel='alternate' type='text/html' href='https://git.platform-os.org/openstack/kolla-ansible.git/commit/?id=448209459dfca5f361daefe526b3281976b0c732'/>
<id>urn:sha1:448209459dfca5f361daefe526b3281976b0c732</id>
<content type='text'>
Fix existing spelling errors

Change-Id: Ie689cf5a344aaa630a4860448b09242333a8e119
</content>
</entry>
<entry>
<title>keystone: Add support for OIDC options</title>
<updated>2023-11-15T14:49:35+00:00</updated>
<author>
<name>fzakfeld</name>
<email>freerk@zakfeld.com</email>
</author>
<published>2023-08-26T08:53:29+00:00</published>
<link rel='alternate' type='text/html' href='https://git.platform-os.org/openstack/kolla-ansible.git/commit/?id=85be68126e1220a1b2bb879188a1290db0f6edb5'/>
<id>urn:sha1:85be68126e1220a1b2bb879188a1290db0f6edb5</id>
<content type='text'>
Introduce keystone_federation_oidc_additional_options variable

Change-Id: I39b9f35dab6f4e3ac2fcb505aabd2589e6e2ca69
</content>
</entry>
<entry>
<title>Keystone OIDC JWKS fix</title>
<updated>2022-10-03T10:36:11+00:00</updated>
<author>
<name>Jakub Darmach</name>
<email>jakub@stackhpc.com</email>
</author>
<published>2022-09-21T12:36:53+00:00</published>
<link rel='alternate' type='text/html' href='https://git.platform-os.org/openstack/kolla-ansible.git/commit/?id=98929761191e265474459a0b73fdbeb07afd2bb4'/>
<id>urn:sha1:98929761191e265474459a0b73fdbeb07afd2bb4</id>
<content type='text'>
JWT failed to validate on auth-oidc endpoint used by openstack cli
with "could not find key with kid: XX" error. To fix this we need
to use jwks provided in "jwks_uri" by OIDC metadata endpoint.

Missing "ServerName" directive from vhost config causes redirection
to fail in some cases when external tls is enabled.

  - added "keystone_federation_oidc_jwks_uri" variable
  - added "OIDCOAuthVerifyJwksUri" to keystone vhost config
  - added "ServerName" to keystone vhost config
  - jinja templating additional whitespace trimmed to
    correct end result indentation and empty newlines

Closes-bug: 1990375
Change-Id: I4f5c1bd8be8e23cf6299ca4bdfd79e9d98c9a9eb
</content>
</entry>
<entry>
<title>Delete keystone_token_provider variable</title>
<updated>2022-05-17T13:53:23+00:00</updated>
<author>
<name>Ramona Rautenberg</name>
<email>rautenberg@osism.tech</email>
</author>
<published>2022-05-16T12:34:39+00:00</published>
<link rel='alternate' type='text/html' href='https://git.platform-os.org/openstack/kolla-ansible.git/commit/?id=b3b9dff3cdd3d0330fefca215f5e0ec2b3e23b5a'/>
<id>urn:sha1:b3b9dff3cdd3d0330fefca215f5e0ec2b3e23b5a</id>
<content type='text'>
In the last PTG it was decided to drop the keystone_token_provider variable, because there is no other option anymore.

Signed-off-by: Ramona Rautenberg &lt;rautenberg@osism.tech&gt;
Change-Id: I1ee2c3f9b7dbbbf4633c5874cdbb3c4f8c09e277
</content>
</entry>
<entry>
<title>OpenID Connect certifiate file is optional</title>
<updated>2022-01-09T21:55:34+00:00</updated>
<author>
<name>Stig Telfer</name>
<email>stig@stackhpc.com</email>
</author>
<published>2022-01-09T21:55:34+00:00</published>
<link rel='alternate' type='text/html' href='https://git.platform-os.org/openstack/kolla-ansible.git/commit/?id=78f29fdc5deecdf00e86930ca7737b3e67fc9eed'/>
<id>urn:sha1:78f29fdc5deecdf00e86930ca7737b3e67fc9eed</id>
<content type='text'>
Some ID provider configurations do not require a certificate file.
Change the logic to allow this, and update documentation accordingly.

Change-Id: I2c34a6b5894402bbebeb3fb96768789bc3c7fe84
</content>
</entry>
<entry>
<title>Add support to OpenID Connect Authentication flow</title>
<updated>2021-02-15T19:57:47+00:00</updated>
<author>
<name>Pedro Henrique</name>
<email>phpm13@gmail.com</email>
</author>
<published>2019-01-21T11:25:39+00:00</published>
<link rel='alternate' type='text/html' href='https://git.platform-os.org/openstack/kolla-ansible.git/commit/?id=f3fbe837081546c5bfa194f1e8c89f5769b96d5a'/>
<id>urn:sha1:f3fbe837081546c5bfa194f1e8c89f5769b96d5a</id>
<content type='text'>
This pull request adds support for the OpenID Connect authentication
flow in Keystone and enables both ID and access token authentication
flows. The ID token configuration is designed to allow users to
authenticate via Horizon using an identity federation; whereas the
Access token is used to allow users to authenticate in the OpenStack CLI
using a federated user.

Without this PR, if one wants to configure OpenStack to use identity
federation, he/she needs to do a lot of configurations in the keystone,
Horizon, and register quite a good number of different parameters using
the CLI such as mappings, identity providers, federated protocols, and
so on. Therefore, with this PR, we propose a method for operators to
introduce/present the IdP's metadata to Kolla-ansible, and based on the
presented metadata, Kolla-ansible takes care of all of the
configurations to prepare OpenStack to work in a federated environment.

Implements: blueprint add-openid-support
Co-Authored-By: Jason Anderson &lt;jasonanderson@uchicago.edu&gt;
Change-Id: I0203a3470d7f8f2a54d5e126d947f540d93b8210
</content>
</entry>
<entry>
<title>doc: Start using openstackdoctheme's extlink extension</title>
<updated>2019-06-17T15:00:42+00:00</updated>
<author>
<name>chenxing</name>
<email>chason.chan@foxmail.com</email>
</author>
<published>2019-06-14T09:00:14+00:00</published>
<link rel='alternate' type='text/html' href='https://git.platform-os.org/openstack/kolla-ansible.git/commit/?id=31526d4c26e924578cc13e5f1fce7c6907a256e3'/>
<id>urn:sha1:31526d4c26e924578cc13e5f1fce7c6907a256e3</id>
<content type='text'>
This ensures we have version-specific references to other projects [1].
Note that this doesn't mean the URLs are actually valid - we need to do
more work (linkcheck?) here, but it's an improvement nonetheless.

[1] https://docs.openstack.org/openstackdocstheme/latest/#external-link-helper

Change-Id: I118e4d211617c5df66ff04dc04e308a1d2fc67ad
</content>
</entry>
<entry>
<title>Fix keystone fernet key rotation scheduling</title>
<updated>2019-05-17T13:05:48+00:00</updated>
<author>
<name>Mark Goddard</name>
<email>mark@stackhpc.com</email>
</author>
<published>2019-05-16T16:26:45+00:00</published>
<link rel='alternate' type='text/html' href='https://git.platform-os.org/openstack/kolla-ansible.git/commit/?id=6c1442c385450004dd253f3f464fe4336194be99'/>
<id>urn:sha1:6c1442c385450004dd253f3f464fe4336194be99</id>
<content type='text'>
Right now every controller rotates fernet keys. This is nice because
should any controller die, we know the remaining ones will rotate the
keys. However, we are currently over-rotating the keys.

When we over rotate keys, we get logs like this:

 This is not a recognized Fernet token &lt;token&gt; TokenNotFound

Most clients can recover and get a new token, but some clients (like
Nova passing tokens to other services) can't do that because it doesn't
have the password to regenerate a new token.

With three controllers, in crontab in keystone-fernet we see the once a day
correctly staggered across the three controllers:

ssh ctrl1 sudo cat /etc/kolla/keystone-fernet/crontab
0 0 * * * /usr/bin/fernet-rotate.sh
ssh ctrl2 sudo cat /etc/kolla/keystone-fernet/crontab
0 8 * * * /usr/bin/fernet-rotate.sh
ssh ctrl3 sudo cat /etc/kolla/keystone-fernet/crontab
0 16 * * * /usr/bin/fernet-rotate.sh

Currently with three controllers we have this keystone config:

[token]
expiration = 86400 (although, keystone default is one hour)
allow_expired_window = 172800 (this is the keystone default)

[fernet_tokens]
max_active_keys = 4

Currently, kolla-ansible configures key rotation according to the following:

   rotation_interval = token_expiration / num_hosts

This means we rotate keys more quickly the more hosts we have, which doesn't
make much sense.

Keystone docs state:

   max_active_keys =
     ((token_expiration + allow_expired_window) / rotation_interval) + 2

For details see:
https://docs.openstack.org/keystone/stein/admin/fernet-token-faq.html

Rotation is based on pushing out a staging key, so should any server
start using that key, other servers will consider that valid. Then each
server in turn starts using the staging key, each in term demoting the
existing primary key to a secondary key. Eventually you prune the
secondary keys when there is no token in the wild that would need to be
decrypted using that key. So this all makes sense.

This change adds new variables for fernet_token_allow_expired_window and
fernet_key_rotation_interval, so that we can correctly calculate the
correct number of active keys. We now set the default rotation interval
so as to minimise the number of active keys to 3 - one primary, one
secondary, one buffer.

This change also fixes the fernet cron job generator, which was broken
in the following cases:

* requesting an interval of more than 1 day resulted in no jobs
* requesting an interval of more than 60 minutes, unless an exact
  multiple of 60 minutes, resulted in no jobs

It should now be possible to request any interval up to a week divided
by the number of hosts.

Change-Id: I10c82dc5f83653beb60ddb86d558c5602153341a
Closes-Bug: #1809469
</content>
</entry>
</feed>
