GithubHelp home page GithubHelp logo

friendsofredaxo / 2factor_auth Goto Github PK

View Code? Open in Web Editor NEW
26.0 26.0 3.0 1.74 MB

2-Faktor-Authentifizierung mittels one-time-password (OTP)

License: MIT License

PHP 90.60% JavaScript 9.40%
2fa auth hacktoberfest otp redaxo redaxo-addon

2factor_auth's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

2factor_auth's Issues

Deutsche Rechtschreibung respektieren

Feature description / Feature Beschreibung
2-Faktor-Authentifizierung wieder mit Bindestrich schreiben und alle anderen neu eingebauten Tippfehler korrigieren.

Zeitfenster zu kurz bei E-Mail

E-Mail Einstellung 5min Periode.

d. h. eine Codegenerierung um z. B. 14:04h ist um bereits 14:05h abgelaufen. Wenn der E-Mail Versand dauert, kann das ein größeres Problem sein, auch wenn man die Periode auf 15min oder 30min setzt, gibt es immer, zwar seltener, einen kritischen Moment.

Man könnte das Zeitfenster dahinter auch akzeptieren (E-Mail Methode). Eigentlich könnte das auch default aktiviert sein. Ich bin mir aber unsicher, ob das nicht zu offen ist.

Beschriftung innerhalb FreeOTP

Die Lösung ist ja kompatibel zu Apps wie FreeOTP, damit teste ich das Addon gerade.

Hier wäre es sinnvoll, als Benutzer den Loginnamen zu zeigen (roter Kasten) sowie oberhalb davon nicht die E-Mail-Adresse + den Titel der Website, sondern vlt. REDAXO CMS domain.de oder REDAXO CMS Websitetitel

image

SecurityTokens beim Setup neben dem QR-Code

damit man ihn via copy&paste am desktop rechner in sein OTP tool übernehmen kann.

der code muss nicht optisch dargestellt werden um ihn abtippen zu können, sondern primär als copy/paste target funktionieren.

Github-Stand: **Error:** Class "one_time_password" not found

Fehler tritt direkt bei der Installation auf. Ich schätze die Class ist nicht nicht geladen wenn install.php aufgerufen wird.

Error: Class "one_time_password" not found
File: redaxo/src/addons/2factor_auth/install.php
Line: 14

Stacktrace
Function File Line
require redaxo/src/core/lib/packages/package.php 285
rex_package->includeFile redaxo/src/core/lib/packages/manager.php 143
rex_package_manager->install redaxo/src/core/lib/packages/addons/manager.php 27
rex_addon_manager->install redaxo/src/core/lib/packages/api_package.php 34
rex_api_package->execute redaxo/src/core/lib/api_function.php 180
rex_api_function::handleCall redaxo/src/core/backend.php 234
require redaxo/src/core/boot.php 143
require redaxo/index.php 9
System report (REDAXO 5.13.2, PHP 8.0.20, MariaDB 10.4.25)
REDAXO
Version 5.13.2
PHP
Version 8.0.20
OPcache yes
Xdebug no
Database
Version MariaDB 10.4.25
Character set utf8mb4
Server
OS Linux
SAPI fpm-fcgi
Webserver Apache
Request
Browser Safari/15.4
Protocol HTTP/1.0
HTTPS yes
Packages
accessdenied 2.0.0-beta2
adminer 1.9.2
backup 2.8.0
be_style 3.0.1
be_style/customizer 3.0.1
be_style/redaxo 3.0.1
bloecks 3.1.1
bloecks/cutncopy 3.1.1
bloecks/dragndrop 3.1.1
cke5 5.2.0-dev
consent_manager 3.0.4
cronjob 2.8.2
cropper 1.3.0
dashboard 1.1
dashboard/demo 0.1.0
fa_iconpicker 1.1.2
ffmpeg 1.0.0
focuspoint 4.0.0
global_settings 2.8.1
hyphenator 1.2.0
icecoder 3.0.0
install 2.9.3
klxm_website 2.0.0
mailer_profile 1.0
maintenance 2.8
matomo 1.2.1
mblock 3.4.4
media_manager 2.12.1
media_srcset 2.0.5
mediapool 2.11.2
metainfo 2.8.4
mform 6.1.2
navigation_array 1.2.0
osmproxy 1.6.0
pdfout 6.0.0-beta1
phpmailer 2.11.1
plyr 3.15.3
project dev
rexstan 1.0.5
search_it 6.9.0
search_it/documentation 6.9.0
search_it/stats 6.9.0
seocheckup 1.6.3
sprog 1.3.0
structure 2.13.2
structure/content 2.13.2
structure/history 2.13.0
theme_lock 1.0.0
uploader 2.3.0
url 2.0.1
users 2.8.2
watson 2.3.0-beta1
xoutputfilter 3.0.0-beta1
xoutputfilter/documentation 1.0.0
xoutputfilter/frontend 3.0.0
yform 4.0.2
yform/email 4.0.2
yform/manager 4.0.2
yform/rest 4.0.2
yform/tools 4.0.2
yform_geo_osm 1.2.6
yform_usability 2.0.3
ylicense 0.9.5
yrewrite 2.8.3
yrewrite_domain_settings 2.1
yrewrite_scheme 3.6.1
zip_install 1.1

2factor lässt sich umgehen, insbesondere bei Admin-Accounts

Aktuell kann man den 2-Faktor-Schutz noch umgehen, über den Safemode.

Bei Redakteuren kann man dann "nur" das Profil ändern, also zum Beispiel das Passwort.
Bei Admin-Accounts kann man sich hingegen aber ein Backup ziehen, etwas importieren, und Addons verwalten. Also zum Beispiel 2factor_auth deinstallieren, und dann den Safemode verlassen.

Verhindern ließe sich das wahrscheinlich, wenn sich 2factor_auth selbst in die config.yml bei den setup_addons eintragen würde (im Safemode werden die setup_addons geladen). Ggf. muss dann noch in der boot.php ein if (!rex::isSetup) ... ergänzt werden.

recovery code / manual mode

Noch meine zwei Cents zu dem Ding:
Die meisten Webseiten, die OTP anbieten, haben noch zusätzlich zum Barcode den "Manualmode", da wird einem ein Code zum abtippen/kopieren angezeigt.

Das ist zum Beispiel super wichtig, wenn man Google OTP auf iOS nutzt, da es keine Backup-Funktion hat und man z.B. beim Verlust eines Smartphones teilweise auf den Support angewiesen und aufgeschmissen ist. Deswegen sollte man diesen "Backup" mit anzeigen, das man sich den Secret z.B ausdruckt oder irgendwo auf nen USB Stick packt, um im Zweifel den OTP wiederherzustellen.

Die Daten dazu scheinen auch anscheinend bereits im Input-Feld vorhanden. Sollte man noch gesondert anzeigen.

_Originally posted by @hirbod in

#1 (comment)

aktueller stand

STATUS: Technisch Fertig / UI rudimentär

was geht

  • OTP ist getestet mit google authenticator
  • barcode kann mittels google authenticator gescanned werden und liefert synchrone OTP werte
  • nach login wird OTP abgefragt

mvp todos

  • Übersetzungen
  • UIs aufhübschen
  • User anleiten

nice 2 have

  • 2factor auth pro user aktivierbar (im profil) - erfordert redaxo/redaxo#196 (comment)
  • für admin erzwingen
  • für alle user erzwingen
  • via console abschaltbar, falls man sich aussperrt

Favicon als Icon in der Auth-App nutzen

bspw. bei FreeOTP, aber sicherlich auch anderen Apps vorhanden. Alternativ ein Logo, das man gezielt aus dem Medienpool wählen kann. Was wäre hier gewünscht?

Wooops nach dem Login (Kollision mit der minibar?)

Update von REDAXO und allen Addons gemacht.
Danach 2factor_auth installiert, eingerichtet und ausprobiert.

Nach dem Login kommt der (das?) Wooops

image

System report (REDAXO 5.7.0-beta1, PHP 7.2.7)
REDAXO
Version 5.7.0-beta1
PHP
Version 7.2.7
OPcache no
Xdebug yes
Database
Version 5.7.21
Character set utf8 (utf8_general_ci)
Server
OS Darwin
SAPI cgi-fcgi
Webserver Apache
Request
Browser Chrome/71.0.3578.98
Protocol HTTP/1.1
HTTPS yes
Packages
2factor_auth 1.0.0-beta1
adminer 1.5.0
backup 2.3.0-beta1
be_style 2.7.0-beta1
be_style/customizer 2.7.0-beta1
be_style/redaxo 2.7.0-beta1
cronjob 2.4.0-beta1
developer 3.8.0
install 2.4.1-beta1
markitup 3.2.0
media_manager 2.6.0-beta1
mediapool 2.5.0-beta1
metainfo 2.3.2-beta1
mform 5.2.4
modulsammlung 4.13.1
modulsammlung/documentation 1.0
out5 1.0
out5/border 0.1
out5/email_url 0.1
out5/login_image 0.1
out5/min 0.1
phpmailer 2.5.0-beta1
quick_navigation 3.5.4
rex5_multiupload 1.0.2
rex_redactor 1.6.5
search_it 6.6.3
search_it/documentation 6.6.3
search_it/plaintext 6.6.3
search_it/stats 6.6.3
sprog 1.1.0
structure 2.7.0-beta1
structure/content 2.7.0-beta1
theme 1.1.1
url 1.0.1
users 2.5.2-beta1
yform 3.0-beta7
yform/docs 3.0-beta7
yform/email 3.0-beta7
yform/geo 2.3-b5
yform/manager 3.0-beta7
yform/tools 3.0-beta7
yrewrite 2.4

otphp library updaten

von der verwendeten https://github.com/Spomky-Labs/otphp bibliothek gibt es 2 neuere major versionen.

wir sollten updates in auge fassen.

evtl muss man auch wg. der mindest php version aufpassen.
aber da es bei 2 factor auth um sicherheit geht, sollte man vermutlich nicht zu konservativ mit der php version umgehen, um die sicherheit derjenigen die aktuelle php versionen verwenden nicht zu gefährden

Label must not contain a colon

screenshot 2019-01-06 at 23 16 05

Assert\InvalidArgumentException: Label must not contain a colon.
File: redaxo/src/addons/2factor_auth/vendor/beberlei/assert/lib/Assert/Assertion.php
Line: 2550

Stacktrace
Function File Line
Assert\Assertion::createException redaxo/src/addons/2factor_auth/vendor/beberlei/assert/lib/Assert/Assertion.php 1658
Assert\Assertion::false redaxo/src/addons/2factor_auth/vendor/spomky-labs/otphp/src/ParameterTrait.php 202
OTPHP\OTP->OTPHP{closure} redaxo/src/addons/2factor_auth/vendor/spomky-labs/otphp/src/ParameterTrait.php 185
OTPHP\OTP->setParameter redaxo/src/addons/2factor_auth/vendor/spomky-labs/otphp/src/ParameterTrait.php 84
OTPHP\OTP->setLabel redaxo/src/addons/2factor_auth/lib/one_time_password_config.php 50
rex_one_time_password_config->init redaxo/src/addons/2factor_auth/lib/one_time_password_config.php 25
rex_one_time_password_config::loadFromDb redaxo/src/addons/2factor_auth/pages/setup.php 25
include redaxo/src/core/lib/packages/package.php 228
rex_package->includeFile redaxo/src/core/lib/be/controller.php 471
rex_be_controller::includePath redaxo/src/core/lib/be/controller.php 413
rex_be_controller::includeCurrentPage redaxo/src/core/backend.php 196
require redaxo/src/core/boot.php 152
require redaxo/index.php 9
System report (REDAXO 5.7.0-beta1, PHP 7.3.0)
REDAXO
Version 5.7.0-beta1
PHP
Version 7.3.0
OPcache no
Xdebug no
Database
Version 5.5.5-10.4.1-MariaDB-1:10.4.1+maria~bionic
Character set latin1 (latin1_swedish_ci)
Server
OS Linux
SAPI apache2handler
Webserver Apache/2.4.25
Request
Browser Chrome/71.0.3578.98
Protocol HTTP/1.1
HTTPS no
Packages
2factor_auth 1.0.0-beta1
backup 2.3.0-beta1
be_style 2.7.0-beta1
be_style/redaxo 2.7.0-beta1
cache_warmup 3.5.0
demo_base 2.6.4
developer 3.8.0
install 2.4.1-beta1
markitup 3.2.0
media_manager 2.6.0-beta1
mediapool 2.5.0-beta1
metainfo 2.3.2-beta1
phpmailer 2.5.0-beta1
project dev
redactor2 3.5.0
sprog 1.1.0
structure 2.7.0-beta1
structure/content 2.7.0-beta1
users 2.5.2-beta1
yform 3.0-beta6
yform/docs 3.0-beta6
yform/email 3.0-beta6
yform/manager 3.0-beta6

2 Wege Authentifikation für einen User deaktivieren - ansonsten "Erzwungen für alle REDAXO-CMS Benutzer"

Ich nutze das Addon 2factor_auth und es sollen alle Redaxo-User zwingend die 2 Wege Authentifikation nutzen bis auf einen User. Dieser User hat nur die Rolle sich "offline" Artikel vorab ansehen zu können und sonst keine Rechte. Bei diesem speziellen User soll keine 2 Wege Authentifikation zwingend sein.
Gibt es da eine Möglichkeit das so einzustellen?
Die derzeitigen Einstellugen "Erzwungen für alle REDAXO-CMS Benutzer" und "Keine Einschränkungen (Optional für jeden)" passen für meinen Fall beide nicht ganz.
Oder kann ich die 2 Wege Authentifikation bei diesem User irgendwie manuell deaktivieren?

„Diesen Computer merken“

Einige Tools (wie z.b mein Ticketing System Zammad) haben eine Open Source lib im Einsatz, die merkt, wenn man von einem neuen Rechner oder anderem Ort eingeloggt wird. Dann wird eine Warnmeldungen per Mail verschickt und 2FA aktiviert. Die genutzte lib kann ich in Erfahrung bringen, wollte nur fragen ob es Sinn macht, erkannte Computer vom 2FA für z.B 14 Tage oder n-Tagen (oder Stunden) auszuschließen?

Oder soll knallhart jeder Login gesichert sein?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.