After writing Basic Authentication using the platform, Layer0, I thought what if I wanted some users to land to google.com directly if they were from a given IP address or were using an Authorization Header?
What is meant by Conditional Basic Authorization?
I infer it as the "conditional" bypass to basic authorization on an app. The condition herein, can be anything, from matching a certain header to a matching body of a POST request!
For e.g., I want only the user(s) that request a page with cookie name who with value rishi, shall be allowed to view the contents of the page, while rest of the users are thrown to basic authorization. In this case, the "conditional" bypass is of being a user that requests with a cookie: who=rishi.
Creating a Conditional Basic Authentication App with Layer0
The following 8 steps will walk you through implementation of conditional basic authentication with Layer0, which is agnostic to the tech stack of your website.
In the example below, we'll be redirecting authenticated users to https://google.com.
Step 1: Setup
Please complete the steps as in Basic Authentication using the platform, Layer0 to proceed further to the next step 👇🏻
Step 2: Create a new Layer0 environment (say, to-google)
To create a new Layer0 environment, go to your project link as obtained in Step 1 and follow as walked through in Creating an Environment - Layer0 Docs
Step 3: Deploy another app to to-google
In case you find dearth of apps to deploy, go back to the guide Basic Authentication using the platform, Layer0, skip the Step 2 in there and deploy the app via the following command:
npx @layer0/cli@latest deploy -e=to-google # -e or --environment
Step 4: Reach default Layer0 environment
Go to your project in Layer0 console, click on Environments in the navigation bar, and then on default. The following shows the screen you'll land at:

Click on default and then on Configuration to reach the stage as below:

Step 5: Configure Split Testing Rules on the default Layer0 environment
Click on Edit, and then scroll to the bottom of the page under "Split Testing", and then click on Add Rule as in the image below:
This should open up a modal as below:
Step 6: Add the Cookie Name & Value to create conditional bypass to Basic Authentication
Click on Add Criterion, and then from the dropdown, change Device to Cookie. On the right, one may now the respective Cookie Name and the value it should match. Also, as these users are already authenticated, you want them to be sent directly to google, hence change current environment in the dropdown below to to-google.
This is how this configuration will look like:

Click on Apply to save the rule.
Step 7: Send all other users to default environment
To establish this, click on Add Rule, under Destination(s) select 100% of the traffic to face whatever is there in the current Layer0 environment, as done in the image below:
Click on Apply to save the rule.
Step 8: Review your split test configuration
As in the image below, all the users that fail to match the cookie, go to the environment that attemps to authenticate them, yet again.
Activate (Ship!) 🚀
To deploy your changes, click on Activate button at the bottom of the page, and wait for the site to be re-deployed.
Example
The example link still remains the same (let's not make it public that who=rishi cookie users can go to google.com directly 🤫): https://rishi-raj-jain-yg-basic-auth-example-default.layer0-limelight.link




Top comments (0)