GithubHelp home page GithubHelp logo

d8-contrib-modules / tfa Goto Github PK

View Code? Open in Web Editor NEW

This project forked from cashwilliams/tfa

5.0 5.0 11.0 246 KB

DEPRECATED - D8 TFA port now on drupal.org

Home Page: https://www.drupal.org/project/tfa

PHP 100.00%

tfa's People

Contributors

adam-bergstein avatar aweingarten avatar cashwilliams avatar dbjpanda avatar doylejd avatar dragos-dumi avatar irek02 avatar nerdstein avatar ravindrasingh22 avatar therealssj avatar varvashenya avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 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  avatar  avatar  avatar  avatar  avatar

tfa's Issues

As an administrator I need to be able to turn off tfa for specific users

Currently a user must login as an admin, attempt to turn it off 2fa for a user, get prompted for a password and then enter the password.

Its impossible to do this for an admin that relies on drush uli to turn off 2fa. You get prompted for a password you don't know! Administrators should be able to disable 2fa without being prompted for a password.

Perform gap analysis

  1. Audit D7 features of TFA
  2. Audit this current D8 port started by Cash
  3. Create issues in this repo for known gaps

Composer Manager Deprecated

Summary
As of 8.1 composer manager stands deprecated and is not the recommend workflow for pulling in dependencies of a module.
The recommend method is using composer
composer require drupal/<modulename>
But here it states that drupal.org's repositories are still in alpha and it is not advised to use this approach or am I understanding this wrong?

This module depends on an external OTP library and having a simple installation approach is crucial for user experience.

Resolution
TDB

Update TFA to allow configurable Encryption

The current plan is to extend the Encrypt module to allow multiple Encryption configurations (config entities). Once this is done, we should be able to assign an encryption entity to each TfaPlugin type if desired.

We will need to wait and see how the Encrypt implementation pans out before finalizing this ticket.

Update the configuration page

Issues:

  1. No mention of fallback plugins? How are we going to decide fallback plugins?
  2. After the configuration is saved, there is no mention of what the user should do next.
    Having a hyperlink to the set up page( when required ) would be a much better!

Any more views are welcome!

Better to replace hook_user_login

I was just looking some codes in tfa.module file and I think it is better to replace "hook_user_login" with "changing route from Old UserLoginForm to NewUserLogin by registering an event subscriber service". We should try to use Symfony rich and Object Oriented Programming (.class) rather than procedural PHP code. (.module).

Use EventDispatcher in the EntryForm submitForm

I'm not familiar with all new things in 8, but I was wondering if we should use in submitForm event dispatcher instead of calling plugin methods.

Could this be used in a way in building or validating form? (I guess not)

Investigate using parent::build() in TfaUserLoginBlock

When using the parent::build() function to get the non-form related code from the core UserLoginBlock the submit handler seems to call the UserLoginForm submit handler even after the $build['user_login_form'] is replaced with the TfaLoginForm and returned from the build function.

Figuring out why this happens and resolving the issue (if possible) would allow us to simplify the build() logic and no duplicate what we can use from the UserLoginForm.

Update Tfa.php to properly handle Send, Login and Fallback plugins

Currently, the only plugin types that gets loaded properly are TfaValidation and TfaSetup plugins. In the __construct method in the Tfa.php class, use the method that the validation plugin loading uses to load other plugin types.

  • Need to make sure the fallback plugins are being sent in properly.
  • Need to update the loading of plugins types to use proper D8 constructs. (See the way it loads Validation plugins for an example.)

Note:: Will likely need to make updates to tfa_basic to have an example to work with in order to get this working.

Disabling TFA requires only password

After you setup TFA if you wish to disable it the form asks for the user password.
After getting the user password should we try to validate it more by going through whatever validation methods the user has setup?

Find Substitute for Google Authenticator Class

Motivattion

  • The google authenticator class saw it's last commit about a year ago and is not maintained anymore.
  • There are quite a few pull requests related to security mainly targetting timing attacks which we should definitely have in the class we use.

Resolution

  1. Find a different repo which is much more updated than the current one.
  2. Fork the Google Authenticator repo and update it as needed.

Clearing plugin definition cache

Motivation
We are shifting validation libraries from tfa basic to tfa.
The plugin definiton will be updated and hence if someone updates the plugin he will face fatal errors as the plugin definitons are still the outdated cached ones.

Resolution
TBD

TFA Schema Structure

The schema for the tfa module is not correct.
For now I have hard coded some values but this needs to be improved in the future to make this more flexible so that other plugins can define the schema for any furthur implementations.

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.