Hello there!

Need Help? We are right here!

miniOrange Email Support
success

Thanks for your inquiry.

If you dont hear from us within 24 hours, please feel free to send a follow up email to info@xecurify.com

Two-Factor Authentication (2FA/MFA) for Laravel


Laravel 2FA (Two-Factor Authentication) or Multi-Factor Authentication (MFA) is an additional layer of security in which a user or an organizational employee have to provide two factors to gain access to the Laravel account. With Laravel 2FA being enabled, anyone trying to login to your Laravel account from an unrecognized computer/device must provide additional authorization. Authentication starts with a user submitting his traditional username and password. Once the user successfully gets authenticated with the 1st step verification, configured 2FA (OTP over SMS, Push Notifications, Yubikey, TOTP, Google Authenticator etc) method prompts for 2nd-step verification. After successfully authenticating with both of the steps a user is granted with the access to the Laravel account. This extra layer prevents the unauthorized person from accessing the resources even if cyber attackers get to know your credentials.

miniorange provides 15+ authentication methods and solutions for various use cases. It allows users and organizations to set up certain authentication and settings which includes password restrictions, restricting sign-in methods, as well as other security settings. miniorange also makes way for authentication apps that support Time-Based One-Time Password (TOTP) Google Authenticator, Microsoft Authenticator, Authy 2-Factor authentication app and our own miniorange Authenticator app.


Connect with External Source of Users


miniOrange provides user authentication from various external sources, which can be Directories (like ADFS, Microsoft Active Directory, Azure AD, OpenLDAP, Google, AWS Cognito etc), Identity Providers (like Shibboleth, Ping, Okta, OneLogin, KeyCloak), Databases (like MySQL, Maria DB, PostgreSQL) and many more.



Apps supported by miniOrange



two factor authentication (2FA) miniOrange authenticator app

miniOrange
Authenticator App

   
two factor authentication (2FA) google authenticator app

Google
Authenticator App

   
two factor authentication (2FA) authy authenticator app

Authy 2-Factor
Authentication App

   
two factor authentication (2FA) Microsoft authenticator app

Microsoft
Authenticator App

   

Follow the Step-by-Step Guide given below to enable Two-Factor Authentication (2FA) for Laravel

1. Configure Laravel in miniOrange

  • Login into miniOrange Admin Console.
  • Go to Apps and click on Add Application button.
  • Laravel Single Sign-On (SSO) add app

  • In Choose Application Type click on Create App button in SAML/WS-FED application type.
  • Laravel Single Sign-On (SSO) choose app type

  • Search for Laravel in the list, if you don't find Laravel in the list then, search for custom and you can set up your application via Custom SAML App.
  • Laravel Single Sign-On (SSO) manage apps

  • Enter the SP Entity ID or Issuer.
  • Enter the ACS URL.
  • Laravel two-factor authentication (2FA)

  • Click Next, now in the Attribute Mapping configure the following attributes as shown in the image below.
  • Laravel two-factor authentication (2FA) : Add Attribute

  • To upload respective app logo for a Custom SAML App, click on Upload Logo tab.
  • Laravel two-factor authentication (2FA) : Update Logo

  • Click on Save.
  • If you don’t want to manually specify the details you can import SP metadata from URL, Text or File. Click on Import SP Metadata button. Popup will appear as shown below -
  • Laravel two-factor authentication (2FA) : configuration steps

    Get IdP Metadata Details to upload to Laravel:

  • Go to Apps >> Manage Apps.
  • Search for your app and click on the select in action menu against your app.
  • Click on Metadata to get metadata details, which will be required later. Click on Link to see the IDP initiated SSO link for Laravel.
  • Laravel two-factor authentication (2FA) : Go to Metadata link

  • Here you will see 2 options, if you are setting up miniOrange as IDP copy the metadetails related to miniOrange, if you required to be authenticated via external IDP's (OKTA, AZURE AD, ADFS, ONELOGIN, GOOGLE APPS) you can get metadata from the 2nd Section as shown below.
  • Laravel two-factor authentication (2FA) : Add SAML Application

  • Keep SAML Login URL , SAML Logout URL and click on the Download Certificate button to download certificate which you will require in Step 2.
  • Laravel two-factor authentication (2FA) : Select Metadata details external IDP or miniOrange as IDP

2. Configure SSO in Laravel

3.1: Installing the package using Composer
  • Open a Command Prompt window and change the working directory to your Laravel app’s main directory.
  • Enter the command composer require miniorange/saml-laravel-free.

  • Laravel Single Sign-On (SSO) enter command

  • Note: If you are using Laravel 5.4 or below, you will need to add the following value to the 'providers' array in your app.php file which can be found in the project\config folder :provider\ssoServiceProvider::class

  • You can check your current Laravel version by using the command php artisan --version.

  • Laravel Single Sign-On SSO add following value

  • After successful installation of package, go to your Laravel app in the browser and enter https://<your-host>/mo_admin in the address bar.
  • The package will start setting up your database for you and then redirect you to the admin registration page.
  • Login with credentials you registered with.
  • Select Plugin Settings from the navigation pane on the left.

  • Laravel Single Sign-On SSO plugin settings


3.2: Configuring the plugin
  • You can configure the SP Base URL or leave this option as it is.
  • You need to provide these SP Entity ID and ACS URL values while configuring your Identity Provider.

  • Laravel Single Sign-On (SSO) Service Provider Settings

  • Use your Identity Provider details to configure the plugin.

  • Laravel Single Sign-On (SSO) Identity Provider Settings

  • Click on the Save button to save your settings.

3.3: Test Configuration
  • You can test if the plugin is configured properly or not by clicking on the Test Configuration button.

  • Laravel Single Sign-On SSO Test Configuration

  • You should see a Test Successful screen as shown below along with the user's attribute values.

  • Laravel Single Sign-On (SSO) Test Result


3.4:SSO Options
  • You can configure the Relay State URL in the Service Provider Settings if you want to redirect users to a custom URL after the SSO.
  • Your users can initiate the Single Sign On flow by clicking on the Single Sign On button generated on your login page. If you do not have this page yet, run php artisan make:auth & php artisan migrate to generate the authentication module.


  • Laravel Single Sign-On (SSO) Single Sign-On button


3. Configure 2FA for Laravel

3.1: Enable 2FA for Users of Laravel app

  • To enable 2FA for Users of Laravel application. Go to Policies >> App Authentication Policy
  • Click on Edit against the configured application.
  • Two factor-authentication for Laravel | Two Factor Authentication configure 2fa of application

  • Enable the Enable 2-Factor Authentication (MFA) option.
  • Two factor-authentication for Laravel | Two Factor Authentication enable 2fa

  • Click on Save.

3.2: Configure 2FA for your Endusers

  • To enable 2FA/MFA for endusers, go to 2-Factor Authentication >> 2FA Options For EndUsers.
  • Select default Two-Factor authentication method for end users. Also, you can select particular 2FA methods, which you want to show on the end users dashboard.
  • Once Done with the settings, click on Save to configure your 2FA settings.
  • MFA/Two-Factor Authentication(2FA) for   Configure 2FA Panel

3.3: Enduser 2FA Setup

  • Login to End-User Dashboard using end user login URL.
    • For Cloud Version: The login URL (branding url) which you have set.
    • For On-Premise version: The login URL will be the same as of Admin Login URL.
  • Select Setup 2FA from left panel. Then select any of the 2FA method available.
  • For now, we have selected the SMS >> OTP OVER SMS as our 2FA method. You can explore the guide to setup other 2FA methods here.
  • Enable the OTP over SMS if you have your phone number added under your profile section else click on Edit button.
  • MFA/Two-Factor Authentication(2FA) for   Configure 2FA Panel

  • Enter you Phone Number along with the necessary country code and click on the SAVE button.
  • MFA/Two-Factor Authentication(2FA) for   Configure Second Factor-SMS(Enter Mobile Number)

4. Test Laravel 2FA

  • Go to your Laravel Domain. It will redirect you to miniOrange Single Sign-On Service console.
  • zoom two factor authentication(2fa) user credentials

  • Enter your miniOrange login credentials and click on Login.
  • Since we have Two-factor authentication(2FA) enabled, you will be prompted to register for it. It's a one time process.
  • Configure your basic details.
  • zoom two factor authentication(2fa) user registration

  • Configure any authentication method of your choice.
  • zoom two factor authentication(2fa) add new security

  • After successful registration, you will be logged in to your Laravel account.
  • Now we have Two-factor authentication enabled.
  • To verify your Two-factor authentication(2FA) configuration, go to your Laravel Domain. You will be redirected to miniOrange login console.
  • zoom two factor authentication(2fa) verify user credentials

  • Enter your login credentials, and click on login. It will prompt to verify yourself against the configured 2fa method.
    e.g. If you have configured OTP over SMS, after login into Laravel it will prompt for OTP.
  • zoom two factor authentication(2fa) otp prompt

  • Enter the OTP received in your phone, after successful 2fa verification, you will be redirected to the Laravel dashboard.

  • Not able to configure or test MFA?


    Contact us or email us at idpsupport@xecurify.com and we'll help you setting it up in no time.


5. Adaptive Authentication with Laravel

A. Restricting access to Laravel with IP Blocking

    You can use adaptive authentication with Laravel Single Sign-On (SSO) to improve the security and functionality of Single Sign-On. You can allow a IP Address in certain range for SSO or you can deny it based your requirements and you can also challenge the user to verify his authenticity. Adaptive authentication manages the user authentication bases on different factors such as Device ID, Location, Time of Access, IP Address and many more.

    You can configure Adaptive Authentication with IP Blocking in following way:
  • Login to Self Service Console >> Adaptive Authentication.
  • Add a Policy Name for your Adaptive Authentication Policy.
  • Laravel Single Sign-On (SSO) Restrict Access adaptive authnetication policy

  • Select your Action for behaviour Change and Challenge Type for user from the Action for behaviour Change Section.
  • Laravel Single Sign-On (SSO) Restrict Access adaptive authentication behaviour change


    Action for behaviour Change Options :


    Attribute Description
    Allow Allow user to authenticate and use services if Adaptive authentication condition is true.
    Challenge Challenge users with one of the three methods mentioned below for verifying user authenticity.
    Deny Deny user authentications and access to services if Adaptive authentication condition is true.

    Challenge Type Options :

    Attribute Description
    User second Factor The User needs to authenticate using the second factor he has opted or assigned for such as
  • OTP over SMS
  • PUSH Notification
  • OTP over Email
  • And 12 more methods.
  • KBA (Knowledge-based authentication) The System will ask user for 2 of 3 questions he has configured in his Self Service Console. Only after right answer to both questions user is allowed to proceed further.
    OTP over Alternate Email User will receive a OTP on the alternate email he has configured threw Self Service Console. Once user provides the correct OTP he is allowed to proceed further.

  • Now Enable Enable IP Restriction option from the IP RESTRICTION CONFIGURATION section to configure custom IP range.
  • Laravel Single Sign-On (SSO) Restrict Access adaptive authentication ip blocking

  • Select the Action you want to perform if the IP address is out of the range. i.e. Allow, Challenge & Deny.
  • Specify the IP Address range for which you want above setting to reflect. You can add more than one IP Address ranges by clicking on following button +.
  • Scroll to the end and click on save.


B. Adaptive Authentication with Limiting number of devices.

    Using Adaptive Authentication you can also restrict the number of devices the end user can access the Services on. You can allow end users to access services on a fixed no. of devices. The end users will be able to access services provided by us on this fixed no. of devices.

    You can configure Adaptive Authentication with Device Restriction in following way

  • Login to Self Service Console >> Adaptive Authentication.
  • Add a Policy Name for your Adaptive Authentication Policy.
  • Select your Action for behaviour Change and Challenge Type for user from the Action for behaviour Change Section.
  • Laravel Single Sign-On (SSO) Restrict Access adaptive authentication behaviour and challenge type


  • Scroll down to Device Configuration section and enable Allow User to Register Device option to allow users to register their devices.
  • Enter the Number of Devices which are allowed to register in field next to Number of Device Registrations Allowed
  • Choose Action if number of devices exceeded (This will override your setting for Action for Behaviour Change.)
    1. Challenge: The user needs to verify himself using any of the three methods mentioned in table in step 5.1
    2. Deny : Deny users access to the system
  • Enable option Send email alerts to Users if number of Device registrations exceeded allowed count if you want to alert the user about no of devices exceeding the limit. Save the configuration.
  • Laravel Single Sign-On (SSO) Restrict Access adaptive authentication enable device restriction


C. Add Adaptive Authentication policy to Laravel.

  • Login to Self Service Console >> Policies.
  • Click on Edit option for predefined SAML app policy.
  • Laravel Single Sign-On (sso) edit device restriction policy

  • Set your application name in the Application and select password as Login Method.
  • Enable Adaptive Authentication on Policy page and select the required restriction method as an option.
  • From Select Login Policy dropdown select the policy we created in last step and click on save.
  • Laravel Single Sign-On (SSO) Restrict Access save device restriction policy

    How to add a trusted Device
    1. When End-user log in to the self service console after the policy for device restriction is on, he is provided the option to add the current device as a trusted device.

External References



Want To Schedule A Demo?

Request a Demo
  


Our Other Identity & Access Management Products