Forum OpenACS Development: Multi-Factor Authentication in OpenACS

Greetings to all,

I'm interested in developing two C-based modules that can enable two-factor authentication in OpenACS. I'm not planning to change the OpenACS login flow at this stage, but I'm open to feedback and suggestions from the community -- if there is interest I could do that as well.

Along with the C-based modules, I'll provide a sample project that demonstrates how to set up two-factor authentication with google authenticator and a page that verifies the MFA code.

I would appreciate any comments or suggestions on this project. Thanks for reading!

Collapse
Posted by Neophytos Demetriou on
You can follow the development here: https://github.com/jerily/tmfa

This is the first working version. I will do the QR code image generator next.

Collapse
Posted by Neophytos Demetriou on
Initial import of QR code generator NaviServer module: https://github.com/jerily/tqrcodegen

That completes the prerequisites for this project.
I will most likely do the sample OpenACS package tomorrow.
In other words, the sample package will show that two factor authentication is now possible in OpenACS.

If there are any questions, please do not hesitate and contact me.

Collapse
Posted by Neophytos Demetriou on
This is ready, including the sample-2fa package. You can see a screenshot here:
https://github.com/jerily/openacs-packages/tree/main/sample-2fa

I'll prepare a Dockerfile later in the afternoon and update readme with installation instructions.

Collapse
Posted by Neophytos Demetriou on
I have added a Dockerfile so that you can try this out. Here is how:

git clone https://github.com/jerily/openacs-packages.git
cd openacs-packages
docker build . -t neo-openacs-packages:latest
docker run --network host neo-openacs-packages:latest

Once you run the last command, you can point your browser to http://localhost:8000/ and login with the following credentials:

email: test at example dot com
password: test

PS. The OpenACS instance in the docker image also includes the work I did on semantic search so you can try it out without building multiple images.