Files
b453b79eb4 Single sign-on only: hide the password form and refuse password sign-ins (#210)
* Single sign-on only: hide the password form and refuse password sign-ins

Adds Admin -> SSO 'Single sign-on only' (and OIDC_DISABLE_PASSWORD_LOGIN).
The login page drops the password form and LoginFormAuthenticator refuses a
password sign-in before looking the user up. It only applies while a whole
provider is in force, the saving administrator must already be linked to the
provider, and app:sso:allow-password-login brings the form back from the
console. Config restore leaves it off. Off by default; one boolean column on
oidc_config.

Closes #169

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>

* Single sign-on only: require a link to the provider being saved

The admin form let the box be ticked by an administrator linked to any
provider, including the one the page held before. Switching providers and
ticking it in one save made a provider they had never used the only way in.
It now compares the stored issuer with the one on the page, without a
trailing slash, as OidcDiscovery does.

Tests for what had none: the console command (clears the setting, keeps the
provider), a restore over a row that had it on, the link to another
provider, and a control showing the same password signs in with the setting
off. The "right credentials" test now posts the right password.

Docs: there is no iOS app.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* Docs: put the iOS app back in the single sign-on page

The previous commit dropped it on the wrong assumption that there is no
iOS app. There is one.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-authored-by: Paul Lützner <karatektus@gmail.com>
2026-10-19 13:09:12 +02:00

21 lines
1.9 KiB
YAML

# Anmeldefehler, in der Domain, in der Symfony sie auflöst.
#
# Siehe security.en.yaml: die Login-Seite übersetzt die Meldung in der Domain
# `security`, nicht in `messages` — ein dort abgelegter Schlüssel erscheint
# roh auf dem Bildschirm.
account.deactivated: Dein Konto wurde von der Administration abgeschaltet. Wende dich an sie, wenn es wieder eingeschaltet werden soll — gelöscht wurde nichts.
account.removed: Dieses Konto wurde entfernt und kann sich nicht mehr anmelden.
# Single Sign-on über einen OpenID-Connect-Anbieter, geworfen von
# App\Security\OidcAuthenticator. Siehe security.en.yaml.
oidc.unavailable: Single Sign-on funktioniert gerade nicht. Melde dich mit deinem Passwort an, oder bitte die Administration, ins Log zu schauen.
oidc.denied: Dein Anmeldeanbieter hat dich nicht zu plMail durchgelassen.
oidc.failed: Die Anmeldung über deinen Anbieter konnte nicht abgeschlossen werden. Versuch es noch einmal.
oidc.no_email: Dein Anmeldeanbieter hat plMail deine E-Mail-Adresse nicht mitgeteilt, also gibt es kein Konto, in das du angemeldet werden könntest.
oidc.email_unverified: Dein Anmeldeanbieter hat deine E-Mail-Adresse nicht bestätigt, deshalb verknüpft plMail sie mit keinem Konto. Wende dich an die Administration.
oidc.ambiguous: Hier gibt es mehr als ein Konto mit deiner E-Mail-Adresse. Bitte die Administration, das zu klären.
oidc.no_account: Für dich gibt es noch kein plMail-Konto. Bitte die Administration, eins mit deiner E-Mail-Adresse anzulegen.
oidc.linked_elsewhere: Das Konto mit deiner E-Mail-Adresse ist bereits mit jemand anderem bei deinem Anmeldeanbieter verknüpft. Wende dich an die Administration.
oidc.unavailable_sso_only: 'Single Sign-on funktioniert gerade nicht. Versuch es gleich noch einmal, oder bitte die Administration, ins Log zu schauen.'
login.password_disabled: 'Die Anmeldung per Passwort ist auf dieser Installation abgeschaltet. Nutze Single Sign-on.'