FHEMWEB basicAuth gegen einen Radius-Server

Begonnen von betateilchen, 23 Dezember 2025, 13:06:53

Vorheriges Thema - Nächstes Thema

betateilchen

defmod web2 FHEMWEB 8085 global

defmod allowed4web2 allowed
attr allowed4web2 basicAuth {radius($user,$password)}
attr allowed4web2 validFor web2

sub radius {
  use Authen::Radius; #apt install libauthen-radius-perl
  my ($user,$password) = @_;
  my $clientPassword = getKeyValue("clientPassword");
  my $r = new Authen::Radius(Host => '192.168.123.152', Secret => $clientPassword);
  return $r->check_pwd($user,$password);
}

  • 192.168.123.152 ist die IP Adresse des Radius Servers
  • das Client-Password wurde mit setKeyValue("clientPassword","geheimesPassword") in den FHEM-keystore abgelegt

Warum? Weil in meinem Netzwerk eh ein Radius Server läuft.
Mich hatte einfach interessiert, ob das funktioniert und wie aufwändig es wird.
Dank der perl Library Authen::Radius ist das Ganze aber sehr einfach umzusetzen.

-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

JudgeDredd

Hallo betateilchen,

ja ist denn heute schon Weihnachten ? 😃
Die Idee ist echt prima, das werde ich über die Feiertage definitiv mal ausprobieren.

Ich hatte vor vielen Weihnachten mal das LDAP-Modul (keine Ahnung ob das im SVN ist) ausprobiert, aber dazu hätte ich Änderungen am LDAP-Schema vornehmen müssen, an die ich nicht ran wollte.

So kann ich nun die Auth gegen mein AD machen.

hab Dank für Deinen Vorschlag und ein frohes Fest,
JudgeDredd
Router: Eigenbau (pfSense)
FHEM: Proxmox (DELL R720) | Debian 12 (VM)

CoolTux

#2
Schöne Lösung. Auch nice wäre ein OAuth2 oder besser gleich OIDC. Mein Keycloak würde sich da freuen   ;D
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

betateilchen

Beschreibe mir doch mal das Szenario, das Dir da vorschwebt.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

CoolTux

So ganz allgemein. So wie bisher BasicAuth funktioniert nur eben per SSO mittels OIDC. In meinem Fall an Keycloak.
Wenn der Token abgelaufen ist wird an Keycloak weiter geleitet um sich zu Authentifizieren.
Du musst nicht wissen wie es geht! Du musst nur wissen wo es steht, wie es geht.
Support me to buy new test hardware for development: https://www.paypal.com/paypalme/MOldenburg
My FHEM Git: https://git.cooltux.net/FHEM/
Das TuxNet Wiki:
https://www.cooltux.net

betateilchen

Also im Prinzip sowas ähnliches, wie wir es bei der Anmeldung mit einem OTP gegen den Google-Authenticator bereits haben? Wenn die Anmeldung erfolgreich war, wird das für maximal 86400 Sekunden gecached und nicht mehr neu gefragt. Danach muss man sich neu anmelden.

Das sollte doch eigentlich nicht allzu schwierig umzusetzen sein. Das allowed-device muss ja nur einmal ein "true" zurückbekommen und sich das merken.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!