From 7d07770244dd7610ef289d4ba19fc8841949f726 Mon Sep 17 00:00:00 2001 From: Akshay Joshi Date: Wed, 29 Sep 2021 13:24:18 +0530 Subject: [PATCH] Reverting 'Two-factor authentication' support as it cause OSX and docker build failures. This reverts commit 787a441343988c8e0b24876cc6d3cb81dee317af. --- docs/en_US/getting_started.rst | 1 - docs/en_US/images/mfa_auth_app.png | Bin 98072 -> 0 bytes docs/en_US/images/mfa_email.png | Bin 77094 -> 0 bytes docs/en_US/images/mfa_login.png | Bin 97855 -> 0 bytes docs/en_US/images/mfa_registration.png | Bin 68217 -> 0 bytes docs/en_US/mfa.rst | 88 ---- docs/en_US/release_notes_6_0.rst | 1 - requirements.txt | 3 - web/.eslintignore | 1 - web/config.py | 23 - web/migrations/script.py.mako | 3 +- web/migrations/versions/15c88f765bc8_.py | 44 -- web/pgadmin/authenticate/__init__.py | 22 +- web/pgadmin/authenticate/mfa/__init__.py | 110 ----- web/pgadmin/authenticate/mfa/authenticator.py | 222 ---------- web/pgadmin/authenticate/mfa/email.py | 310 ------------- web/pgadmin/authenticate/mfa/registry.py | 167 ------- .../mfa/static/images/email_lock.svg | 5 - .../mfa/static/images/totp_lock.svg | 5 - .../authenticate/mfa/templates/mfa/email.js | 66 --- .../mfa/templates/mfa/email_code_sent.html | 19 - .../mfa/templates/mfa/email_view.html | 7 - .../mfa/templates/mfa/register.html | 78 ---- .../mfa/templates/mfa/validate.html | 121 ------ .../security/email/send_email_otp.html | 2 - .../security/email/send_email_otp.txt | 2 - .../authenticate/mfa/tests/test_config.py | 154 ------- .../authenticate/mfa/tests/test_mfa.py | 56 --- .../authenticate/mfa/tests/test_mfa_view.py | 66 --- .../mfa/tests/test_user_execution.py | 125 ------ web/pgadmin/authenticate/mfa/tests/utils.py | 111 ----- web/pgadmin/authenticate/mfa/utils.py | 408 ------------------ web/pgadmin/authenticate/mfa/views.py | 346 --------------- web/pgadmin/browser/__init__.py | 12 +- web/pgadmin/browser/static/js/browser.js | 4 +- web/pgadmin/browser/static/js/dialog.js | 110 ----- .../browser/templates/browser/index.html | 11 - web/pgadmin/model/__init__.py | 8 - web/pgadmin/static/img/login.svg | 2 +- web/pgadmin/static/js/pgadmin.js | 2 - web/pgadmin/static/scss/_pgadmin.style.scss | 26 +- .../scss/resources/_default.variables.scss | 1 - .../scss/resources/dark/_theme.variables.scss | 2 - .../high_contrast/_theme.variables.scss | 2 - web/pgadmin/templates/base.html | 6 +- .../templates/security/change_password.html | 4 +- web/pgadmin/templates/security/panel.html | 25 +- web/pgadmin/tools/datagrid/__init__.py | 2 - web/pgadmin/tools/debugger/__init__.py | 2 - web/pgadmin/tools/erd/__init__.py | 2 - web/pgadmin/tools/psql/__init__.py | 2 - web/pgadmin/tools/schema_diff/__init__.py | 2 - .../static/js/user_management.js | 94 +++- web/webpack.shim.js | 1 - 54 files changed, 112 insertions(+), 2774 deletions(-) delete mode 100644 docs/en_US/images/mfa_auth_app.png delete mode 100644 docs/en_US/images/mfa_email.png delete mode 100644 docs/en_US/images/mfa_login.png delete mode 100644 docs/en_US/images/mfa_registration.png delete mode 100644 docs/en_US/mfa.rst delete mode 100644 web/migrations/versions/15c88f765bc8_.py delete mode 100644 web/pgadmin/authenticate/mfa/__init__.py delete mode 100644 web/pgadmin/authenticate/mfa/authenticator.py delete mode 100644 web/pgadmin/authenticate/mfa/email.py delete mode 100644 web/pgadmin/authenticate/mfa/registry.py delete mode 100644 web/pgadmin/authenticate/mfa/static/images/email_lock.svg delete mode 100644 web/pgadmin/authenticate/mfa/static/images/totp_lock.svg delete mode 100644 web/pgadmin/authenticate/mfa/templates/mfa/email.js delete mode 100644 web/pgadmin/authenticate/mfa/templates/mfa/email_code_sent.html delete mode 100644 web/pgadmin/authenticate/mfa/templates/mfa/email_view.html delete mode 100644 web/pgadmin/authenticate/mfa/templates/mfa/register.html delete mode 100644 web/pgadmin/authenticate/mfa/templates/mfa/validate.html delete mode 100644 web/pgadmin/authenticate/mfa/templates/security/email/send_email_otp.html delete mode 100644 web/pgadmin/authenticate/mfa/templates/security/email/send_email_otp.txt delete mode 100644 web/pgadmin/authenticate/mfa/tests/test_config.py delete mode 100644 web/pgadmin/authenticate/mfa/tests/test_mfa.py delete mode 100644 web/pgadmin/authenticate/mfa/tests/test_mfa_view.py delete mode 100644 web/pgadmin/authenticate/mfa/tests/test_user_execution.py delete mode 100644 web/pgadmin/authenticate/mfa/tests/utils.py delete mode 100644 web/pgadmin/authenticate/mfa/utils.py delete mode 100644 web/pgadmin/authenticate/mfa/views.py delete mode 100644 web/pgadmin/browser/static/js/dialog.js diff --git a/docs/en_US/getting_started.rst b/docs/en_US/getting_started.rst index 11ae656dc..700e8d48b 100644 --- a/docs/en_US/getting_started.rst +++ b/docs/en_US/getting_started.rst @@ -33,7 +33,6 @@ Mode is pre-configured for security. deployment login - mfa user_management change_user_password restore_locked_user diff --git a/docs/en_US/images/mfa_auth_app.png b/docs/en_US/images/mfa_auth_app.png deleted file mode 100644 index e38fdc92270b560914504712db7a58cc5d8a362b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 98072 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

--v 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 WjzZfT8Ha)XJ$bC9TA^(5_WuBMv?Ue* diff --git a/docs/en_US/images/mfa_email.png b/docs/en_US/images/mfa_email.png deleted file mode 100644 index 81e3d20a28fca40638c185ec77758094bff854b3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 77094 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�A(K2VOd6NJ1+RliDM61M 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 C#7}(y diff --git a/docs/en_US/images/mfa_registration.png b/docs/en_US/images/mfa_registration.png deleted file mode 100644 index 91867a3fe768ef21abfe469e5eac0122b508e51c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 68217 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 G;sMy zHxN^RClhJ28B?IsZH^W+#$SE{bOZ|&oE{uqe~2g30@1!-n=%vNOGfGMFq;ez59Dy~ zN~l=IxvvWLeik5Qa?-tmm(l)l1LHnO(Y9oIsNOuDJ-Qq5Y9NR>a^e*)Lgie=U#%%B h`8eHJap(*Dkc=*DEgMJl`-1@habX#uY5_g}{{v_` documentation) on the system where pgAdmin is -installed in Server mode. You can copy these settings from *config.py* file and -modify the values for the following parameters. - -.. csv-table:: - :header: "**Parameter**", "**Description**" - :class: longtable - :widths: 35, 55 - - "MFA_ENABLED","The default value for this parameter is False. - To enable 2FA, set the value to *True*" - "SUPPORTED_MFA_LIST", "Set the authentication methods to be supported " - "MFA_EMAIL_SUBJECT", " - Verification Code e.g. pgAdmin 4 - - Verification Code" - "MFA_FORCE_REGISTRATION", "Force the user to configure the authentication - method on login (if no authentication is already configured)." - - -Configure two-factor authentication -=================================== -To configure 2FA for a user, you must click on 'Two-factor Authentication' -in the `User` menu in right-top corner. It will list down all the supported -multi factor authentication methods. Click on 'Setup' of one of those methods -and follow the steps for each authentication method. You will see the `Delete` -button for the authentication method, which is already been configured. -Clicking on `Delete` button will deregister the authentication method for the -current user. - -.. image:: images/mfa_registration.png - :alt: Configure two-factor authentication - :align: center - -You can also force users to configure the two-factor -authentication methods on login by setting *MFA_FORCE_REGISTRATION* parameter -to *True*. - -Email authentication -==================== - -To setup email authentication click on the `Setup` button besides of the -'Email authentication' label. - -.. image:: images/mfa_email.png - :alt: Configure two-factor authentication - :align: center - -Enter the valid email address to send the validation code. Once you get the -validation code enter that code to setup the email authentication. - -*NOTE: You must set the 'Mail server settings' in config_local.py or -config_system.py in order to use 'email' as two-factor authentication method -(see the* :ref:`config.py ` *documentation).* - -Authenticator App -================= - -To setup using any authenticator application which supports Time based One -Time Password (TOTP) click on the `Setup` button besides of the -'Authenticator App' label. - -.. image:: images/mfa_auth_app.png - :alt: Configure two-factor authentication - :align: center - -After the setup when you logged in to the pgAdmin 4 again, it will provide -the option to authenticate using email or authenticator app. - -.. image:: images/mfa_login.png - :alt: Configure two-factor authentication - :align: center diff --git a/docs/en_US/release_notes_6_0.rst b/docs/en_US/release_notes_6_0.rst index f609ddd4b..d384739fd 100644 --- a/docs/en_US/release_notes_6_0.rst +++ b/docs/en_US/release_notes_6_0.rst @@ -10,7 +10,6 @@ New features ************ | `Issue #4211 `_ - Added support for OWNED BY Clause for sequences. -| `Issue #6543 `_ - Added support for Two-factor authentication for improving security. Housekeeping ************ diff --git a/requirements.txt b/requirements.txt index 535736738..d45566a0b 100644 --- a/requirements.txt +++ b/requirements.txt @@ -43,6 +43,3 @@ user-agents==2.2.0 pywinpty==1.1.1; sys_platform=="win32" Authlib==0.15.* requests==2.25.* -pyotp==2.* -qrcode==7.* -Pillow==8.3.* diff --git a/web/.eslintignore b/web/.eslintignore index eab18762b..676a4f03f 100644 --- a/web/.eslintignore +++ b/web/.eslintignore @@ -4,4 +4,3 @@ vendor templates/ templates\ ycache -regression/htmlcov diff --git a/web/config.py b/web/config.py index 8200b7492..72ad01d14 100644 --- a/web/config.py +++ b/web/config.py @@ -729,29 +729,6 @@ OAUTH2_CONFIG = [ OAUTH2_AUTO_CREATE_USER = True -########################################################################## -# Two-factor Authentication Configuration -########################################################################## - -# Set it to True, to enable the two-factor authentication -MFA_ENABLED = True - -# Set it to True, to ask the users to register forcefully for the -# two-authentication methods on logged-in. -MFA_FORCE_REGISTRATION = False - -# pgAdmin supports Two-factor authentication by either sending an one-time code -# to an email, or using the TOTP based application like Google Authenticator. -MFA_SUPPORTED_METHODS = ["email", "authenticator"] - -# NOTE: Please set the 'Mail server settings' to use 'email' as two-factor -# authentication method. - -# Subject for the email verification code -# Default: - Verification Code -# e.g. pgAdmin 4 - Verification Code -MFA_EMAIL_SUBJECT = None - ########################################################################## # PSQL tool settings ########################################################################## diff --git a/web/migrations/script.py.mako b/web/migrations/script.py.mako index 340757c99..8cda71380 100644 --- a/web/migrations/script.py.mako +++ b/web/migrations/script.py.mako @@ -14,7 +14,8 @@ Revises: ${down_revision | comma,n} Create Date: ${create_date} """ -from pgadmin.model import db +from alembic import op +import sqlalchemy as sa ${imports if imports else ""} # revision identifiers, used by Alembic. diff --git a/web/migrations/versions/15c88f765bc8_.py b/web/migrations/versions/15c88f765bc8_.py deleted file mode 100644 index 9775cd63d..000000000 --- a/web/migrations/versions/15c88f765bc8_.py +++ /dev/null @@ -1,44 +0,0 @@ -########################################################################## -# -# pgAdmin 4 - PostgreSQL Tools -# -# Copyright (C) 2013 - 2021, The pgAdmin Development Team -# This software is released under the PostgreSQL Licence -# -########################################################################## - -"""Update DB to version 14 - -Added a table `user_mfa` for saving the options on MFA for different sources. - -Revision ID: 15c88f765bc8 -Revises: 6650c52670c2 -Create Date: 2021-06-22 17:33:12.533825 - -""" -from pgadmin.model import db - - -# revision identifiers, used by Alembic. -revision = '15c88f765bc8' -down_revision = '6650c52670c2' -branch_labels = None -depends_on = None - - -def upgrade(): - db.engine.execute(""" -CREATE TABLE user_mfa( - user_id INTEGER NOT NULL, - mfa_auth VARCHAR(256) NOT NULL, - options TEXT, - PRIMARY KEY (user_id, mfa_auth), - FOREIGN KEY(user_id) REFERENCES user (id) -) - """) - # ### end Alembic commands ### - - -def downgrade(): - # pgAdmin only upgrades, downgrade not implemented. - pass diff --git a/web/pgadmin/authenticate/__init__.py b/web/pgadmin/authenticate/__init__.py index 277424793..82c5ea9b0 100644 --- a/web/pgadmin/authenticate/__init__.py +++ b/web/pgadmin/authenticate/__init__.py @@ -19,7 +19,7 @@ from flask_security.views import _security from flask_security.utils import get_post_logout_redirect, \ get_post_login_redirect, logout_user -from pgadmin.model import db, User +from pgadmin import db, User from pgadmin.utils import PgAdminModule from pgadmin.utils.constants import KERBEROS, INTERNAL, OAUTH2, LDAP from pgadmin.authenticate.registry import AuthSourceRegistry @@ -27,26 +27,6 @@ from pgadmin.authenticate.registry import AuthSourceRegistry MODULE_NAME = 'authenticate' auth_obj = None -_URL_WITH_NEXT_PARAM = "{0}?next={1}" - - -def get_logout_url() -> str: - """ - Returns the logout url based on the current authentication method. - - Returns: - str: logout url - """ - BROWSER_INDEX = 'browser.index' - if config.SERVER_MODE and\ - session['auth_source_manager']['current_source'] == \ - KERBEROS: - return _URL_WITH_NEXT_PARAM.format(url_for( - 'authenticate.kerberos_logout'), url_for(BROWSER_INDEX)) - - return _URL_WITH_NEXT_PARAM.format( - url_for('security.logout'), url_for(BROWSER_INDEX)) - class AuthenticateModule(PgAdminModule): def get_exposed_url_endpoints(self): diff --git a/web/pgadmin/authenticate/mfa/__init__.py b/web/pgadmin/authenticate/mfa/__init__.py deleted file mode 100644 index 5d9459d2c..000000000 --- a/web/pgadmin/authenticate/mfa/__init__.py +++ /dev/null @@ -1,110 +0,0 @@ -############################################################################## -# -# pgAdmin 4 - PostgreSQL Tools -# -# Copyright (C) 2013 - 2021, The pgAdmin Development Team -# This software is released under the PostgreSQL Licence -# -############################################################################## -"""Multi-factor Authentication (MFA) implementation""" - -from flask import Blueprint, session, Flask -from flask_babelex import gettext as _ - -import config -from .utils import mfa_enabled, segregate_valid_and_invalid_mfa_methods - -from .registry import MultiFactorAuthRegistry -from .views import validate_view, registration_view - - -def __create_blueprint() -> Blueprint: - """ - Geneates the blueprint for 'mfa' endpoint, and also - define the required - endpoints within that blueprint. - - Returns: - Blueprint: MFA blueprint object - """ - blueprint = Blueprint( - "mfa", __name__, url_prefix="/mfa", - static_folder="static", - template_folder="templates" - ) - - blueprint.add_url_rule( - "/validate", "validate", validate_view, methods=("GET", "POST",) - ) - - blueprint.add_url_rule( - "/register", "register", registration_view, methods=("GET", "POST",) - ) - - return blueprint - - -def init_app(app: Flask): - """ - Initialize the flask application for the multi-faction authentication - end-points, when the SERVER_MODE is set to True, and MFA_ENABLED is set to - True in the configuration file. - - Args: - app (Flask): Flask Application object - """ - - if getattr(config, "SERVER_MODE", False) is False and \ - getattr(config, "MFA_ENABLED", False) is False: - return - - MultiFactorAuthRegistry.load_modules(app) - - def exclude_invalid_mfa_auth_methods(): - """ - Exclude the invalid MFA auth methods specified in MFA_SUPPORTED_METHODS - configuration. - """ - - supported_methods = getattr(config, "MFA_SUPPORTED_METHODS", []) - invalid_auth_methods = [] - - supported_methods, invalid_auth_methods = \ - segregate_valid_and_invalid_mfa_methods(supported_methods) - - for auth_method in invalid_auth_methods: - app.logger.warning(_( - "'{}' is not a valid multi-factor authentication method" - ).format(auth_method)) - - config.MFA_SUPPORTED_METHODS = supported_methods - blueprint = __create_blueprint() - - for mfa_method in supported_methods: - mfa = MultiFactorAuthRegistry.get(mfa_method) - mfa.register_url_endpoints(blueprint) - - app.register_blueprint(blueprint) - app.register_logout_hook(blueprint) - - from flask_login import user_logged_out - - @user_logged_out.connect_via(app) - def clear_session_on_login(sender, user): - session['mfa_authenticated'] = False - - def disable_mfa(): - """ - Set MFA_ENABLED configuration to False. - - Also - log a warning message about no valid authentication method found - during initialization. - """ - if getattr(config, 'MFA_ENABLED', False) is True and \ - getattr(config, 'SERVER_MODE', False) is True: - app.logger.warning(_( - "No valid multi-factor authentication found, hence - " - "disabling it." - )) - config.MFA_ENABLED = False - - mfa_enabled(exclude_invalid_mfa_auth_methods, disable_mfa) diff --git a/web/pgadmin/authenticate/mfa/authenticator.py b/web/pgadmin/authenticate/mfa/authenticator.py deleted file mode 100644 index 6cc61e5b1..000000000 --- a/web/pgadmin/authenticate/mfa/authenticator.py +++ /dev/null @@ -1,222 +0,0 @@ -############################################################################## -# -# pgAdmin 4 - PostgreSQL Tools -# -# Copyright (C) 2013 - 2021, The pgAdmin Development Team -# This software is released under the PostgreSQL Licence -# -############################################################################## -"""Multi-factor Authentication implementation for Time-based One-Time Password -(TOTP) applications""" - -import base64 -from io import BytesIO -from typing import Union - -from flask import url_for, session, flash -from flask_babelex import gettext as _ -from flask_login import current_user -import pyotp -import qrcode - -import config -from pgadmin.model import UserMFA - -from .registry import BaseMFAuth -from .utils import ValidationException, fetch_auth_option, mfa_add - - -_TOTP_AUTH_METHOD = "authenticator" -_TOTP_AUTHENTICATOR = _("Authenticator App") - - -class TOTPAuthenticator(BaseMFAuth): - """ - Authenction class for TOTP based authentication. - - Base Class: BaseMFAuth - """ - - @classmethod - def __create_topt_for_currentuser(cls) -> pyotp.TOTP: - """ - Create the TOPT object using the secret stored for the current user in - the configuration database. - - Assumption: Configuration database is not modified by anybody manually, - and removed the secrete for the current user. - - Raises: - ValidationException: Raises when user is not registered for this - authenction method. - - Returns: - pyotp.TOTP: TOTP object for the current user (if registered) - """ - options, found = fetch_auth_option(_TOTP_AUTH_METHOD) - - if found is False: - raise ValidationException(_( - "User has not registered the Time-based One-Time Password " - "(TOTP) Authenticator for authentication." - )) - - if options is None or options == '': - raise ValidationException(_( - "User does not have valid HASH to generate the OTP." - )) - - return pyotp.TOTP(options) - - @property - def name(self) -> str: - """ - Name of the authetication method for internal presentation. - - Returns: - str: Short name for this authentication method - """ - return _TOTP_AUTH_METHOD - - @property - def label(self) -> str: - """ - Label for the UI for this authentication method. - - Returns: - str: User presentable string for this auth method - """ - return _(_TOTP_AUTHENTICATOR) - - @property - def icon(self) -> str: - """ - Property for the icon url string for this auth method, to be used on - the authentication or registration page. - - Returns: - str: url for the icon representation for this auth method - """ - return url_for("mfa.static", filename="images/totp_lock.svg") - - def validate(self, **kwargs): - """ - Validate the code sent using the HTTP request. - - Raises: - ValidationException: Raises when code is not valid - """ - code = kwargs.get('code', None) - totp = TOTPAuthenticator.__create_topt_for_currentuser() - - if totp.verify(code) is False: - raise ValidationException("Invalid Code") - - def validation_view(self) -> str: - """ - Generate the portion of the view to render on the authentication page - - Returns: - str: Authentication view as a string - """ - return ( - "

{auth_description}
" - "
" - " " - "
" - ).format( - auth_description=_( - "Enter the code shown in your authenticator application for " - "TOTP (Time-based One-Time Password)" - ), - otp_placeholder=_("Enter code"), - ) - - def _registration_view(self) -> str: - """ - Internal function to generate a view for the registration page. - - View will contain the QRCode image for the TOTP based authenticator - applications to scan. - - Returns: - str: Registration view with QRcode for TOTP based applications - """ - - option = session.pop('mfa_authenticator_opt', None) - if option is None: - option = pyotp.random_base32() - session['mfa_authenticator_opt'] = option - totp = pyotp.TOTP(option) - - uri = totp.provisioning_uri( - current_user.username, issuer_name=getattr( - config, "APP_NAME", "pgAdmin 4" - ) - ) - - img = qrcode.make(uri) - buffered = BytesIO() - img.save(buffered, format="JPEG") - img_base64 = base64.b64encode(buffered.getvalue()) - - return "".join([ - "
{auth_title}
", - "", - "", - "{qrcode_alt_text}", - "
{auth_description}
", - "
", - "", - "
", - ]).format( - auth_title=_(_TOTP_AUTHENTICATOR), - auth_method=_TOTP_AUTH_METHOD, - image=img_base64.decode("utf-8"), - qrcode_alt_text=_("TOTP Authenticator QRCode"), - auth_description=_( - "Scan the QR code and then enter the code from the " - "TOTP Authenticator application" - ), otp_placeholder=_("Enter code") - ) - - def registration_view(self, form_data) -> Union[str, None]: - """ - Returns the registration view for this authentication method. - - It is also responsible for validating the code during the registration. - - Args: - form_data (dict): Form data as a dictionary sent from the - registration page for rendering or validation of - the code. - - Returns: - str: Registration view for the 'authenticator' method if it is not - a request for the validation of the code or the code sent is - not a valid TOTP code, otherwise - it will return None. - """ - - if 'VALIDATE' not in form_data: - return self._registration_view() - - code = form_data.get('code', None) - authenticator_opt = session.get('mfa_authenticator_opt', None) - if authenticator_opt is None or \ - pyotp.TOTP(authenticator_opt).verify(code) is False: - flash(_("Failed to validate the code"), "danger") - return self._registration_view() - - mfa_add(_TOTP_AUTH_METHOD, authenticator_opt) - flash(_( - "TOTP Authenticator registered successfully for authentication." - ), "success") - session.pop('mfa_authenticator_opt', None) - - return None diff --git a/web/pgadmin/authenticate/mfa/email.py b/web/pgadmin/authenticate/mfa/email.py deleted file mode 100644 index e75a2d8b5..000000000 --- a/web/pgadmin/authenticate/mfa/email.py +++ /dev/null @@ -1,310 +0,0 @@ -############################################################################## -# -# pgAdmin 4 - PostgreSQL Tools -# -# Copyright (C) 2013 - 2021, The pgAdmin Development Team -# This software is released under the PostgreSQL Licence -# -############################################################################## -"""Multi-factor Authentication implementation by sending OTP through email""" - -from flask import url_for, session, Response, render_template, current_app, \ - flash -from flask_babelex import gettext as _ -from flask_login import current_user -from flask_security import send_mail - -import config -from pgadmin.utils.csrf import pgCSRFProtect -from .registry import BaseMFAuth -from .utils import ValidationException, mfa_add, fetch_auth_option - - -def __generate_otp() -> str: - """ - Generate a six-digits one-time-password (OTP) for the current user. - - Returns: - str: A six-digits OTP for the current user - """ - import time - import base64 - import codecs - import random - - code = codecs.encode("{}{}{}".format( - time.time(), current_user.username, random.randint(1000, 9999) - ).encode(), "hex") - - res = 0 - idx = 0 - - while idx < len(code): - res += int((code[idx:idx + 6]).decode('utf-8'), base=16) - res %= 1000000 - idx += 5 - - return str(res).zfill(6) - - -def _send_code_to_email(_email: str = None) -> (bool, int, str): - """ - Send the code to the email address, provided in the argument or to the - email address of the current user, provided during the registration. - - Args: - _email (str, optional): Email Address, where to send the OTP code. - Defaults to None. - - Returns: - (bool, int, str): Returns a set as (failed?, HTTP Code, message string) - If 'failed?' is True, message contains the error - message for the user, else it contains the success - message for the user to consume. - """ - - if not current_user.is_authenticated: - return False, 401, _("Not accessible") - - if _email is None: - _email = getattr(current_user, 'email', None) - - if _email is None: - return False, 401, _("No email address is available.") - - try: - session["mfa_email_code"] = __generate_otp() - subject = getattr(config, 'MFA_EMAIL_SUBJECT', None) - - if subject is None: - subject = _("{} - Verification Code").format(config.APP_NAME) - - send_mail( - subject, - _email, - "send_email_otp", - user=current_user, - code=session["mfa_email_code"] - ) - except OSError as ose: - current_app.logger.exception(ose) - return False, 503, _("Failed to send the code to email.") + \ - "\n" + str(ose) - - message = _( - "A verification code was sent to {}. Check your email and enter " - "the code." - ).format(_mask_email(_email)) - - return True, 200, message - - -def _mask_email(_email: str) -> str: - """ - - Args: - _email (str): Email address to be masked - - Returns: - str: Masked email address - """ - import re - email_split = re.split('@', _email) - username, domain = email_split - domain_front, *domain_back_list = re.split('[.]', domain) - users = re.split('[.]', username) - - def _mask_except_first_char(_str: str) -> str: - """ - Mask all characters except first character of the input string. - Args: - _str (str): Input string to be masked - - Returns: - str: Masked string - """ - return _str[0] + '*' * (len(_str) - 1) - - return '.'.join([_mask_except_first_char(user) for user in users]) + \ - '@' + _mask_except_first_char(domain_front) + '.' + \ - '.'.join(domain_back_list) - - -def send_email_code() -> Response: - """ - Send the code to the users' email address, stored during the registration. - - Raises: - ValidationException: Raise this exception when user is not registered - for this authentication method. - - Returns: - Flask.Response: Response containing the HTML portion after sending the - code to the registered email address of the user. - """ - - options, found = fetch_auth_option(EMAIL_AUTH_METHOD) - - if found is False: - raise ValidationException(_( - "User has not registered for email authentication" - )) - - success, http_code, message = _send_code_to_email(options) - - if success is False: - return Response(message, http_code, mimetype='text/html') - - return Response(render_template( - "mfa/email_code_sent.html", _=_, - message=message, - ), http_code, mimetype='text/html') - - -@pgCSRFProtect.exempt -def javascript() -> Response: - """ - Returns the javascript code for the email authentication method. - - Returns: - Flask.Response: Response object conataining the javscript code for the - email auth method. - """ - if not current_user.is_authenticated: - return Response(_("Not accessible"), 401, mimetype="text/plain") - - return Response(render_template( - "mfa/email.js", _=_, url_for=url_for, - ), 200, mimetype="text/javascript") - - -EMAIL_AUTH_METHOD = 'email' - - -def email_authentication_label(): - return _('Email Authentication') - - -class EmailAuthentication(BaseMFAuth): - - @property - def name(self): - return EMAIL_AUTH_METHOD - - @property - def label(self): - return email_authentication_label() - - def validate(self, **kwargs): - code = kwargs.get('code', None) - email_otp = session.get("mfa_email_code", None) - if code is not None and email_otp is not None and code == email_otp: - session.pop("mfa_email_code") - return - raise ValidationException("Invalid code") - - def validation_view(self): - session.pop("mfa_email_code", None) - return render_template( - "mfa/email_view.html", _=_ - ) - - def _registration_view(self): - email = getattr(current_user, 'email', '') - return "\n".join([ - "
{label}
", - "", - "", - "
{description}
", - "
", - " ", - "
", - "", - ]).format( - label=email_authentication_label(), - auth_method=EMAIL_AUTH_METHOD, - description=_("Enter the email address to send a code"), - email_address_placeholder=_("Email address"), - email_address=email, - note_label=_("Note"), - note=_( - "This email address will not update the user's email address." - ), - ) - - def _registration_view_after_code_sent(self, _form_data): - - session['mfa_email_id'] = _form_data.get('send_to', None) - success, http_code, message = _send_code_to_email( - session['mfa_email_id'] - ) - - if success is False: - flash(message, 'danger') - return None - - return "\n".join([ - "
{label}
", - "", - "", - "
{message}
", - "
", - " ", - "
", - ]).format( - label=email_authentication_label(), - auth_method=EMAIL_AUTH_METHOD, - message=message, - otp_placeholder=_("Enter code here") - ) - - def registration_view(self, _form_data): - - if 'validate' in _form_data: - if _form_data['validate'] == 'send_code': - return self._registration_view_after_code_sent(_form_data) - - code = _form_data.get('code', 'unknown') - - if code is not None and \ - code == session.get("mfa_email_code", None) and \ - session.get("mfa_email_id", None) is not None: - mfa_add(EMAIL_AUTH_METHOD, session['mfa_email_id']) - - flash(_( - "Email Authentication registered successfully." - ), "success") - - session.pop('mfa_email_code', None) - - return None - - flash(_('Invalid code'), 'danger') - - return self._registration_view() - - def register_url_endpoints(self, blueprint): - blueprint.add_url_rule( - "/send_email_code", "send_email_code", send_email_code, - methods=("POST", ) - ) - blueprint.add_url_rule( - "/email.js", "email_js", javascript, methods=("GET", ) - ) - - @property - def icon(self): - return url_for("mfa.static", filename="images/email_lock.svg") - - @property - def validate_script(self): - return url_for("mfa.email_js") diff --git a/web/pgadmin/authenticate/mfa/registry.py b/web/pgadmin/authenticate/mfa/registry.py deleted file mode 100644 index 1469551fb..000000000 --- a/web/pgadmin/authenticate/mfa/registry.py +++ /dev/null @@ -1,167 +0,0 @@ -########################################################################## -# -# pgAdmin 4 - PostgreSQL Tools -# -# Copyright (C) 2013 - 2021, The pgAdmin Development Team -# This software is released under the PostgreSQL Licence -# -########################################################################## - -"""External 2FA Authentication Registry.""" -from abc import abstractmethod, abstractproperty -import six -from typing import Union - -import flask - -from pgadmin.utils.dynamic_registry import create_registry_metaclass - - -""" -class: MultiFactorAuthRegistry - -An registry factory for the multi-factor authentication methods. -""" -MultiFactorAuthRegistry = create_registry_metaclass( - 'MultiFactorAuthRegistry', __package__, decorate_as_module=True -) - - -@six.add_metaclass(MultiFactorAuthRegistry) -class BaseMFAuth(): - """ - Base Multi-Factor Authentication (MFA) class - - A Class implements this class will be registered with - the registry class 'MultiFactorAuthRegistry', and it will be automatically - available as a MFA method. - """ - - @abstractproperty - def name(self) -> str: - """ - Represents the short name for the authentiation method. It can be used - in the MFA_SUPPORTED_METHODS parameter in the configuration as a - supported authentication method. - - Returns: - str: Short name for this authentication method - - NOTE: Name must not contain special characters - """ - pass - - @abstractproperty - def label(self) -> str: - """ - Represents the user visible name for the authentiation method. It will - be visible on the authentication page and registration page. - - Returns: - str: Value for the UI for the authentication method - """ - pass - - @property - def icon(self) -> str: - """ - A url for the icon for the authentication method. - - Returns: - str: Value for the UI for the authentication method - """ - return "" - - @property - def validate_script(self) -> Union[str, None]: - """ - A url route for the javscript required for the auth method. - - Override this method for the auth methods, when it required a - javascript on the authentication page. - - Returns: - Union[str, None]: Url for the auth method or None - """ - return None - - @abstractmethod - def validate(self, **kwargs) -> str: - """ - Validate the code/password sent using the HTTP request during the - authentication process. - - If the validation is not done successfully for some reason, it must - raise a ValidationException exception. - - Parameters: - kwargs: data sent during the authentication process - - Raises: - ValidationException: Raises when code/otp is not valid - """ - pass - - @abstractmethod - def validation_view(self) -> str: - """ - Authenction route (view) for the auth method. - """ - pass - - @abstractmethod - def registration_view(self, form_data) -> str: - """ - Registration View for the auth method. - - Must override this for rendering the registration page for the auth - method. - - Args: - form_data (dict): Form data sent from the registration page. - """ - pass - - def register_url_endpoints(self, blueprint: flask.Blueprint) -> None: - """ - Register the URL end-points for the auth method (special case). - - Args: - blueprint (flask.Blueprint): MFA blueprint for registering the - end-point for the method - - - NOTE: Override this method only when there is special need to expose - an url end-point for the auth method. - """ - pass - - def to_dict(self) -> dict: - """ - A diction representation for the auth method. - - Returns: - dict (id, label, icon): Diction representation for an auth method. - """ - return { - "id": self.name, - "label": self.label, - "icon": self.icon, - } - - def validation_view_dict(self, selected_mfa: str) -> dict: - """ - A diction representation for the auth method to be used on the - registration page. - - Returns: - dict: Diction representation for an auth method to be used on the - regisration page. - """ - res = self.to_dict() - - res['view'] = self.validation_view() - res['selected'] = selected_mfa == self.name - res['script'] = self.validate_script - - return res diff --git a/web/pgadmin/authenticate/mfa/static/images/email_lock.svg b/web/pgadmin/authenticate/mfa/static/images/email_lock.svg deleted file mode 100644 index 385b99b60..000000000 --- a/web/pgadmin/authenticate/mfa/static/images/email_lock.svg +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/web/pgadmin/authenticate/mfa/static/images/totp_lock.svg b/web/pgadmin/authenticate/mfa/static/images/totp_lock.svg deleted file mode 100644 index fb3d685a9..000000000 --- a/web/pgadmin/authenticate/mfa/static/images/totp_lock.svg +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/web/pgadmin/authenticate/mfa/templates/mfa/email.js b/web/pgadmin/authenticate/mfa/templates/mfa/email.js deleted file mode 100644 index e6fe6f57b..000000000 --- a/web/pgadmin/authenticate/mfa/templates/mfa/email.js +++ /dev/null @@ -1,66 +0,0 @@ -///////////////////////////////////////////////////////////// -// -// pgAdmin 4 - PostgreSQL Tools -// -// Copyright (C) 2013 - 2021, The pgAdmin Development Team -// This software is released under the PostgreSQL Licence -// -////////////////////////////////////////////////////////////// - -var mfa_form_elem = document.getElementById('mfa_form'); - -if (mfa_form_elem) - mfa_form_elem.setAttribute('class', ''); - -function sendCodeToEmail(data, _json, _callback) { - const URL = '{{ url_for('mfa.send_email_code') }}'; - let accept = 'text/html; charset=utf-8;'; - - var btn_send_code_elem = document.getElementById('btn_send_code'); - if (btn_send_code_elem) btn_send_code_elem.disabled = true; - - if (!data) { - data = {'code': ''}; - } - - if (_json) { - accept = 'application/json; charset=utf-8;'; - } - - clear_error(); - - fetch(URL, { - method: 'POST', - mode: 'cors', - cache: 'no-cache', - headers: { - 'Accept': accept, - 'Content-Type': 'application/json; charset=utf-8;', - '{{ current_app.config.get('WTF_CSRF_HEADERS')[0] }}': '{{ csrf_token() }}' - }, - redirect: 'follow', - body: JSON.stringify(data) - }).then((resp) => { - if (_callback) { - setTimeout(() => (_callback(resp)), 1); - return null; - } - if (!resp.ok) { - var btn_send_code_elem = document.getElementById('btn_send_code'); - if (btn_send_code_elem) btn_send_code_elem.disabled = true; - resp.text().then(msg => render_error(msg)); - - return; - } - if (_json) return resp.json(); - return resp.text(); - }).then((string) => { - if (!string) - return; - document.getElementById("mfa_email_auth").innerHTML = string; - document.getElementById("mfa_form").classList = ["show_validate_btn"]; - setTimeout(() => { - document.getElementById("showme").classList = []; - }, 20000); - }); -} diff --git a/web/pgadmin/authenticate/mfa/templates/mfa/email_code_sent.html b/web/pgadmin/authenticate/mfa/templates/mfa/email_code_sent.html deleted file mode 100644 index 0325ac9e5..000000000 --- a/web/pgadmin/authenticate/mfa/templates/mfa/email_code_sent.html +++ /dev/null @@ -1,19 +0,0 @@ -
-
{{ message }}
- -
- -
-
diff --git a/web/pgadmin/authenticate/mfa/templates/mfa/email_view.html b/web/pgadmin/authenticate/mfa/templates/mfa/email_view.html deleted file mode 100644 index 3ecf635fb..000000000 --- a/web/pgadmin/authenticate/mfa/templates/mfa/email_view.html +++ /dev/null @@ -1,7 +0,0 @@ -
-
{{ _("Verify with Email Authentication") }}
-
- -
-
diff --git a/web/pgadmin/authenticate/mfa/templates/mfa/register.html b/web/pgadmin/authenticate/mfa/templates/mfa/register.html deleted file mode 100644 index 7b5173e97..000000000 --- a/web/pgadmin/authenticate/mfa/templates/mfa/register.html +++ /dev/null @@ -1,78 +0,0 @@ -{% set auth_page = true %} -{% extends "security/panel.html" %} -{% block panel_image %} -
- {{ _('Registration') }} -
-{% endblock %} -{% block panel_title %}{{ _('Authentication registration') }}{% endblock %} -{% block panel_body %} - - -
-
-{% if mfa_view is not defined or mfa_view is none %} -
- {% for mfa in mfa_list %} -
- -
- {% endfor %} -
- {% if next_url != 'internal' %} -
- -
- {% endif %} -{% else %} -
- {{ mfa_view | safe }} -
-
- - -
-{% endif %} - -
-
-{% else %} -
-
-
-
- -
- {{ error_message }}
-
-
-
-
-{% endif %} -{% endblock %} diff --git a/web/pgadmin/authenticate/mfa/templates/mfa/validate.html b/web/pgadmin/authenticate/mfa/templates/mfa/validate.html deleted file mode 100644 index acb07b004..000000000 --- a/web/pgadmin/authenticate/mfa/templates/mfa/validate.html +++ /dev/null @@ -1,121 +0,0 @@ -{% extends "security/panel.html" %} -{% block panel_image %} -
- {{ _('Authentication') }} -
-{% endblock %} -{% block panel_title %}{{ _('Authentication') }}{% endblock %} -{% block panel_body %} - - -
-
-
-
-
- -
- -
-
-
-
- -
- - -{% endblock %} diff --git a/web/pgadmin/authenticate/mfa/templates/security/email/send_email_otp.html b/web/pgadmin/authenticate/mfa/templates/security/email/send_email_otp.html deleted file mode 100644 index f9bf492d2..000000000 --- a/web/pgadmin/authenticate/mfa/templates/security/email/send_email_otp.html +++ /dev/null @@ -1,2 +0,0 @@ -Please use the following code for authentication. -{{ code }} diff --git a/web/pgadmin/authenticate/mfa/templates/security/email/send_email_otp.txt b/web/pgadmin/authenticate/mfa/templates/security/email/send_email_otp.txt deleted file mode 100644 index f9bf492d2..000000000 --- a/web/pgadmin/authenticate/mfa/templates/security/email/send_email_otp.txt +++ /dev/null @@ -1,2 +0,0 @@ -Please use the following code for authentication. -{{ code }} diff --git a/web/pgadmin/authenticate/mfa/tests/test_config.py b/web/pgadmin/authenticate/mfa/tests/test_config.py deleted file mode 100644 index 782dc923b..000000000 --- a/web/pgadmin/authenticate/mfa/tests/test_config.py +++ /dev/null @@ -1,154 +0,0 @@ -############################################################################## -# -# pgAdmin 4 - PostgreSQL Tools -# -# Copyright (C) 2013 - 2021, The pgAdmin Development Team -# This software is released under the PostgreSQL Licence -# -############################################################################## -from pgadmin.authenticate.mfa import mfa_enabled -import config - - -__MFA_ENABLED = 'MFA Enabled' -__MFA_DISABLED = 'MFA Disabled' -TEST_UTILS_AUTH_PKG = 'tests.utils' - - -def __mfa_is_enabled(): - return __MFA_ENABLED - - -def __mfa_is_disabled(): - return __MFA_DISABLED - - -def check_mfa_enabled(test): - config.MFA_ENABLED = test.enabled - config.MFA_SUPPORTED_METHODS = test.supported_list - - if mfa_enabled(__mfa_is_enabled, __mfa_is_disabled) != test.expected: - test.fail(test.fail_msg) - - -def log_message_in_init_app(test): - import types - from unittest.mock import patch - from .. import init_app - from .utils import test_create_dummy_app - - auth_method_msg = "'xyz' is not a valid multi-factor authentication method" - disabled_msg = \ - "No valid multi-factor authentication found, hence - disabling it." - warning_invalid_auth_found = False - warning_disable_auth = False - - dummy_app = test_create_dummy_app(test.name) - - def _log_warning_msg(_msg): - nonlocal warning_invalid_auth_found - nonlocal warning_disable_auth - - if auth_method_msg == _msg: - warning_invalid_auth_found = True - return - - if _msg == disabled_msg: - warning_disable_auth = True - - with patch.object( - dummy_app.logger, - 'warning', - new=_log_warning_msg - ): - config.MFA_ENABLED = True - config.MFA_SUPPORTED_METHODS = test.supported_list - init_app(dummy_app) - - if warning_invalid_auth_found is not test.warning_invalid_auth_found \ - or warning_disable_auth is not test.warning_disable_auth: - test.fail(test.fail_msg) - test.fail() - - -config_scenarios = [ - ( - "Check MFA enabled with no authenticators?", - dict( - check=check_mfa_enabled, enabled=True, supported_list=list(), - expected=__MFA_DISABLED, - fail_msg="MFA is enabled with no authenticators, but - " - "'execute_if_disabled' function is not called." - ), - ), - ( - "Check MFA enabled?", - dict( - check=check_mfa_enabled, enabled=True, - supported_list=[TEST_UTILS_AUTH_PKG], expected=__MFA_ENABLED, - fail_msg="MFA is enable, but - 'execute_if_enabled' function " - "is not called." - ), - ), - ( - "Check MFA disabled check functionality works?", - dict( - check=check_mfa_enabled, enabled=False, - supported_list=list(), - expected=__MFA_DISABLED, - fail_msg="MFA is disabled, but - 'execute_if_enabled' function " - "is called." - ), - ), - ( - "Check MFA in the supported MFA LIST is part of the registered one", - dict( - check=check_mfa_enabled, enabled=True, - supported_list=["not-in-list"], - expected=__MFA_DISABLED, - fail_msg="MFA is enabled with invalid authenticators, but - " - "'execute_if_enabled' function is called" - ), - ), - ( - "Check warning message with invalid method appended during " - "init_app(...)", - dict( - check=log_message_in_init_app, - supported_list=["xyz", TEST_UTILS_AUTH_PKG], - name="warning_app_having_invalid_method", - warning_invalid_auth_found=True, warning_disable_auth=False, - fail_msg="Warning for invalid auth is not found", - ), - ), - ( - "Check warning message with invalid method during " - "init_app(...) ", - dict( - check=log_message_in_init_app, supported_list=["xyz"], - name="warning_app_with_invalid_method", - warning_invalid_auth_found=False, warning_disable_auth=True, - fail_msg="Warning for invalid auth is not found", - ), - ), - ( - "Check warning message when empty supported mfa list during " - "init_app(...)", - dict( - check=log_message_in_init_app, supported_list=[""], - name="warning_app_with_empty_supported_list", - warning_invalid_auth_found=False, warning_disable_auth=True, - fail_msg="Warning not found with empty supported mfa methods", - ), - ), - ( - "No warning message should found with valid configurations during " - "init_app(...)", - dict( - check=log_message_in_init_app, name="no_warning_app", - supported_list=[TEST_UTILS_AUTH_PKG], - warning_invalid_auth_found=False, warning_disable_auth=False, - fail_msg="Warning found with valid configure", - ), - ), -] diff --git a/web/pgadmin/authenticate/mfa/tests/test_mfa.py b/web/pgadmin/authenticate/mfa/tests/test_mfa.py deleted file mode 100644 index 01264f611..000000000 --- a/web/pgadmin/authenticate/mfa/tests/test_mfa.py +++ /dev/null @@ -1,56 +0,0 @@ -############################################################################## -# -# pgAdmin 4 - PostgreSQL Tools -# -# Copyright (C) 2013 - 2021, The pgAdmin Development Team -# This software is released under the PostgreSQL Licence -# -############################################################################## -from pgadmin.utils.route import BaseTestGenerator -import config -from .test_config import config_scenarios -from .test_user_execution import user_execution_scenarios -from .test_mfa_view import validation_view_scenarios -from .utils import init_dummy_auth_class - - -test_scenarios = list() -test_scenarios += config_scenarios -test_scenarios += user_execution_scenarios -test_scenarios += validation_view_scenarios - - -class TestMFATests(BaseTestGenerator): - - scenarios = test_scenarios - - @classmethod - def setUpClass(cls): - config.MFA_ENABLED = True - init_dummy_auth_class() - - @classmethod - def tearDownClass(cls): - config.MFA_ENABLED = False - config.MFA_SUPPORTED_METHODS = [] - - def setUp(self): - config.MFA_SUPPORTED_METHODS = ['tests.utils'] - - start = getattr(self, 'start', None) - if start is not None: - start(self) - - super(BaseTestGenerator, self).setUp() - - def tearDown(self): - - finish = getattr(self, 'finish', None) - if finish is not None: - finish(self) - - config.MFA_SUPPORTED_METHODS = [] - super(BaseTestGenerator, self).tearDown() - - def runTest(self): - self.check(self) diff --git a/web/pgadmin/authenticate/mfa/tests/test_mfa_view.py b/web/pgadmin/authenticate/mfa/tests/test_mfa_view.py deleted file mode 100644 index 12590e10b..000000000 --- a/web/pgadmin/authenticate/mfa/tests/test_mfa_view.py +++ /dev/null @@ -1,66 +0,0 @@ -############################################################################## -# -# pgAdmin 4 - PostgreSQL Tools -# -# Copyright (C) 2013 - 2021, The pgAdmin Development Team -# This software is released under the PostgreSQL Licence -# -############################################################################## -from unittest.mock import patch -import config - -from .utils import setup_mfa_app, MockCurrentUserId, MockUserMFA -from pgadmin.authenticate.mfa.utils import ValidationException - - -__MFA_PACKAGE = '.'.join((__package__.split('.'))[:-1]) -__AUTH_PACKAGE = '.'.join((__package__.split('.'))[:-2]) - - -def check_validation_view_content(test): - user_mfa_test_data = [ - MockUserMFA(1, "dummy", ""), - MockUserMFA(1, "no-present-in-list", None), - ] - - def mock_log_exception(ex): - test.assertTrue(type(ex) == ValidationException) - - with patch( - __MFA_PACKAGE + ".utils.current_user", return_value=MockCurrentUserId() - ): - with patch(__MFA_PACKAGE + ".utils.UserMFA") as mock_user_mfa: - with test.app.test_request_context(): - with patch("flask.current_app") as mock_current_app: - mock_user_mfa.query.filter_by.return_value \ - .all.return_value = user_mfa_test_data - mock_current_app.logger.exception = mock_log_exception - - with patch(__AUTH_PACKAGE + ".session") as mock_session: - session = { - 'auth_source_manager': { - 'current_source': getattr( - test, 'auth_method', 'internal' - ) - } - } - - mock_session.__getitem__.side_effect = \ - session.__getitem__ - - response = test.tester.get("/mfa/validate") - - test.assertEquals(response.status_code, 200) - test.assertEquals( - response.headers["Content-Type"], "text/html; charset=utf-8" - ) - # test.assertTrue('Dummy' in response.data.decode('utf8')) - # End of test case - check_validation_view_content - - -validation_view_scenarios = [ - ( - "Validation view of a MFA method should return a HTML tags", - dict(start=setup_mfa_app, check=check_validation_view_content), - ), -] diff --git a/web/pgadmin/authenticate/mfa/tests/test_user_execution.py b/web/pgadmin/authenticate/mfa/tests/test_user_execution.py deleted file mode 100644 index fbf3e8c61..000000000 --- a/web/pgadmin/authenticate/mfa/tests/test_user_execution.py +++ /dev/null @@ -1,125 +0,0 @@ -############################################################################## -# -# pgAdmin 4 - PostgreSQL Tools -# -# Copyright (C) 2013 - 2021, The pgAdmin Development Team -# This software is released under the PostgreSQL Licence -# -############################################################################## -from unittest.mock import patch -import config -from pgadmin.authenticate.mfa.utils import \ - mfa_user_force_registration_required -from pgadmin.authenticate.mfa.utils import mfa_user_registered, \ - user_supported_mfa_methods -from .utils import MockUserMFA, MockCurrentUserId - - -__MFA_PACKAGE = '.'.join((__package__.split('.'))[:-1]) - - -def __return_true(): - return True - - -def __return_false(): - return False - - -def check_user_registered(test): - - user_mfa_test_data = [ - MockUserMFA(1, "dummy", "Hello guys"), - MockUserMFA(1, "no-present-in-list", None), - ] - - with patch( - __MFA_PACKAGE + ".utils.current_user", return_value=MockCurrentUserId() - ): - with patch(__MFA_PACKAGE + ".utils.UserMFA") as mock_user_mfa: - mock_user_mfa.query.filter_by.return_value.all.return_value = \ - user_mfa_test_data - - ret = mfa_user_registered(__return_true, __return_false) - - if ret is None: - test.fail( - "User registration check has not called either " - "'is_registered' or 'is_not_registered' function" - ) - - if ret is False: - test.fail( - "Not expected to be called 'is_not_registered' function " - "as 'dummy' is in the supported MFA methods" - ) - - methods = user_supported_mfa_methods() - if "dummy" not in methods: - test.fail( - "User registration methods are not valid: {}".format( - methods - ) - ) - - # Removed the 'dummy' from the user's registered MFA list - user_mfa_test_data.pop(0) - ret = mfa_user_registered(__return_true, __return_false) - - if ret is None: - test.fail( - "User registration check has not called either " - "'is_registered' or 'is_not_registered' function" - ) - - if ret is True: - test.fail( - "Not expected to be called 'is_registered' function as " - "'not-present-in-list' is not a valid multi-factor " - "authentication method" - ) - - # End of test case - check_user_registered - - -def check_force_registration_required(test): - - if mfa_user_force_registration_required( - __return_false, __return_true - ) is None: - test.fail( - "User registration check did not call either register or " - "do_not_register function" - ) - - config.MFA_FORCE_REGISTRATION = False - if mfa_user_force_registration_required( - __return_true, __return_false - ) is True: - test.fail( - "User registration function should not be called, when " - "config.MFA_FORCE_REGISTRATION is True" - ) - - config.MFA_FORCE_REGISTRATION = True - if mfa_user_force_registration_required( - __return_true, __return_false - ) is False: - test.fail( - "'do_not_registration' function should not be called, when " - "config.MFA_FORCE_REGISTRATION is True" - ) - - # End of test case - check_force_registration_required - - -user_execution_scenarios = [ - ( - "Check user is registered to do MFA", - dict(check=check_user_registered), - ), - ( - "Require the forcefull registration for MFA?", - dict(check=check_force_registration_required), - ), -] diff --git a/web/pgadmin/authenticate/mfa/tests/utils.py b/web/pgadmin/authenticate/mfa/tests/utils.py deleted file mode 100644 index 1bd15ebf0..000000000 --- a/web/pgadmin/authenticate/mfa/tests/utils.py +++ /dev/null @@ -1,111 +0,0 @@ -############################################################################## -# -# pgAdmin 4 - PostgreSQL Tools -# -# Copyright (C) 2013 - 2021, The pgAdmin Development Team -# This software is released under the PostgreSQL Licence -# -############################################################################## -import types - -from flask import Flask, Response -import config - -from pgadmin.authenticate.mfa import init_app as mfa_init_app - - -def init_dummy_auth_class(): - from pgadmin.authenticate.mfa.registry import BaseMFAuth - - class DummyAuth(BaseMFAuth): # NOSONAR - S5603 - """ - A dummy authentication for testing the registry ability of adding - 'dummy' authentication method. - - Declaration is enough to use this class, we don't have to use it - directly, as it will be initialized automatically by the registry, and - ready to use. - """ - - @property - def name(self): - return "dummy" - - @property - def label(self): - return "Dummy" - - def validate(self, **kwargs): - return true - - def validation_view(self): - return "View" - - def registration_view(self): - return "Registration" - - def register_url_endpoints(self, blueprint): - print('Initialize the end-points for dummy auth') - - # FPSONAR_OFF - - -def test_create_dummy_app(name=__name__): - import os - import pgadmin - from pgadmin.misc.themes import themes - - def index(): - return Response("logged in") - - template_folder = os.path.join( - os.path.dirname(os.path.realpath(pgadmin.__file__)), 'templates' - ) - app = Flask(name, template_folder=template_folder) - config.MFA_ENABLED = True - config.MFA_SUPPORTED_METHODS = ['tests.utils'] - app.config.from_object(config) - app.config.update(dict(LOGIN_DISABLED=True)) - app.add_url_rule("/", "index", index, methods=("GET",)) - app.add_url_rule( - "/favicon.ico", "redirects.favicon", index, methods=("GET",) - ) - app.add_url_rule("/browser", "browser.index", index, methods=("GET",)) - app.add_url_rule("/tools", "tools.index", index, methods=("GET",)) - app.add_url_rule( - "/users", "user_management.index", index, methods=("GET",) - ) - app.add_url_rule( - "/login", "security.logout", index, methods=("GET",) - ) - app.add_url_rule( - "/kerberos_logout", "authenticate.kerberos_logout", index, - methods=("GET",) - ) - - def __dummy_logout_hook(self, blueprint): - pass # We don't need the logout url when dummy auth is enabled. - - app.register_logout_hook = types.MethodType(__dummy_logout_hook, app) - - themes(app) - - return app - - -def setup_mfa_app(test): - test.app = test_create_dummy_app() - mfa_init_app(test.app) - test.tester = test.app.test_client() - - -class MockUserMFA(): - """Mock user for UserMFA""" - def __init__(self, user_id, mfa_auth, options): - self.user_id = user_id - self.mfa_auth = mfa_auth - self.options = options - - -class MockCurrentUserId(): - id = 1 diff --git a/web/pgadmin/authenticate/mfa/utils.py b/web/pgadmin/authenticate/mfa/utils.py deleted file mode 100644 index f3e8f9b53..000000000 --- a/web/pgadmin/authenticate/mfa/utils.py +++ /dev/null @@ -1,408 +0,0 @@ -############################################################################## -# -# pgAdmin 4 - PostgreSQL Tools -# -# Copyright (C) 2013 - 2021, The pgAdmin Development Team -# This software is released under the PostgreSQL Licence -# -############################################################################## -"""Multi-factor Authentication (MFA) utility functions""" - -from collections.abc import Callable -from functools import wraps - -from flask import url_for, session, request, redirect -from flask_login.utils import login_url -from flask_security import current_user - -import config -from pgadmin.model import UserMFA, db -from .registry import MultiFactorAuthRegistry - - -class ValidationException(Exception): - """ - class: ValidationException - Base class: Exception - - An exception class for raising validation issue. - """ - pass - - -def segregate_valid_and_invalid_mfa_methods( - mfa_supported_methods: list -) -> (list, list): - """ - Segregate the valid and invalid authentication methods from the given - methods. - - Args: - mfa_supported_methods (list): List of auth methods - - Returns: - list, list: Set of valid & invalid auth methods - """ - - invalid_auth_methods = [] - valid_auth_methods = [] - - for mfa in mfa_supported_methods: - - # Put invalid MFA method in separate list - if mfa not in MultiFactorAuthRegistry._registry: - if mfa not in invalid_auth_methods: - invalid_auth_methods.append(mfa) - continue - - # Exclude the duplicate entries - if mfa in valid_auth_methods: - continue - - valid_auth_methods.append(mfa) - - return valid_auth_methods, invalid_auth_methods - - -def mfa_suppored_methods() -> dict: - """ - Returns the dictionary containing information on all supported methods with - information about whether they're registered for the current user, or not. - - It returns information in this format: - { - : { - "mfa": , - "registered": True|False - }, - ... - } - - Returns: - dict: List of all supported MFA methods with the flag for the - registered with the current user or not. - """ - supported_mfa_auth_methods = dict() - - for auth_method in config.MFA_SUPPORTED_METHODS: - registry = MultiFactorAuthRegistry.get(auth_method) - supported_mfa_auth_methods[registry.name] = { - "mfa": registry, "registered": False - } - - auths = UserMFA.query.filter_by(user_id=current_user.id).all() - - for auth in auths: - if auth.mfa_auth in supported_mfa_auth_methods: - supported_mfa_auth_methods[auth.mfa_auth]['registered'] = True - - return supported_mfa_auth_methods - - -def user_supported_mfa_methods(): - """ - Returns the dict for the authentication methods, registered for the - current user, among the list of supported. - - Returns: - dict: dict for the auth methods - """ - auths = UserMFA.query.filter_by(user_id=current_user.id).all() - res = dict() - supported_mfa_auth_methods = dict() - - if len(auths) > 0: - for auth_method in config.MFA_SUPPORTED_METHODS: - registry = MultiFactorAuthRegistry.get(auth_method) - supported_mfa_auth_methods[registry.name] = registry - - for auth in auths: - if auth.mfa_auth in supported_mfa_auth_methods: - res[auth.mfa_auth] = \ - supported_mfa_auth_methods[auth.mfa_auth] - - return res - - -def is_mfa_session_authenticated() -> bool: - """ - Checks if this session is authenticated, or not. - - Returns: - bool: Is this session authenticated? - """ - return session.get('mfa_authenticated', False) is True - - -def mfa_enabled(execute_if_enabled, execute_if_disabled) -> None: - """ - A ternary method to enable calling either of the methods based on the - configuration for the MFA. - - When MFA is enabled and has a valid supported auth methods, - 'execute_if_enabled' method is executed, otherwise - - 'execute_if_disabled' method is executed. - - Args: - execute_if_enabled (Callable[[], None]): Method to executed when MFA - is enabled. - execute_if_disabled (Callable[[], None]): Method to be executed when - MFA is disabled. - - Returns: - None: Expecting the methods to return None as it will not be consumed. - - NOTE: Removed the typing anotation as it was giving errors. - """ - - is_server_mode = getattr(config, 'SERVER_MODE', False) - enabled = getattr(config, "MFA_ENABLED", False) - supported_methods = getattr(config, "MFA_SUPPORTED_METHODS", []) - - if is_server_mode is True and enabled is True and \ - type(supported_methods) == list: - supported_methods, _ = segregate_valid_and_invalid_mfa_methods( - supported_methods - ) - - if len(supported_methods) > 0: - return execute_if_enabled() - - return execute_if_disabled() - - -def mfa_user_force_registration_required(register, not_register) -> None: - """ - A ternary method to cenable calling either of the methods based on the - condition force registration is required. - - When force registration is enabled, and the current user has not registered - for any of the supported authentication method, then the 'register' method - is executed, otherwise - 'not_register' method is executed. - - Args: - register (Callable[[], None]) : Method to be executed when for - registration required and user has - not registered for any auth method. - not_register (Callable[[], None]): Method to be executed otherwise. - - Returns: - None: Expecting the methods to return None as it will not be consumed. - """ - return register() \ - if getattr(config, "MFA_FORCE_REGISTRATION", False) is True else \ - not_register() - - -def mfa_user_registered(registered, not_registered) -> None: - """ - A ternary method to enable calling either of the methods based on the - condition - if the user is registed for any of the auth methods. - - When current user is registered for any of the supported auth method, then - the 'registered' method is executed, otherwise - 'not_registered' method is - executed. - - Args: - registered (Callable[[], None]) : Method to be executed when - registered. - not_registered (Callable[[], None]): Method to be executed when not - registered - - Returns: - None: Expecting the methods to return None as it will not be consumed. - - NOTE: Removed the typing anotation as it was giving errors. - """ - - return registered() if len(user_supported_mfa_methods()) > 0 else \ - not_registered() - - -def mfa_session_authenticated(authenticated, unauthenticated): - """ - A ternary method to enable calling either of the methods based on the - condition - if the user has already authenticated, or not. - - When current user is already authenticated, then 'authenticated' method is - executed, otherwise - 'unauthenticated' method is executed. - - Args: - authenticated (Callable[[], None]) : Method to be executed when - user is authenticated. - unauthenticated (Callable[[], None]): Method to be executed when the - user is not passed the - authentication. - - Returns: - None: Expecting the methods to return None as it will not be consumed. - - NOTE: Removed the typing anotation as it was giving errors. - """ - return authenticated() if session.get('mfa_authenticated', False) is True \ - else unauthenticated() - - -def mfa_required(wrapped): - """ - A decorator do decide the next course of action when a page is being - opened, it will open the appropriate page in case the 2FA is not passed. - - Function executed - | - Check for MFA Enabled? --------+ - | | - | No | - | | Yes - Run the wrapped function [END] | - | - Is user has registered for at least one MFA method? -+ - | | - | No | - | | - Is force registration required? -+ | - | | | Yes - | No | | - | | Yes | - Run the wrapped function [END] | | - | | - Open Registration page [END] | - | - Open the authentication page [END] - - Args: - func(Callable[..]): Method to be called if authentcation is passed - """ - - def get_next_url(): - next_url = request.url - registration_url = url_for('mfa.register') - - if next_url.startswith(registration_url): - return url('browser.index') - - return next_url - - def redirect_to_mfa_validate_url(): - return redirect(login_url("mfa.validate", next_url=get_next_url())) - - def redirect_to_mfa_registration(): - return redirect(login_url("mfa.register", next_url=get_next_url())) - - @wraps(wrapped) - def inner(*args, **kwargs): - - def execute_func(): - session['mfa_authenticated'] = True - return wrapped(*args, **kwargs) - - def if_else_func(_func, first, second): - def if_else_func_inner(): - return _func(first, second) - return if_else_func_inner - - return mfa_enabled( - if_else_func( - mfa_session_authenticated, - execute_func, - if_else_func( - mfa_user_registered, - redirect_to_mfa_validate_url, - if_else_func( - mfa_user_force_registration_required, - redirect_to_mfa_registration, - execute_func - ) - ) - ), - execute_func - ) - - return inner - - -def is_mfa_enabled() -> bool: - """ - Returns True if MFA is enabled otherwise False - - Returns: - bool: Is MFA Enabled? - """ - return mfa_enabled(lambda: True, lambda: False) - - -def mfa_delete(auth_name: str) -> bool: - """ - A utility function to delete the auth method for the current user from the - configuration database. - - Args: - auth_name (str): Name of the argument - - Returns: - bool: True if auth method was registered for the current user, and - delete successfully, otherwise - False - """ - auth = UserMFA.query.filter_by( - user_id=current_user.id, mfa_auth=auth_name - ) - - if auth.count() != 0: - auth.delete() - db.session.commit() - - return True - - return False - - -def mfa_add(auth_name: str, options: str) -> None: - """ - A utility funtion to add/update the auth method in the configuration - database for the current user with the method specific options. - - e.g. email-address for 'email' method, and 'secret' for the 'authenticator' - - Args: - auth_name (str): Name of the auth method - options (str) : A data options specific to the auth method - """ - auth = UserMFA.query.filter_by( - user_id=current_user.id, mfa_auth=auth_name - ).first() - - if auth is None: - auth = UserMFA( - user_id=current_user.id, - mfa_auth=auth_name, - options=options - ) - db.session.add(auth) - - # We will override the existing options - auth.options = options - - db.session.commit() - - -def fetch_auth_option(auth_name: str) -> (str, bool): - """ - A utility function to fetch the extra data, stored as options, for the - given auth method for the current user. - - Returns a set as (data, Auth method registered?) - - Args: - auth_name (str): Name of the auth method - - Returns: - (str, bool): (data, has current user registered for the auth method?) - """ - auth = UserMFA.query.filter_by( - user_id=current_user.id, mfa_auth=auth_name - ).first() - - if auth is None: - return None, False - - return auth.options, True diff --git a/web/pgadmin/authenticate/mfa/views.py b/web/pgadmin/authenticate/mfa/views.py deleted file mode 100644 index 6ae7272d9..000000000 --- a/web/pgadmin/authenticate/mfa/views.py +++ /dev/null @@ -1,346 +0,0 @@ -############################################################################## -# -# pgAdmin 4 - PostgreSQL Tools -# -# Copyright (C) 2013 - 2021, The pgAdmin Development Team -# This software is released under the PostgreSQL Licence -# -############################################################################## -"""Multi-factor Authentication (MFA) views""" - -import base64 -from typing import Union - -from flask import Response, render_template, request, flash, \ - current_app, url_for, redirect, session -from flask_babelex import gettext as _ -from flask_login import current_user, login_required -from flask_login.utils import login_url - -from pgadmin.utils.csrf import pgCSRFProtect -from pgadmin.utils.ajax import bad_request -from .utils import user_supported_mfa_methods, mfa_user_registered, \ - mfa_suppored_methods, ValidationException, mfa_delete, is_mfa_enabled, \ - is_mfa_session_authenticated - - -_INDEX_URL = "browser.index" -_NO_CACHE_HEADERS = dict({ - "Cache-Control": "no-cache, no-store, must-revalidate, public, max-age=0", - "Pragma": "no-cache", - "Expires": "0", -}) - - -def __handle_mfa_validation_request( - mfa_method: str, user_mfa_auths: dict, form_data: dict -) -> None: - """ - An internal utlity function to execute mfa.validate(...) method in case, it - matched the following conditions: - 1. Method specified is a valid and in the supported methods list. - 2. User has registered for this auth method. - - Otherwise, raise an exception with appropriate error message. - - Args: - mfa_method (str) : Name of the authentication method - user_mfa_auths (dict): List of the user supported authentication method - form_data (dict) : Form data in the request - - Raises: - ValidationException: Raise the exception when user is not registered - for the given method, or not a valid MFA method. - """ - - if mfa_method is None: - raise ValidationException(_("No authentication method provided.")) - - mfa_auth = user_mfa_auths.get(mfa_method, None) - - if mfa_auth is None: - raise ValidationException(_( - "No user supported authentication method provided" - )) - - mfa_auth.validate(**form_data) - - -@pgCSRFProtect.exempt -@login_required -def validate_view() -> Response: - """ - An end-point to render the authentication view. - - It supports two HTTP methods: - 1. GET : Generate the view listing all the supported auth methods. - 2. POST: Validate the code/OTP, or whatever data the selected auth method - supports. - - Returns: - Response: Redirect to 'next' url in case authentication validate, - otherwise - a view with listing down all the supported auth - methods, and it's supporting views. - """ - - # Load at runtime to avoid circular dependency - from pgadmin.authenticate import get_logout_url - - next_url = request.args.get("next", None) - - if next_url is None or next_url == url_for('mfa.register') or \ - next_url == url_for('mfa.validate'): - next_url = url_for(_INDEX_URL) - - if session.get('mfa_authenticated', False) is True: - return redirect(next_url) - - return_code = 200 - mfa_method = None - user_mfa_auths = user_supported_mfa_methods() - - if request.method == 'POST': - try: - form_data = {key: request.form[key] for key in request.form} - next_url = form_data.pop('next', url_for(_INDEX_URL)) - mfa_method = form_data.pop('mfa_method', None) - - __handle_mfa_validation_request( - mfa_method, user_mfa_auths, form_data - ) - - session['mfa_authenticated'] = True - - return redirect(next_url) - - except ValidationException as ve: - current_app.logger.warning(( - "MFA validation failed for the user '{}' with an error: " - "{}" - ).format(current_user.username, str(ve))) - flash(str(ve), "danger") - return_code = 401 - except Exception as ex: - current_app.logger.exception(ex) - flash(str(ex), "danger") - return_code = 500 - - mfa_views = { - key: user_mfa_auths[key].validation_view_dict(mfa_method) - for key in user_mfa_auths - } - - if mfa_method is None and len(mfa_views) > 0: - list(mfa_views.items())[0][1]['selected'] = True - - return Response(render_template( - "mfa/validate.html", _=_, views=mfa_views, base64=base64, - logout_url=get_logout_url() - ), return_code, headers=_NO_CACHE_HEADERS, mimetype="text/html") - - -def _mfa_registration_view( - supported_mfa: dict, form_data: dict -) -> Union[str, None]: - """ - An internal utility function to generate the registration view, or - unregister for the given MFA object (passed as a dict). - - It will call 'registration_view' function, specific for the MFA method, - only if User has clicked on 'Setup' button on the registration page, and - current user is not already registered for the Auth method. - - If the user has not clicked on the 'Setup' button, we assume that he has - clicked on the 'Delete' button for a specific auth method. - - Args: - supported_mfa (dict): [description] - form_data (dict): [description] - - Returns: - Union[str, None]: When registration for the Auth method is completed, - it could return None, otherwise view for the - registration view. - """ - mfa = supported_mfa['mfa'] - - if form_data[mfa.name] == 'SETUP': - if supported_mfa['registered'] is True: - flash(_("'{}' is already registerd'").format(mfa.label), "success") - return None - - return mfa.registration_view(form_data) - - if mfa_delete(mfa.name) is True: - flash(_( - "'{}' unregistered from the authentication list." - ).format(mfa.label), "success") - - return None - - flash(_( - "'{}' is not found in the authentication list." - ).format(mfa.label), "warning") - - return None - - -def _registration_view_or_deregister( - _auth_list: dict -) -> Union[str, bool, None]: - """ - An internal utility function to parse the request, and act upon it: - 1. Find the auth method in the request, and call the - '_mfa_registration_view' internal utility function for the same, and - return the result of it. - - It could return a registration view as a string, or None (on - deregistering). - - Args: - _auth_list (dict): List of all supported methods with a flag for the - current user registration. - - Returns: - Union[str, bool, None]: When no valid request found, it will return - False, otherwise the response of the - '_mfa_registration_view(...)' method call. - """ - - for key in _auth_list: - if key in request.form: - return _mfa_registration_view( - _auth_list[key], request.form - ) - - return False - - -def __handle_registration_view_for_post_method( - _next_url: str, _mfa_auths: dict -) -> (Union[str, None], Union[Response, None], Union[dict, None]): - """ - An internal utility function to handle the POST method for the registration - view. It will pass on the request data to the appropriate Auth method, and - may generate further registration view. When registration is completed, it - will redirect to the 'next_url' in case the registration page is not opened - from the internal dialog through menu, which can be identified by the - 'next_url' value is equal to 'internal'. - - Args: - _next_url (str) : Redirect to which url, when clicked on the - 'continue' button on the registration page. - _mfa_auths (dict): A dict object returned by the method - - 'mfa_suppored_methods'. - - Returns: - (Union[str, None], Union[Response, None], Union[dict, None]): - Possibilities: - 1. Returns (None, redirect response to 'next' url, None) in case there - is not valid 'auth' method found in the request. - 2. Returns (None, Registration view as Response, None) in case when - valid method found, and it has returned a view to render. - 3. Otherwise - Returns the set as - (updated 'next' url, None, updated Auth method list) - """ - - next_url = request.form.get("next", None) - - if next_url is None or next_url == url_for('mfa.validate'): - next_url = url_for(_INDEX_URL) - - if request.form.get('cancel', None) is None: - view = _registration_view_or_deregister(_mfa_auths) - - if view is False: - if next_url != 'internal': - return None, redirect(next_url), None - flash(_("Please close the dialog."), "info") - - if view is not None: - return None, Response( - render_template( - "mfa/register.html", _=_, - mfa_list=list(), mfa_view=view, - next_url=next_url, - error_message=None - ), 200, - headers=_NO_CACHE_HEADERS - ), None - - # Regenerate the supported MFA list after - # registration/deregistration. - _mfa_auths = mfa_suppored_methods() - - return next_url, None, _mfa_auths - - -@pgCSRFProtect.exempt -@login_required -def registration_view() -> Response: - """ - A url end-point to register/deregister an authentication method. - - It supports two HTTP methods: - * GET : Generate a view listing all the suppoted list with 'Setup', - or 'Delete' buttons. If user has registered for the auth method, it - will render a 'Delete' button next to it, and 'Setup' button - otherwise. - * POST: This handles multiple scenarios on the registration page: - 1. Clicked on the 'Delete' button, it will deregister the user for - the specific auth method, and render the view same as for the - 'GET' method. - 2. Clicked on the 'Setup' button, it will render the registration - view for the authentication method. - 3. Clicked 'Continue' button, redirect it to the url specified by - 'next' url. - 4. Clicking on 'Cancel' button on the Auth method specific view - will render the view by 'GET' HTTP method. - 5. A registration method can run like a wizard, and generate - different views based on the request data. - - Returns: - Response: A response object with list of auth methods, a registration - view, or redirect to 'next' url - """ - mfa_auths = mfa_suppored_methods() - mfa_list = list() - - next_url = request.args.get("next", None) - - if request.method == 'POST': - next_url, response, mfa_auths = \ - __handle_registration_view_for_post_method(next_url, mfa_auths) - - if response is not None: - return response - - if next_url is None: - next_url = url_for(_INDEX_URL) - - error_message = None - found_one_mfa = False - - for key in mfa_auths: - mfa = mfa_auths[key]['mfa'] - mfa = mfa.to_dict() - mfa["registered"] = mfa_auths[key]["registered"] - mfa_list.append(mfa) - found_one_mfa = found_one_mfa or mfa["registered"] - - if request.method == 'GET': - if is_mfa_enabled() is False: - error_message = _( - "Can't access this page, when multi factor authentication is " - "disabled." - ) - elif is_mfa_session_authenticated() is False and \ - found_one_mfa is True: - flash(_("Complete the authentication process first"), "danger") - return redirect(login_url("mfa.validate", next_url=next_url)) - - return Response(render_template( - "mfa/register.html", _=_, - mfa_list=mfa_list, mfa_view=None, next_url=next_url, - error_message=error_message - ), 200 if error_message is None else 401, headers=_NO_CACHE_HEADERS) diff --git a/web/pgadmin/browser/__init__.py b/web/pgadmin/browser/__init__.py index 6e77454a2..084fb178a 100644 --- a/web/pgadmin/browser/__init__.py +++ b/web/pgadmin/browser/__init__.py @@ -25,7 +25,6 @@ from flask import current_app, render_template, url_for, make_response, \ from flask_babelex import gettext from flask_gravatar import Gravatar from flask_login import current_user, login_required -from flask_login.utils import login_url from flask_security.changeable import change_user_password from flask_security.decorators import anonymous_user_required from flask_security.recoverable import reset_password_token_status, \ @@ -39,8 +38,6 @@ from werkzeug.datastructures import MultiDict import config from pgadmin import current_blueprint -from pgadmin.authenticate import get_logout_url -from pgadmin.authenticate.mfa.utils import mfa_required, is_mfa_enabled from pgadmin.settings import get_setting, store_setting from pgadmin.utils import PgAdminModule from pgadmin.utils.ajax import make_json_response @@ -698,7 +695,6 @@ def check_browser_upgrade(): @blueprint.route("/") @pgCSRFProtect.exempt @login_required -@mfa_required def index(): """Render and process the main browser window.""" # Register Gravatar module with the app only if required @@ -758,11 +754,7 @@ def index(): username=current_user.username, auth_source=auth_source, is_admin=current_user.has_role("Administrator"), - logout_url=get_logout_url(), - requirejs=True, - basejs=True, - mfa_enabled=is_mfa_enabled(), - login_url=login_url, + logout_url=_get_logout_url(), _=gettext, auth_only_internal=auth_only_internal )) @@ -856,7 +848,7 @@ def utils(): app_version_int=config.APP_VERSION_INT, pg_libpq_version=pg_libpq_version, support_ssh_tunnel=config.SUPPORT_SSH_TUNNEL, - logout_url=get_logout_url(), + logout_url=_get_logout_url(), platform=sys.platform, qt_default_placeholder=QT_DEFAULT_PLACEHOLDER, enable_psql=config.ENABLE_PSQL diff --git a/web/pgadmin/browser/static/js/browser.js b/web/pgadmin/browser/static/js/browser.js index a0bef78bd..90398e3a8 100644 --- a/web/pgadmin/browser/static/js/browser.js +++ b/web/pgadmin/browser/static/js/browser.js @@ -19,7 +19,7 @@ define('pgadmin.browser', [ 'pgadmin.browser.menu', 'pgadmin.browser.panel', 'pgadmin.browser.layout', 'pgadmin.browser.runtime', 'pgadmin.browser.error', 'pgadmin.browser.frame', 'pgadmin.browser.node', 'pgadmin.browser.collection', 'pgadmin.browser.activity', - 'sources/codemirror/addon/fold/pgadmin-sqlfoldcode', 'pgadmin.browser.dialog', + 'sources/codemirror/addon/fold/pgadmin-sqlfoldcode', 'pgadmin.browser.keyboard', 'sources/tree/pgadmin_tree_save_state','jquery.acisortable', 'jquery.acifragment', ], function( @@ -160,7 +160,7 @@ define('pgadmin.browser', [ let ih = window.innerHeight; if (ih > passed_height){ return passed_height; - } else { + }else{ if (ih > pgAdmin.Browser.stdH.lg) return pgAdmin.Browser.stdH.lg; else if (ih > pgAdmin.Browser.stdH.md) diff --git a/web/pgadmin/browser/static/js/dialog.js b/web/pgadmin/browser/static/js/dialog.js deleted file mode 100644 index 17ca7b17a..000000000 --- a/web/pgadmin/browser/static/js/dialog.js +++ /dev/null @@ -1,110 +0,0 @@ -///////////////////////////////////////////////////////////// -// -// pgAdmin 4 - PostgreSQL Tools -// -// Copyright (C) 2013 - 2021, The pgAdmin Development Team -// This software is released under the PostgreSQL Licence -// -////////////////////////////////////////////////////////////// - -import gettext from 'sources/gettext'; -import * as alertify from 'pgadmin.alertifyjs'; -import url_for from 'sources/url_for'; -import pgAdmin from 'sources/pgadmin'; - -let counter = 1; - -function url_dialog(_title, _url, _help_filename, _width, _height) { - - let pgBrowser = pgAdmin.Browser; - - const dlgName = 'UrlDialog' + counter++; - - alertify.dialog(dlgName, function factory() { - return { - main: function(_title) { - this.set({'title': _title}); - }, - build: function() { - alertify.pgDialogBuild.apply(this); - }, - settings: { - url: _url, - title: _title, - }, - setup: function() { - return { - buttons: [{ - text: '', - key: 112, - className: 'btn btn-primary-icon pull-left fa fa-question pg-alertify-icon-button', - attrs: { - name: 'dialog_help', - type: 'button', - label: _title, - url: url_for('help.static', { - 'filename': _help_filename, - }), - }, - }, { - text: gettext('Close'), - key: 27, - className: 'btn btn-secondary fa fa-lg fa-times pg-alertify-button', - attrs: { - name: 'close', - type: 'button', - }, - }], - // Set options for dialog - options: { - //disable both padding and overflow control. - padding: !1, - overflow: !1, - modal: false, - resizable: true, - maximizable: true, - pinnable: false, - closableByDimmer: false, - closable: false, - }, - }; - }, - hooks: { - // Triggered when the dialog is closed - onclose: function() { - // Clear the view - return setTimeout((function() { - return (alertify[dlgName]()).destroy(); - }), 1000); - }, - }, - prepare: function() { - // create the iframe element - var iframe = document.createElement('iframe'); - iframe.frameBorder = 'no'; - iframe.width = '100%'; - iframe.height = '100%'; - iframe.src = this.setting('url'); - // add it to the dialog - this.elements.content.appendChild(iframe); - }, - callback: function(e) { - if (e.button.element.name == 'dialog_help') { - e.cancel = true; - pgBrowser.showHelp( - e.button.element.name, e.button.element.getAttribute('url'), - null, null - ); - return; - } - }, - }; - }); - (alertify[dlgName](_title)).show().resizeTo(_width || pgBrowser.stdW.lg, _height || pgBrowser.stdH.md); -} - -pgAdmin.ui.dialogs.url_dialog = url_dialog; - -export { - url_dialog, -}; diff --git a/web/pgadmin/browser/templates/browser/index.html b/web/pgadmin/browser/templates/browser/index.html index 98f7803d1..c1387dad5 100644 --- a/web/pgadmin/browser/templates/browser/index.html +++ b/web/pgadmin/browser/templates/browser/index.html @@ -152,17 +152,6 @@ window.onload = function(e){ {% endif %} - {% if mfa_enabled is defined and mfa_enabled is true %} -
  • - {{ _('Two-Factor Authentication') }} -
  • - - {% endif %} {% if is_admin %}
  • {{ _('Users') }}
  • diff --git a/web/pgadmin/model/__init__.py b/web/pgadmin/model/__init__.py index f79cc31ef..aea32c1e1 100644 --- a/web/pgadmin/model/__init__.py +++ b/web/pgadmin/model/__init__.py @@ -473,11 +473,3 @@ class UserMacros(db.Model): ) name = db.Column(db.String(1024), nullable=False) sql = db.Column(db.Text(), nullable=False) - - -class UserMFA(db.Model): - """Stores the options for the MFA for a particular user.""" - __tablename__ = 'user_mfa' - user_id = db.Column(db.Integer, db.ForeignKey(USER_ID), primary_key=True) - mfa_auth = db.Column(db.String(64), primary_key=True) - options = db.Column(db.Text(), nullable=True) diff --git a/web/pgadmin/static/img/login.svg b/web/pgadmin/static/img/login.svg index 64e5c4737..f502c59e0 100644 --- a/web/pgadmin/static/img/login.svg +++ b/web/pgadmin/static/img/login.svg @@ -1 +1 @@ -login_graphic +login_graphic \ No newline at end of file diff --git a/web/pgadmin/static/js/pgadmin.js b/web/pgadmin/static/js/pgadmin.js index a9abcfa90..4377b0a27 100644 --- a/web/pgadmin/static/js/pgadmin.js +++ b/web/pgadmin/static/js/pgadmin.js @@ -178,7 +178,5 @@ define([], function() { }; } - pgAdmin.ui = {dialogs: {}}; - return pgAdmin; }); diff --git a/web/pgadmin/static/scss/_pgadmin.style.scss b/web/pgadmin/static/scss/_pgadmin.style.scss index 88a9e2f64..9266f82e4 100644 --- a/web/pgadmin/static/scss/_pgadmin.style.scss +++ b/web/pgadmin/static/scss/_pgadmin.style.scss @@ -932,31 +932,19 @@ table.table-empty-rows{ } .login_page { - background-color: $login-page-background; + background-color: $color-primary; height: 100%; position:relative; z-index:1; color: $security-text-color; - & a { - color: $security-text-color; - } - - & .panel-container { - background-color: rgba($security-btn-color, 0.25); - padding: 0px; - } - & .panel-header { padding-bottom: 1.0rem; } & .panel-body { padding-bottom: 0.8rem; } - & .btn-login { - background-color: $security-btn-color; - } - & .btn-validate { + & .btn-login { background-color: $security-btn-color; } & .btn-oauth { @@ -990,16 +978,8 @@ table.table-empty-rows{ z-index: 100; } -.auth_page { - background-color: $color-gray-light; - - & .panel-container { - background-color: rgba($color-gray-dark, 0.75); - border-radius: $border-radius * 2; - } -} - .change_pass { + background-color: $color-gray-light; height: 100%; position:relative; z-index:1; diff --git a/web/pgadmin/static/scss/resources/_default.variables.scss b/web/pgadmin/static/scss/resources/_default.variables.scss index 8a9517616..7b187a45c 100644 --- a/web/pgadmin/static/scss/resources/_default.variables.scss +++ b/web/pgadmin/static/scss/resources/_default.variables.scss @@ -364,7 +364,6 @@ $erd-canvas-grid: $color-gray !default; $erd-link-color: $color-fg !default; $erd-link-selected-color: $color-fg !default; -$login-page-background: $color-primary !default; @function url-friendly-colour($colour) { @return '%23' + str-slice('#{$colour}', 2, -1) diff --git a/web/pgadmin/static/scss/resources/dark/_theme.variables.scss b/web/pgadmin/static/scss/resources/dark/_theme.variables.scss index f4e0bc70d..2c8534553 100644 --- a/web/pgadmin/static/scss/resources/dark/_theme.variables.scss +++ b/web/pgadmin/static/scss/resources/dark/_theme.variables.scss @@ -81,8 +81,6 @@ $color-editor-operator: #d6aaaa; $color-editor-foldmarker: #0000FF !default; $color-editor-activeline: #323e43 !default; -$login-page-background: $color-bg; - $explain-sev-2-bg: #ded17e; $explain-sev-3-bg: #824d18; $explain-sev-4-bg: #880000; diff --git a/web/pgadmin/static/scss/resources/high_contrast/_theme.variables.scss b/web/pgadmin/static/scss/resources/high_contrast/_theme.variables.scss index 86001793c..cd6462df4 100644 --- a/web/pgadmin/static/scss/resources/high_contrast/_theme.variables.scss +++ b/web/pgadmin/static/scss/resources/high_contrast/_theme.variables.scss @@ -37,8 +37,6 @@ $color-gray: #1F2932; $color-gray-light: #2D3A48; $color-gray-lighter: #8B9CAD; -$login-page-background: $color-bg; - $sql-gutters-bg: $color-gray-light; $sql-title-bg: #1F2932; $sql-title-fg: $color-fg; diff --git a/web/pgadmin/templates/base.html b/web/pgadmin/templates/base.html index fad6ec5f1..991b745b3 100644 --- a/web/pgadmin/templates/base.html +++ b/web/pgadmin/templates/base.html @@ -32,7 +32,6 @@ window.resourceBasePath = "{{ url_for('static', filename='js') }}/generated/"; -{% if requirejs is defined and requirejs is true %} -{% endif %} -{% if basejs is defined and basejs is true %} + -{% endif %} @@ -76,6 +73,7 @@ {% block body %}{% endblock %} diff --git a/web/pgadmin/templates/security/change_password.html b/web/pgadmin/templates/security/change_password.html index 5917b799c..0420e9059 100644 --- a/web/pgadmin/templates/security/change_password.html +++ b/web/pgadmin/templates/security/change_password.html @@ -1,7 +1,7 @@ {% extends "base.html" %} {% from "security/fields.html" import render_field_with_errors %} {% block body %} -
    +
    {% include "security/messages.html" %}
    @@ -18,7 +18,7 @@ {{ render_field_with_errors(change_password_form.new_password, "password") }} {{ render_field_with_errors(change_password_form.new_password_confirm, "password") }} {% endif %} diff --git a/web/pgadmin/templates/security/panel.html b/web/pgadmin/templates/security/panel.html index d0fdef76e..46aa0524c 100644 --- a/web/pgadmin/templates/security/panel.html +++ b/web/pgadmin/templates/security/panel.html @@ -2,7 +2,7 @@ {% from "security/fields.html" import render_field_with_errors, render_username_with_errors %} {% block title %}{{ config.APP_NAME }}{% endblock %} {% block body %} -