OpenStack Identity (Keystone)
Find a file
Artem Goncharov c63efe1df1 Invalidate token of user disabled in readonly backend
We support custom identity plugins. They (and also LDAP backend) may be
considered as a read-only (not supporting user data modification through
Keystone API). When a user of such backend is disabled in the remote
system Keystone will never learn about that and as such tokens for those
users will remain active. They cannot be renewed, but still they stay
valid.
In order to address this situation we need to do additional steps in the
token validation and identify the current state of the user in the
backend. Due to the use of the token caching it is not possible to reuse
normal token validation functionality (it will never gets invalidated as
such). In order to keep performance impact as low as possible modify the
token validation as following:
- regular checks
- revocation check
- if token is still active and revoke check passed fetch current user
  data. When user is disabled - log a warning (explaining the situation)
  and raise `UserDisabled` exception.

Since Keystone also does not receive a message when user is reactivated
(i.e. it was accidentally disabled) we cannot use the same approach as
for regular user disabling and generate a token revocation event. This
would cause the user to be locked out until the revocation event
expires.

Closes-bug: #2122615
Change-Id: If5b83feabc670ced54ef12fe7826267af7e3419d
Signed-off-by: Artem Goncharov <artem.goncharov@gmail.com>
2025-11-14 09:13:49 +01:00
api-ref Start building openapi doc 2025-05-07 13:30:10 +02:00
config-generator Move policy generator config to config-generator/ 2017-04-21 21:47:32 +00:00
devstack Replace tabs 2025-03-02 01:01:34 +09:00
doc Merge "Updated the doc for MySQL > 5.7" 2025-07-01 14:34:51 +00:00
etc Remove templated catalog driver 2025-01-03 10:36:02 +09:00
examples/pki Remove support for PKI and PKIz tokens 2016-11-01 22:05:01 +00:00
httpd Remove sample mod_wsgi config file 2025-05-23 17:47:03 +00:00
keystone Invalidate token of user disabled in readonly backend 2025-11-14 09:13:49 +01:00
playbooks Add FIPS check job 2021-08-04 14:25:06 -04:00
rally-jobs fix rally docs url 2018-05-21 16:24:51 +08:00
releasenotes Invalidate token of user disabled in readonly backend 2025-11-14 09:13:49 +01:00
tools Remove remaining reference to volume v2 API 2024-10-26 03:08:36 +09:00
.coveragerc Change ignore-errors to ignore_errors 2015-09-21 14:27:58 +00:00
.git-blame-ignore-revs Add blackify commit to blame ignore 2024-07-26 10:05:15 +02:00
.gitignore Start building openapi doc 2025-05-07 13:30:10 +02:00
.gitreview OpenDev Migration Patch 2019-04-19 19:30:29 +00:00
.mailmap update mailmap with gyee's new email 2015-11-03 16:12:01 -08:00
.pre-commit-config.yaml Update pre-commit hook versions 2025-05-28 11:55:35 +02:00
.stestr.conf Migrate to stestr 2017-09-22 11:07:09 -05:00
.zuul.yaml zuul: Remove deprecated job aliases 2025-09-19 03:50:27 +09:00
bindep.txt Replace sphinxcontrib-*diag 2024-11-19 20:45:53 +01:00
CONTRIBUTING.rst Use https for docs.openstack.org references 2017-01-30 16:05:08 -08:00
HACKING.rst Merge "Update links in keystone" 2017-10-06 16:10:56 +00:00
LICENSE Added Apache 2.0 License information. 2012-02-15 17:48:33 -08:00
pyproject.toml Migrate setup configuration to pyproject.toml 2025-09-22 11:49:15 +01:00
README.rst Remove tags from README 2025-04-29 22:25:44 +00:00
reno.yaml Update regex to detect closed branch 2024-03-13 19:27:16 +09:00
requirements.txt Merge "Add explicit dependency on Werkzeug" 2025-03-28 18:08:03 +00:00
ruff.toml Ruff the code 2024-10-30 19:11:22 +00:00
setup.cfg Migrate setup configuration to pyproject.toml 2025-09-22 11:49:15 +01:00
setup.py Enable black in pre-commit 2024-07-26 11:42:33 +02:00
test-requirements.txt Remove dependency on pytz 2024-06-10 09:14:41 +00:00
tox.ini Stop installing removed "memcache" extra 2025-07-01 00:41:25 +09:00

==================
OpenStack Keystone
==================

.. image:: https://governance.openstack.org/tc/badges/keystone.svg

.. Change things from this point on

OpenStack Keystone provides authentication, authorization and service discovery
mechanisms via HTTP primarily for use by projects in the OpenStack family. It
is most commonly deployed as an HTTP interface to existing identity systems,
such as LDAP.

Developer documentation, the source of which is in ``doc/source/``, is
published at:

    https://docs.openstack.org/keystone/latest

The API reference and documentation are available at:

    https://docs.openstack.org/api-ref/identity

The canonical client library is available at:

    https://opendev.org/openstack/python-keystoneclient

Documentation for cloud administrators is available at:

    https://docs.openstack.org/keystone/latest/

The source of documentation for cloud administrators is available at:

    https://opendev.org/openstack/openstack-manuals

Information about our team meeting is available at:

    https://wiki.openstack.org/wiki/Meetings/KeystoneMeeting

Release notes is available at:

    https://docs.openstack.org/releasenotes/keystone

Bugs and feature requests are tracked on Launchpad at:

    https://bugs.launchpad.net/keystone

Future design work is tracked at:

    https://specs.openstack.org/openstack/keystone-specs

Contributors are encouraged to join IRC (``#openstack-keystone`` on OFTC):

    https://wiki.openstack.org/wiki/IRC

Source for the project:

    https://opendev.org/openstack/keystone

For information on contributing to Keystone, see ``CONTRIBUTING.rst``.