{# steward/templates/settings/auth.html #} {% extends "base.html" %} {% from "_macros.html" import crumbs %} {% block title %}Settings — Auth — Steward{% endblock %} {% block breadcrumb %}{{ crumbs([("Settings", "/settings/"), ("Authentication", "")]) }}{% endblock %} {% block content %} {% set active_tab = "auth" %} {% include "settings/_tabs.html" %}
{{ csrf_field() }}
{# ── OIDC ─────────────────────────────────────────────────────────────────── #}

OIDC / SSO

Supports any OIDC provider — Authentik, Keycloak, Authelia, etc. Uses Authorization Code flow. Local admin login always works regardless of OIDC status.

Authentik: https://<host>/application/o/<slug>/.well-known/openid-configuration

Members → admin role

Members → operator role; others → viewer

{# ── LDAP ─────────────────────────────────────────────────────────────────── #}

LDAP

Binds user credentials against an LDAP/AD directory. Requires the ldap3 Python package (pip install ldap3). If both LDAP and OIDC are enabled, the login form tries LDAP; OIDC uses the SSO button.

Port 636 connects with LDAPS; any other port with StartTLS ticked upgrades the connection before any password is sent. Without either, passwords cross the network in the clear. The server's certificate is checked.

The certificate authority that signed the directory's certificate, when it is not one the system already trusts (a private or self-signed CA).

{username} is replaced with the login username. AD example: (sAMAccountName={username})

Changes take effect immediately.
{% endblock %}