Files
NLnetLabs-krill/doc/manual/source/multi-user.rst
T
Martin HoffmannandGitHub fc104247ae Restructure authentication policies. (#1232)
This PR restructures how authentication policies are used in Krill. It
removes the use of Oso and its policy definition language and instead
switches to simple, straightforward mappings between permissions, roles,
and users.

The existing concept of roles is augmented to serve as the central
configuration option for limiting a user’s access to certain action and
resources. Roles are now user configurable via the new auth_roles
configuration directive. For each role, a set of permissions has to be
provided. Optionally, a list of resource handles (vulgo: CAs) can be given
in which case access is limited to these resources.

The authentication providers now assign one of these roles to each logged
in user.

The OpenID Connect provider now only determines claims for “id,” i.e., the
user name, and the “role.” Since we replaced the previous use of JMES
paths with custom functions with a more stringent model of matching and
substitution, the configuration had to change in a non-compatible way,
anyway, so we cleaned it up a bit and switched from a map to an array for
the claims.

For the config file provider, this was already possible by adding a “role”
attribute. This has now been changed into a “role” field of the user
details. In order to make upgrading seamless, the “role” attribute is
still accepted but a deprecation warning is logged. Since the auth_users
configuration is not used for the OpenID Connect provider any more, the
password_hash and salt fields of the user details are now mandatory.

Custom policies have been removed.

This is a breaking change.
2025-02-05 11:45:49 +01:00

47 lines
1.4 KiB
ReStructuredText

.. _doc_krill_multi_user:
Login with Named Users
======================
.. versionadded:: v0.9.0
.. figure:: img/multi-user-banner.png
:align: center
:width: 100%
:alt: Multi-user user identity head & shoulders popup
Checking the currently logged in user and user attributes
By default Krill requires users to authenticate using the configured secret
token, and actions in the event history are attributed to a client using the
secret token or to Krill itself.
Krill also supports authenticating users **of the web user interface** with
their own username and credentials. Actions taken by such logged in users are
attributed in the event history to their username.
To login users by username Krill must first be configured either with locally
defined user details and credentials, or with the details necessary to
interact with a separate `OpenID Connect <https://openid.net/connect/>`_
compliant identity provider system.
Further reading:
.. toctree::
:maxdepth: 1
:name: toc-multi-user
multi-user/roles
multi-user/config-file-provider
multi-user/openid-connect-provider
.. history
.. authors
.. license
.. note:: Clients using the Krill REST API directly or via ``krillc`` cannot
authenticate using named users, they can only authenticate using the
secret token. If you need this capability `please let us know
<https://github.com/NLnetLabs/krill/issues/new/choose>`_.