.. _opauth:
Authentification
================
For user authentification, the REDAC Frontend Access Code (*redaccess*) uses
the `OpenID `_ standard.
For convenience, the identiy and access managament server
`Keycloak `_ is running on the
:ref:`Super Controller `.
Keycloak provides user federation, strong authentication, user management,
fine-grained authorization, and more.
This section describes the capabilities of this software and how to manage
access to REDAC. Administrators are strongly encouraged to read the relevant
`Keycloak guides `_ and documentation. This
section will only cover the REDAC-specific configuration settings and
intentionally does not provide a general introduction into the Keycloak software.
.. note::
The Keycloak OpenID service is supposed to secure access to all
**user facing services**. This intentionally does not cover any services of the
:ref:`opnetwork`. All operator and administrator services have their local
on-device user account managament. This is also a resilience measure in order
to enable maintainability of the overall system even if REDAC-specific services
are down.
Scope and capablities of Keycloak on REDAC
------------------------------------------
By default the Keycloak installation has two realms:
1. The *master* (or *default*) realm which is only used for managing Keycloak itself.
Login is at https://auth.redac.anabrid.com/ which shows a big warning that this is
not the correct login for ordinary users.
2. The *redac1-realm* for actual user authentification, currently
managed by :ref:`Anabrid for QCI `. The most important URL for managing
users and their groups in this realm is
https://auth.redac.anabrid.com/admin/master/console/#/redac1-realm/users.
For programming against this realm, the information at the ressource
https://auth.redac.anabrid.com/realms/redac1-realm/.well-known/openid-configuration may
be interesting to get the URLs of OpenID endpoints.
The Keycloak itself is currently configured to be able to send out E-Mails via
an anabrid mailserver with the sending address ``redac1-keycloak@anabrid.dev``. This
is a *no-reply* sender only mail account for the keycloak daemon.
Keycloak is versatile in client policies and modifying the user registration.
REDAC Keycloak clients
----------------------
In Keycloak language, *clients* refer to programs which want to authenticate against
REDAC. Currently, the following *OpenID connect* clients with
*authentification and authorization* capabilities are registered:
* ``redaccess``, served at https://redac.anabrid.com/api
* ``jupyterhub-wup``, served at https://jupyter.redac.anabrid.com/
* Keycloak-internals such as the account console at https://auth.redac.anabrid.com/realms/redac1-realm/account/
The following *OpenID connect* clients with *public access only* capabilities are
registered:
* ``redac-gui``, served at https://redac.anabrid.com/ui