{"componentChunkName":"component---src-templates-blog-list-template-js","path":"/73","result":{"data":{"allMarkdownRemark":{"edges":[{"node":{"excerpt":"Introduction In C# 9.0, there are multiple features introduced. One of them is the Init-Only setters property feature. To use this feature…","fields":{"slug":"/engineering/csharp-init-only-setters-property/"},"html":"<h2 id=\"introduction\" style=\"position:relative;\"><a href=\"#introduction\" aria-label=\"introduction permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Introduction</h2>\n<p>In C# 9.0, there are multiple features introduced. One of them is the <strong>Init-Only setters property</strong> feature. To use this feature, there are two pre-requisite.</p>\n<ol>\n<li>You should have the .NET 5 SDK installed in your system. If not, you can download and install it from <a href=\"https://dotnet.microsoft.com/download/dotnet/5.0\">here</a>.</li>\n<li>You should have at least a 16.7 version or the latest version of Visual Studio 2019. If not, then you have to update your Visual Studio 2019 to the latest version.</li>\n</ol>\n<p>After this setup, you are ready to go with the Init-Only setters property feature.</p>\n<p>Before knowing more about this feature, first, we will understand how we are using properties currently in C#.</p>\n<h2 id=\"how-we-are-using-the-properties-currently\" style=\"position:relative;\"><a href=\"#how-we-are-using-the-properties-currently\" aria-label=\"how we are using the properties currently permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>How we are using the properties currently</h2>\n<pre class=\"grvsc-container dark-default-dark\" data-language=\"c#\" data-index=\"0\"><code class=\"grvsc-code\"><span class=\"grvsc-line\"><span class=\"mtk4\">public</span><span class=\"mtk1\"> </span><span class=\"mtk12\">int</span><span class=\"mtk1\"> </span><span class=\"mtk12\">Id</span><span class=\"mtk1\"> { </span><span class=\"mtk12\">get</span><span class=\"mtk1\">; </span><span class=\"mtk12\">set</span><span class=\"mtk1\">; }</span></span></code></pre>\n<p>This is the way how we are using the properties, but whenever if we don't want to change the value of a property outside of a class and make them readable publicly, then we generally define the property as below.</p>\n<pre class=\"grvsc-container dark-default-dark\" data-language=\"c#\" data-index=\"1\"><code class=\"grvsc-code\"><span class=\"grvsc-line\"><span class=\"mtk4\">public</span><span class=\"mtk1\"> </span><span class=\"mtk12\">int</span><span class=\"mtk1\"> </span><span class=\"mtk12\">Id</span><span class=\"mtk1\"> { </span><span class=\"mtk12\">get</span><span class=\"mtk1\">; </span><span class=\"mtk10\">private</span><span class=\"mtk1\"> </span><span class=\"mtk12\">set</span><span class=\"mtk1\">; }</span></span></code></pre>\n<p>In that case, the Id property can not be set outside of the class, and to set this property, we have to introduce a constructor or a public method that can set the value of the Id field. Like below</p>\n<pre class=\"grvsc-container dark-default-dark\" data-language=\"c#\" data-index=\"2\"><code class=\"grvsc-code\"><span class=\"grvsc-line\"><span class=\"mtk4\">public</span><span class=\"mtk1\"> </span><span class=\"mtk4\">class</span><span class=\"mtk1\"> </span><span class=\"mtk10\">Company</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">{</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">    </span><span class=\"mtk4\">public</span><span class=\"mtk1\"> </span><span class=\"mtk4\">int</span><span class=\"mtk1\"> </span><span class=\"mtk12\">Id</span><span class=\"mtk1\"> { </span><span class=\"mtk4\">get</span><span class=\"mtk1\">; </span><span class=\"mtk4\">private</span><span class=\"mtk1\"> </span><span class=\"mtk4\">set</span><span class=\"mtk1\">; }</span></span>\n<span class=\"grvsc-line\"></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">    </span><span class=\"mtk4\">public</span><span class=\"mtk1\"> </span><span class=\"mtk11\">Company</span><span class=\"mtk1\">(</span><span class=\"mtk4\">int</span><span class=\"mtk1\"> </span><span class=\"mtk12\">id</span><span class=\"mtk1\">) </span><span class=\"mtk3\">// Constructor</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">    {</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">        </span><span class=\"mtk12\">Id</span><span class=\"mtk1\"> = </span><span class=\"mtk12\">id</span><span class=\"mtk1\">;</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">    }</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">    </span><span class=\"mtk4\">public</span><span class=\"mtk1\"> </span><span class=\"mtk4\">void</span><span class=\"mtk1\"> </span><span class=\"mtk11\">SetId</span><span class=\"mtk1\">(</span><span class=\"mtk4\">int</span><span class=\"mtk1\"> </span><span class=\"mtk12\">id</span><span class=\"mtk1\">) </span><span class=\"mtk3\">//Public method</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">    {</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">        </span><span class=\"mtk12\">Id</span><span class=\"mtk1\"> = </span><span class=\"mtk12\">id</span><span class=\"mtk1\">;</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">    }</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">}</span></span></code></pre>\n<p>Below are the problems which arise by using the above method</p>\n<ol>\n<li>We are not able to set the property value by using the <em>object initialization</em></li>\n<li>If we want to set the property as <em>immutable</em> (Value can not be changed), then we can not achieve this because any public method can change the value of that property, so here the property is <em>mutable</em> (Value can be changed).</li>\n</ol>\n<p>To fix those issues, In C# 9.0 Init-Only setters property feature was introduced. Have a look at this.</p>\n<h2 id=\"init-only-setters-property\" style=\"position:relative;\"><a href=\"#init-only-setters-property\" aria-label=\"init only setters property permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Init-Only Setters Property</h2>\n<p>Init-Only setters property gives us the flexibility to set the value of a property by using the object initializer as well the property is also immutable. So that will resolve the above issues, which were with the <em>private set</em> property.</p>\n<pre class=\"grvsc-container dark-default-dark\" data-language=\"c#\" data-index=\"3\"><code class=\"grvsc-code\"><span class=\"grvsc-line\"><span class=\"mtk4\">public</span><span class=\"mtk1\"> </span><span class=\"mtk4\">class</span><span class=\"mtk1\"> </span><span class=\"mtk10\">Company</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">{</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">    </span><span class=\"mtk4\">public</span><span class=\"mtk1\"> </span><span class=\"mtk4\">int</span><span class=\"mtk1\"> </span><span class=\"mtk12\">Id</span><span class=\"mtk1\"> { </span><span class=\"mtk4\">get</span><span class=\"mtk1\">; init; }</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">}</span></span></code></pre>\n<pre class=\"grvsc-container dark-default-dark\" data-language=\"c#\" data-index=\"4\"><code class=\"grvsc-code\"><span class=\"grvsc-line\"><span class=\"mtk10\">Company</span><span class=\"mtk1\"> </span><span class=\"mtk12\">comp</span><span class=\"mtk1\">=</span><span class=\"mtk4\">new</span><span class=\"mtk1\"> </span><span class=\"mtk10\">Company</span><span class=\"mtk1\">{</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">    </span><span class=\"mtk12\">Id</span><span class=\"mtk1\">=</span><span class=\"mtk7\">1</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">}; </span><span class=\"mtk3\">// It works fine if we initialize here</span></span></code></pre>\n<p>As we can, it is perfectly fine to set the value during object initialization.</p>\n<pre class=\"grvsc-container dark-default-dark\" data-language=\"c#\" data-index=\"5\"><code class=\"grvsc-code\"><span class=\"grvsc-line\"><span class=\"mtk4\">public</span><span class=\"mtk1\"> </span><span class=\"mtk4\">class</span><span class=\"mtk1\"> </span><span class=\"mtk10\">Company</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">{</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">    </span><span class=\"mtk4\">public</span><span class=\"mtk1\"> </span><span class=\"mtk4\">int</span><span class=\"mtk1\"> </span><span class=\"mtk12\">Id</span><span class=\"mtk1\"> { </span><span class=\"mtk4\">get</span><span class=\"mtk1\">; init; }</span></span>\n<span class=\"grvsc-line\"></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">     </span><span class=\"mtk4\">public</span><span class=\"mtk1\"> </span><span class=\"mtk11\">Company</span><span class=\"mtk1\">(</span><span class=\"mtk4\">int</span><span class=\"mtk1\"> </span><span class=\"mtk12\">id</span><span class=\"mtk1\">)</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">    {</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">        </span><span class=\"mtk4\">this</span><span class=\"mtk1\">.</span><span class=\"mtk12\">Id</span><span class=\"mtk1\"> = </span><span class=\"mtk12\">Id</span><span class=\"mtk1\">;</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">    }</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">}</span></span></code></pre>\n<p>We can define the constructor as well to initialize the Init-Only setters property. </p>\n<p>If we will try to create a method in the class and want to change the value Init-Only setters property, then it will give us the compile-time error.</p>\n<pre class=\"grvsc-container dark-default-dark\" data-language=\"c#\" data-index=\"6\"><code class=\"grvsc-code\"><span class=\"grvsc-line\"><span class=\"mtk4\">public</span><span class=\"mtk1\"> </span><span class=\"mtk4\">class</span><span class=\"mtk1\"> </span><span class=\"mtk10\">Company</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">{</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">    </span><span class=\"mtk4\">public</span><span class=\"mtk1\"> </span><span class=\"mtk4\">int</span><span class=\"mtk1\"> </span><span class=\"mtk12\">Id</span><span class=\"mtk1\"> { </span><span class=\"mtk4\">get</span><span class=\"mtk1\">; init; }</span></span>\n<span class=\"grvsc-line\"></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">    </span><span class=\"mtk4\">public</span><span class=\"mtk1\"> </span><span class=\"mtk4\">void</span><span class=\"mtk1\"> </span><span class=\"mtk11\">SetId</span><span class=\"mtk1\">(</span><span class=\"mtk4\">int</span><span class=\"mtk1\"> </span><span class=\"mtk12\">Id</span><span class=\"mtk1\">)</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">    {</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">        </span><span class=\"mtk4\">this</span><span class=\"mtk1\">.</span><span class=\"mtk12\">Id</span><span class=\"mtk1\"> = </span><span class=\"mtk12\">Id</span><span class=\"mtk1\">; </span><span class=\"mtk3\">// Compile-time Error</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">    }</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">}</span></span></code></pre>\n<h2 id=\"conclusion\" style=\"position:relative;\"><a href=\"#conclusion\" aria-label=\"conclusion permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Conclusion</h2>\n<p>In this article, we learned how we are setting the properties in C# currently and the new C# 9.0 feature Init-Only Setters Property. Also, we understood how this feature helps us to set the property value with the object initialization.</p>\n<style class=\"grvsc-styles\">\n  .grvsc-container {\n    overflow: auto;\n    -webkit-overflow-scrolling: touch;\n    padding-top: 1rem;\n    padding-top: var(--grvsc-padding-top, var(--grvsc-padding-v, 1rem));\n    padding-bottom: 1rem;\n    padding-bottom: var(--grvsc-padding-bottom, var(--grvsc-padding-v, 1rem));\n    border-radius: 8px;\n    border-radius: var(--grvsc-border-radius, 8px);\n    font-feature-settings: normal;\n  }\n  \n  .grvsc-code {\n    display: inline-block;\n    min-width: 100%;\n  }\n  \n  .grvsc-line {\n    display: inline-block;\n    box-sizing: border-box;\n    width: 100%;\n    padding-left: 1.5rem;\n    padding-left: var(--grvsc-padding-left, var(--grvsc-padding-h, 1.5rem));\n    padding-right: 1.5rem;\n    padding-right: var(--grvsc-padding-right, var(--grvsc-padding-h, 1.5rem));\n  }\n  \n  .grvsc-line-highlighted {\n    background-color: var(--grvsc-line-highlighted-background-color, transparent);\n    box-shadow: inset var(--grvsc-line-highlighted-border-width, 4px) 0 0 0 var(--grvsc-line-highlighted-border-color, transparent);\n  }\n  \n  .dark-default-dark {\n    background-color: #1E1E1E;\n    color: #D4D4D4;\n  }\n  .dark-default-dark .mtk4 { color: #569CD6; }\n  .dark-default-dark .mtk1 { color: #D4D4D4; }\n  .dark-default-dark .mtk12 { color: #9CDCFE; }\n  .dark-default-dark .mtk10 { color: #4EC9B0; }\n  .dark-default-dark .mtk11 { color: #DCDCAA; }\n  .dark-default-dark .mtk3 { color: #6A9955; }\n  .dark-default-dark .mtk7 { color: #B5CEA8; }\n</style>","frontmatter":{"date":"July 15, 2021","updated_date":null,"description":"In this article, we will talk about Init-Only Setters Property in C#.","title":"C# Init-Only Setters Property","tags":["C#","Properties","Init"],"pinned":null,"coverImage":{"childImageSharp":{"fluid":{"aspectRatio":1.5037593984962405,"src":"/static/e2d2c98e4cd2dbf38d3e2ddeaba94705/ee604/coverimage.png","srcSet":"/static/e2d2c98e4cd2dbf38d3e2ddeaba94705/69585/coverimage.png 200w,\n/static/e2d2c98e4cd2dbf38d3e2ddeaba94705/497c6/coverimage.png 400w,\n/static/e2d2c98e4cd2dbf38d3e2ddeaba94705/ee604/coverimage.png 800w,\n/static/e2d2c98e4cd2dbf38d3e2ddeaba94705/f3583/coverimage.png 1200w","sizes":"(max-width: 800px) 100vw, 800px"}}},"author":{"id":"Hemant Manwani","github":"hemant404","avatar":null}}}},{"node":{"excerpt":"Introduction Adaptive authentication is a game-changer for enterprises that require strong fencing to protect consumer and enterprise data…","fields":{"slug":"/identity/adaptive-authentication/"},"html":"<h2 id=\"introduction\" style=\"position:relative;\"><a href=\"#introduction\" aria-label=\"introduction permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Introduction</h2>\n<p>Adaptive authentication is a game-changer for enterprises that require strong fencing to protect consumer and enterprise data. Here’s a quick read depicting the role and need for adaptive authentication instead of just multi-factor authentication.</p>\n<p>With technology evolving leaps and bounds, identity and access management become stringently important for businesses collecting user information.</p>\n<p>However, managing the identities of millions of consumers wasn’t a tough nut to crack earlier as it is today.</p>\n<p>Especially in the most unpredictable times of COVID-19 when the world is witnessing a <a href=\"https://www.statista.com/statistics/1175574/increase-cyber-fraud-coronavirus-outbreak/\">substantial surge in the number of security breaches</a>.</p>\n<p>Security layers backed by multi-factor authentication (MFA) were considered entirely secure when enterprises had a limited number of consumers.</p>\n<p>We’re talking about the era when no one expected the abrupt rise of SaaS applications for the enhanced business process containing heaps of sensitive data (client and organization).</p>\n<p>For many enterprises, this meant the need to implement multi-factor authentication, which, however, proved to be fruitful but may not work in a high-risk event.</p>\n<p>So, does it mean that multi-factor authentication isn’t the best authentication mechanism?</p>\n<p>Yes, as things have drastically changed now.</p>\n<p>Let’s quickly learn about the next level of authentication- “Adaptive Authentication,” and how it’s paving a path for a robust security ecosystem in today’s era.</p>\n<h2 id=\"the-need-for-adaptive-authentication\" style=\"position:relative;\"><a href=\"#the-need-for-adaptive-authentication\" aria-label=\"the need for adaptive authentication permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>The Need for Adaptive Authentication</h2>\n<p>Usernames and passwords alone can’t guarantee enough security for users and the enterprise since attackers are continuously bypassing frailer defense systems.</p>\n<p>Moreover, multi-factor authentication also seems ineffective in certain situations when the risk is relatively high, and it raises the need for a rigid security mechanism.</p>\n<p>In recent years, adaptive authentication has been integrated with <a href=\"https://www.loginradius.com/blog/identity/customer-identity-and-access-management/\">customer identity and access management</a> (CIAM) platforms and is considered the best approach since authenticated users can only access data and resources.</p>\n<p>Let’s dig deeper into this and understand the ultimate approach to best secure user identities and data and sensitive business information.</p>\n<h2 id=\"what-is-multi-factor-authentication\" style=\"position:relative;\"><a href=\"#what-is-multi-factor-authentication\" aria-label=\"what is multi factor authentication permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>What is Multi-Factor Authentication?</h2>\n<p>Multi-factor authentication (MFA) is a multi-layered protection framework that verifies users’ login or other transaction identities to provide access to certain resources.</p>\n<p>A few examples of multi-factor authentication are codes created by mobile apps, answers to personal security questions, codes sent to an email address, fingerprints, etc.</p>\n<p>Read this post to get the detailed information regarding <a href=\"https://www.loginradius.com/blog/identity/what-is-multi-factor-authentication/\">multi-factor authentication</a>, how it works, and how to quickly set up multi-factor authentication.</p>\n<h2 id=\"what-is-adaptive-authentication\" style=\"position:relative;\"><a href=\"#what-is-adaptive-authentication\" aria-label=\"what is adaptive authentication permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>What is Adaptive Authentication?</h2>\n<p>Just like multi-factor authentication, adaptive authentication also verifies an identity but eventually considers certain security risk factors.</p>\n<p><a href=\"https://www.loginradius.com/blog/engineering/What-is-adaptive-authentication/\">Adaptive Authentication</a> (also known as Risk-based Authentication) or adaptive multifactor authentication is a method to send notifications or prompt the consumers to complete an additional step(s) to verify their identities when the authentication request is deemed malicious according to your organization's security policy.</p>\n<p>In a nutshell, Adaptive Authentication analyzes the user interaction with your application and intelligently builds a risk profile based on the consumer behavior or your organization's security policy.</p>\n<p>And when we talk about adaptive authentication example, let’s consider a scenario where a user tries to log into its account from a different device/location or changes the pattern of logging in into his/her account. Here, the smart system will detect an unusual activity and would eventually add another stringent layer of authentication. </p>\n<p>This approach improves overall security by ensuring that high-risk consumers have the highest level of adaptable and flexible security in place.</p>\n<p>Apart from this, adaptive authentication is considered far smarter than multi-factor authentication since it responds to the device that attempts to log in, the IP address, and the geographical location of the attempt.</p>\n<p>This means the mechanism automatically implements robust authentication controls whenever a login seems to be suspicious.</p>\n<p><a href=\"https://www.loginradius.com/resource/fixing-broken-authentication-with-adaptive-mfa/\"><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 768px; \"\n    >\n      <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 30.307692307692307%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAGCAYAAADDl76dAAAACXBIWXMAAAsSAAALEgHS3X78AAABbklEQVQY01WQTUsCURSGJSjnQx3JJKTEQittNC2ZScfGRkfUTKUoUiwy2gRFH5tWWZtW/pJo0SJaRBEtok1t2rUJ+itvZ9QRWrxwL/c9zz08FnZ6CUa4GRW2YPpf+KAK890IE1DAiTpGEutwzelgwzkwwWWwUykwvY7FhBkFeygNju48xRnR4Y6vwBnOgqEBE8gTxKvVIeZqsCU2YI3kCah036nXAVrp4FfXkKkdQK40IZV3MalU4KANBVHrA60EHI5k4ZVLcM/n4ZWK8CwUOtuZHYtJ9iUrkAgm6lsYk1YgRPPgYyUItCHbKw/5k3BFc/ApVYwvrlLKGI0XO/N9oHHgyZd9VgMX0jAYoMFACg6lDj7dhCNaIJ8qLJ4YjlptfP/84u7xFTf3T7h9eMbbxxde3j9JTYY+VAwgOSOHhiuBvPFitvtBYhMMAQUCGhsOTMiQq3s4vGhj+/QSjeMWGict7J9fY+fsCjbyb6j7AxKEw6noHebVAAAAAElFTkSuQmCC'); background-size: cover; display: block;\"\n  ></span>\n  <img\n        class=\"gatsby-resp-image-image\"\n        alt=\"LoginRadius-Adaptive-MFA\"\n        title=\"LoginRadius-Adaptive-MFA\"\n        src=\"/static/38581e51de794ee73778cc943c5b9537/e5715/LoginRadius-Adaptive-MFA.png\"\n        srcset=\"/static/38581e51de794ee73778cc943c5b9537/a6d36/LoginRadius-Adaptive-MFA.png 650w,\n/static/38581e51de794ee73778cc943c5b9537/e5715/LoginRadius-Adaptive-MFA.png 768w,\n/static/38581e51de794ee73778cc943c5b9537/63ff0/LoginRadius-Adaptive-MFA.png 2887w\"\n        sizes=\"(max-width: 768px) 100vw, 768px\"\n        style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n        loading=\"lazy\"\n      />\n    </span></a></p>\n<h2 id=\"adaptive-authentication-and-strong-customer-authentication\" style=\"position:relative;\"><a href=\"#adaptive-authentication-and-strong-customer-authentication\" aria-label=\"adaptive authentication and strong customer authentication permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Adaptive Authentication and Strong Customer Authentication</h2>\n<p>Adaptive authentication and strong customer authentication are two important methods used by businesses to protect against fraudulent activities and ensure secure transactions. </p>\n<p>Adaptive authentication or adaptive multifactor authentication involves the use of multiple authentication factors, such as passwords, biometric data, and security tokens, to verify the identity of users based on risk factors such as the location and type of device being used. </p>\n<p>SCA is a regulatory requirement under the European Union's Payment Services Directive 2 (PSD2), which mandates the use of at least two independent authentication factors for all electronic transactions. </p>\n<p>This ensures that only authorized individuals can access sensitive data or perform financial transactions. Together, adaptive authentication and SCA provide a multi-layered approach to security, enhancing user protection and mitigating the risk of cyber attacks.</p>\n<h2 id=\"working-mechanism-of-adaptive-authentication\" style=\"position:relative;\"><a href=\"#working-mechanism-of-adaptive-authentication\" aria-label=\"working mechanism of adaptive authentication permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Working Mechanism of Adaptive Authentication</h2>\n<p>Whenever an authentication request is estimated as a malicious attempt, based on the risk factors defined for your application, it triggers one or more of the following actions as per your predefined requirements:</p>\n<ul>\n<li>Email Notification: An email with a notification regarding the authentication request is sent to the consumer. If found malicious, the consumer can inform their service provider to take the necessary action.</li>\n<li>SMS Notification: An SMS notification is sent to the consumer regarding the authentication request. This further helps in identifying a malicious request, which can be reported quickly.</li>\n<li>Multi-Factor Authentication: The consumer is asked to verify their identity through the second factor of authentication. This can be either email verification, phone verification, or a security question-based authentication.</li>\n<li>Blocking User Access: After multiple access requests, the account is blocked immediately once a specific risk criterion is met. Now the consumer needs to get in touch with the service provider to get unblocked.</li>\n<li>Security Questions: Security questions offer a way to authenticate users once they are under suspicion. Consumers need to answer certain questions to prove their identity.</li>\n</ul>\n<h2 id=\"the-biggest-advantage-of-adaptive-authentication\" style=\"position:relative;\"><a href=\"#the-biggest-advantage-of-adaptive-authentication\" aria-label=\"the biggest advantage of adaptive authentication permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>The Biggest Advantage of Adaptive Authentication</h2>\n<p>Adaptive authentication increases your conversion rates!</p>\n<p>Yes, here’s how it’s achieved.</p>\n<p>Besides the fact that adaptive authentication offers the highest level of security for both consumers and enterprises, it also ensures a frictionless authentication process for normal conditions.</p>\n<p>Yes, unlike multi-factor authentication that creates a lengthy authentication process each time a user tries to log in, adaptive authentication only kicks in whenever it finds a suspicious login attempt.</p>\n<p>This means a user won’t need to prove their identity through multiple layers of authentication in everyday scenarios. Instead, the user would only be required to go through the authentication process if the system finds any unusual activity from the user’s end or detects a risk.</p>\n<p>Must read: <a href=\"https://www.loginradius.com/blog/identity/risk-based-authentication/\">What is Risk-Based Authentication?</a></p>\n<p>When users get a flawless experience while signing in, there are more chances of conversion when compared to a login process involving an exhausting authentication process.</p>\n<h2 id=\"in-conclusion\" style=\"position:relative;\"><a href=\"#in-conclusion\" aria-label=\"in conclusion permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>In Conclusion</h2>\n<p>Adaptive authentication or adaptive multifactor authentication is the key to business success backed by enhanced security for both the consumers and enterprises.</p>\n<p><a href=\"https://www.loginradius.com/\">LoginRadius’ CIAM</a> offers a top-notch adaptive authentication solution through its “Risk-Based Authentication” mechanism.</p>\n<p>Enterprises seeking the highest level of consumer and organization data security without hampering the user experience should consider relying on LoginRadius’ cutting-edge CIAM solution.</p>\n<p>Need more help? <a href=\"https://www.loginradius.com/contact-sales2/\">Reach us</a> to know how LoginRadius’ “Adaptive Authentication” can help secure your consumer identities and business information.</p>\n<p><a href=\"https://www.loginradius.com/book-a-demo/\"><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 768px; \"\n    >\n      <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 30.307692307692307%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAGCAYAAADDl76dAAAACXBIWXMAAAsSAAALEgHS3X78AAABdElEQVQY002RO0/CUBzFG6PtbZWHCAmRmBB5P8vDII9SSC0omog4oAEGjZMO6OKEuLjoJ2Fx0cSBwUQnXZxcHPwux38LJA7nNvfec8+5v1tOCCiwpbbhye2BxbYgBMtgIRVioDRRsARGXxZUzLlEHmehBaesQ4rrEMPViYf2DR9nDGKkChbVICVqsMt1WJI1sHCFwhUsUIFohJH49TxECvRUjhDW2mAbB5iP6hB8hUkhiRPN5KIZYJdrsEYrcCSpmQqMm6/m9ylUhSulY7N5ivROB3L9GOlGF3Ktbc4zuz341UPw/uIk0ESbBjoSGlYIx8BfzjSwVmyCEYEUUmCPa3Bnd+hwC75yC95S05SxbolU/iEbOCFCpDexEfIioTNCNd6Tp6IlMnNuGeeDe3z//OLx5RWj5zFGT2O8fXxh/P4Ja6w6vSEFCnTIlW2YiDzhzX7ATFKojDlvjpBPcDF4QPdyiG5/iE7/BmfXd+hd3VKpCoG8fzxWw2+c+yTpAAAAAElFTkSuQmCC'); background-size: cover; display: block;\"\n  ></span>\n  <img\n        class=\"gatsby-resp-image-image\"\n        alt=\"book-a-demo-Consultation\"\n        title=\"book-a-demo-Consultation\"\n        src=\"/static/fcc4c4b5dc38cc4528f99d09480f4eb2/e5715/book-a-demo-loginradius.png\"\n        srcset=\"/static/fcc4c4b5dc38cc4528f99d09480f4eb2/a6d36/book-a-demo-loginradius.png 650w,\n/static/fcc4c4b5dc38cc4528f99d09480f4eb2/e5715/book-a-demo-loginradius.png 768w,\n/static/fcc4c4b5dc38cc4528f99d09480f4eb2/63ff0/book-a-demo-loginradius.png 2887w\"\n        sizes=\"(max-width: 768px) 100vw, 768px\"\n        style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n        loading=\"lazy\"\n      />\n    </span></a></p>\n<style class=\"grvsc-styles\">\n  .grvsc-container {\n    overflow: auto;\n    -webkit-overflow-scrolling: touch;\n    padding-top: 1rem;\n    padding-top: var(--grvsc-padding-top, var(--grvsc-padding-v, 1rem));\n    padding-bottom: 1rem;\n    padding-bottom: var(--grvsc-padding-bottom, var(--grvsc-padding-v, 1rem));\n    border-radius: 8px;\n    border-radius: var(--grvsc-border-radius, 8px);\n    font-feature-settings: normal;\n  }\n  \n  .grvsc-code {\n    display: inline-block;\n    min-width: 100%;\n  }\n  \n  .grvsc-line {\n    display: inline-block;\n    box-sizing: border-box;\n    width: 100%;\n    padding-left: 1.5rem;\n    padding-left: var(--grvsc-padding-left, var(--grvsc-padding-h, 1.5rem));\n    padding-right: 1.5rem;\n    padding-right: var(--grvsc-padding-right, var(--grvsc-padding-h, 1.5rem));\n  }\n  \n  .grvsc-line-highlighted {\n    background-color: var(--grvsc-line-highlighted-background-color, transparent);\n    box-shadow: inset var(--grvsc-line-highlighted-border-width, 4px) 0 0 0 var(--grvsc-line-highlighted-border-color, transparent);\n  }\n  \n</style>","frontmatter":{"date":"July 15, 2021","updated_date":null,"description":"Adaptive authentication is a game-changer for enterprises that require strong fencing to protect consumer and enterprise data. Here’s a quick read depicting the role and need for adaptive authentication instead of just multi-factor authentication.","title":"Adaptive Authentication- Is it the Next Breakthrough in Customer Authentication?","tags":["adaptive authentication","mfa","ciam solution"],"pinned":null,"coverImage":{"childImageSharp":{"fluid":{"aspectRatio":1.550387596899225,"src":"/static/7539d973d1ef1af1ff929cc4e36a4df2/14b42/adaptive-authentication.jpg","srcSet":"/static/7539d973d1ef1af1ff929cc4e36a4df2/f836f/adaptive-authentication.jpg 200w,\n/static/7539d973d1ef1af1ff929cc4e36a4df2/2244e/adaptive-authentication.jpg 400w,\n/static/7539d973d1ef1af1ff929cc4e36a4df2/14b42/adaptive-authentication.jpg 800w,\n/static/7539d973d1ef1af1ff929cc4e36a4df2/47498/adaptive-authentication.jpg 1200w,\n/static/7539d973d1ef1af1ff929cc4e36a4df2/0e329/adaptive-authentication.jpg 1600w,\n/static/7539d973d1ef1af1ff929cc4e36a4df2/d8255/adaptive-authentication.jpg 1920w","sizes":"(max-width: 800px) 100vw, 800px"}}},"author":{"id":"Vishal Sharma","github":null,"avatar":null}}}},{"node":{"excerpt":"What is a Content Security Policy (CSP), and why is it important? Overview A Content Protection Policy (CSP) is a security standard that…","fields":{"slug":"/engineering/content-security-policy/"},"html":"<p>What is a Content Security Policy (CSP), and why is it important?</p>\n<h2 id=\"overview\" style=\"position:relative;\"><a href=\"#overview\" aria-label=\"overview permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Overview</h2>\n<p>A Content Protection Policy (CSP) is a security standard that adds an extra layer of defense in detecting and mitigating certain kinds of attacks, such as Cross-Site Scripting (XSS), clickjacking, and other code injection threats. CSP is a preventative step against attacks that rely on executing malicious material in a trusted web context, as well as other attempts to bypass the same-origin policy.</p>\n<h2 id=\"what-threats-csp-can-mitigate\" style=\"position:relative;\"><a href=\"#what-threats-csp-can-mitigate\" aria-label=\"what threats csp can mitigate permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>What Threats CSP Can Mitigate?</h2>\n<h3 id=\"1-mitigating-cross-site-scripting\" style=\"position:relative;\"><a href=\"#1-mitigating-cross-site-scripting\" aria-label=\"1 mitigating cross site scripting permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>1. Mitigating cross-site scripting</h3>\n<p>The CSP's main purpose is to prevent and report XSS attacks. XSS attacks take advantage of the browser's faith in the server's content. Because the browser trusts the source of the material without additional safety measures, the browser runs all code from a trustworthy origin. It is unable to distinguish which code is legal. Thus any injected malicious code is also executed.</p>\n<p>The website administrator can reduce the XSS attack using the CSP by defining trusted source sites for the executable scripts. When we use the CSP header, browsers only allow us to run the script from the whitelisted domains and ignore all other scripts.</p>\n<p>We can also use the same-origin policy (SOP) header to prevent the website from accessing data from the other origin. Still, Websites need to include lots of assets from external sources like content delivery networks (CDNs), Google Analytics scripts, fonts, styles, comment modules, social media buttons, etc., so for the modern web, we need to use CSP.  </p>\n<h3 id=\"2-mitigating-packet-sniffing-and-enforcing-https\" style=\"position:relative;\"><a href=\"#2-mitigating-packet-sniffing-and-enforcing-https\" aria-label=\"2 mitigating packet sniffing and enforcing https permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>2. Mitigating Packet Sniffing and Enforcing HTTPS</h3>\n<p>One interesting advantage of a content security policy is we can define the permitted protocols. For example, the sites can restrict browsers from loading content over HTTPS. Some browsers, by default, will not connect to HTTPS but using the content security policy, we can enforce browsers to encrypt conversations with your server. </p>\n<p>Sites may also leverage HTTP Strict-Transport-Security headers to ensure that browsers only connect to the site over encrypted routes.</p>\n<h2 id=\"understand-the-csp\" style=\"position:relative;\"><a href=\"#understand-the-csp\" aria-label=\"understand the csp permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Understand the CSP</h2>\n<h3 id=\"how-to-use-csp\" style=\"position:relative;\"><a href=\"#how-to-use-csp\" aria-label=\"how to use csp permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>How to Use CSP?</h3>\n<p>Adding the Content-Security-Policy HTTP header to a web page and setting values for it allows you to restrict what resources the user agent is authorized to load for that page. For example, A page that allows loading external CSS or fonts but not allows loading javascript from the external domains.</p>\n<p>HTTP response headers are generally used to specify the Content-Security-Policy header, but if needed, you can also use HTML meta tags to provide specific CSP directives at the page level. </p>\n<p>An example of adding CSP headers is shown below. </p>\n<pre class=\"grvsc-container dark-default-dark\" data-language=\"javascript\" data-index=\"0\"><code class=\"grvsc-code\"><span class=\"grvsc-line\"><span class=\"mtk1\"> </span><span class=\"mtk12\">Content</span><span class=\"mtk1\">-</span><span class=\"mtk12\">Security</span><span class=\"mtk1\">-Policy: </span><span class=\"mtk15\">default</span><span class=\"mtk1\">-</span><span class=\"mtk12\">src</span><span class=\"mtk1\"> </span><span class=\"mtk8\">&#39;self&#39;</span><span class=\"mtk1\">; </span><span class=\"mtk12\">img</span><span class=\"mtk1\">-</span><span class=\"mtk12\">src</span><span class=\"mtk1\"> *;  </span><span class=\"mtk12\">script</span><span class=\"mtk1\">-</span><span class=\"mtk12\">src</span><span class=\"mtk1\"> </span><span class=\"mtk12\">loginradius</span><span class=\"mtk1\">.</span><span class=\"mtk12\">com</span><span class=\"mtk1\">;</span></span></code></pre>\n<p> An example of adding CSP headers in the HTML tags</p>\n<pre class=\"grvsc-container dark-default-dark\" data-language=\"javascript\" data-index=\"1\"><code class=\"grvsc-code\"><span class=\"grvsc-line\"><span class=\"mtk17\">&lt;</span><span class=\"mtk4\">meta</span><span class=\"mtk1\"> </span><span class=\"mtk12\">http-equiv</span><span class=\"mtk1\">=</span><span class=\"mtk8\">&quot;Content-Security-Policy&quot;</span><span class=\"mtk1\"> </span><span class=\"mtk12\">content</span><span class=\"mtk1\">=</span><span class=\"mtk8\">&quot;default-src &#39;self&#39;&quot;</span><span class=\"mtk17\">&gt;</span></span></code></pre>\n<h2 id=\"csp-directive\" style=\"position:relative;\"><a href=\"#csp-directive\" aria-label=\"csp directive permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>CSP Directive</h2>\n<p>Listed below are a couple of CSP directives and their use cases:</p>\n<p><strong><code>Default-src</code></strong>: This directive serves as a fallback for the other CSP fetch directives. For absent directives like media-src and script-src, the user agent looks for the default-src directive's content and uses it.</p>\n<p><strong><code>Script-src</code></strong>: This directive is used to define locations from which external scripts can be loaded.</p>\n<p><strong><code>Img-src</code></strong>: Specifies sources from which images can be retrieved.</p>\n<p><strong><code>Media-src</code></strong>: This directive is used to define locations from which rich media like video can be retrieved.</p>\n<p><strong><code>Object-src</code></strong>: This directive is used to define locations from which plugins can be retrieved.</p>\n<p><strong><code>Font-src</code></strong>: Specifies permitted sources for loading fonts.</p>\n<p><strong><code>manifest-src</code></strong>: A list of acceptable source locations for web manifests. Web manifests are used by users of Progressive Web Applications to download websites and run them like native mobile apps.</p>\n<p><strong><code>frame-ancestors</code></strong>: A list of acceptable URL locations which this website can load in an iFrame.</p>\n<p><strong><code>form-action</code></strong>: A list of acceptable URL target locations where the website can send form data. It's most likely that you want this value set to <code>self</code>  as most websites only submit their form data locally. This property is not covered by default-src above, so make sure you set it.</p>\n<p><strong><code>plugin-types</code></strong>: The list of plugin types that can be loaded from the locations in object-src. Likely that you also want to set this to <code>none</code>.</p>\n<p><strong><code>base-uri</code></strong>: The list of URLs that can be used in HTML base tags on your site.</p>\n<p><strong><code>child-src</code></strong> is used to restrict permitted URLs for JavaScript workers and embedded frame contents, including embedded videos. In Level 3, frame-src and worker-src directives can be used instead to control embedded content and worker processes, respectively.</p>\n<p><strong><code>style-src</code></strong> is used to whitelist CSS stylesheet sources. To allow stylesheets from the current origin only, use style-src 'self'.</p>\n<p><strong><code>connect-src</code></strong> specifies permitted origins for direct JavaScript connections that use EventSource, WebSocket, or XMLHttpRequest objects.</p>\n<p>You can find a more updated and complete list maintained by Mozilla here.\nMozilla maintains a more up-to-date and comprehensive list, which can be seen <a href=\"https://developer.mozilla.org/en-US/docs/Web/HTTP/CSP\">here</a>.</p>\n<h2 id=\"csp-browser-compatibility\" style=\"position:relative;\"><a href=\"#csp-browser-compatibility\" aria-label=\"csp browser compatibility permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>CSP Browser Compatibility</h2>\n<p> All major modern browsers have supported Content Security Policy.</p>\n<ol>\n<li>Chrome</li>\n<li>Firefox</li>\n<li>Safari</li>\n<li>Edge</li>\n<li>Opera</li>\n<li>Internet Explorer</li>\n<li>Chrome Android</li>\n<li>Firefox Android</li>\n<li>Safari on iOS</li>\n<li>Opera Android</li>\n<li>Samsung Internet</li>\n</ol>\n<p>Mozilla maintains a more up-to-date and comprehensive list for the CSP support in the browser, which can be seen <a href=\"https://developer.mozilla.org/en-US/docs/Web/HTTP/CSP#browser_compatibility\">here</a>.</p>\n<h2 id=\"common-use-cases\" style=\"position:relative;\"><a href=\"#common-use-cases\" aria-label=\"common use cases permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Common Use cases</h2>\n<h3 id=\"user-case-1-sites-origin-only\" style=\"position:relative;\"><a href=\"#user-case-1-sites-origin-only\" aria-label=\"user case 1 sites origin only permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>User case #1: Site's Origin only</h3>\n<p>The <code>default-src</code> directive in the below example policy is set to self. This permits the browser to load resources from the site's origin. </p>\n<pre class=\"grvsc-container dark-default-dark\" data-language=\"javascript\" data-index=\"2\"><code class=\"grvsc-code\"><span class=\"grvsc-line\"><span class=\"mtk1\"> </span><span class=\"mtk17\">&lt;</span><span class=\"mtk4\">meta</span><span class=\"mtk1\"> </span><span class=\"mtk12\">http-equiv</span><span class=\"mtk1\">=</span><span class=\"mtk8\">&quot;Content-Security-Policy&quot;</span><span class=\"mtk1\"> </span><span class=\"mtk12\">content</span><span class=\"mtk1\">=</span><span class=\"mtk8\">&quot;default-src &#39;self&#39;&quot;</span><span class=\"mtk17\">&gt;</span></span></code></pre>\n<h3 id=\"user-case-2-trusted-domain-only\" style=\"position:relative;\"><a href=\"#user-case-2-trusted-domain-only\" aria-label=\"user case 2 trusted domain only permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>User case #2: Trusted Domain only</h3>\n<p>The <code>default-src</code>  directive in the below example policy permits the browser to load resources from the trusted domain and all its subdomains.</p>\n<pre class=\"grvsc-container dark-default-dark\" data-language=\"javascript\" data-index=\"3\"><code class=\"grvsc-code\"><span class=\"grvsc-line\"><span class=\"mtk1\"> </span><span class=\"mtk17\">&lt;</span><span class=\"mtk4\">meta</span><span class=\"mtk1\"> </span><span class=\"mtk12\">http-equiv</span><span class=\"mtk1\">=</span><span class=\"mtk8\">&quot;Content-Security-Policy&quot;</span><span class=\"mtk1\"> </span><span class=\"mtk12\">content</span><span class=\"mtk1\">=</span><span class=\"mtk8\">&quot;default-src &#39;self&#39; *.loginradius.com&quot;</span><span class=\"mtk17\">&gt;</span></span></code></pre>\n<p>The above policy permits the browser to load content from loginradius.com as well as any subdomain under loginradius.com.</p>\n<h3 id=\"user-case-3-sslhttps-only\" style=\"position:relative;\"><a href=\"#user-case-3-sslhttps-only\" aria-label=\"user case 3 sslhttps only permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>User case #3: SSL/HTTPS only</h3>\n<p>Suppose you are running an e-commerce site and want to ensure that all resources are only loaded via SSL or HTTPS. The below policy ensures that all of the resources on your website load from TLS.</p>\n<pre class=\"grvsc-container dark-default-dark\" data-language=\"javascript\" data-index=\"4\"><code class=\"grvsc-code\"><span class=\"grvsc-line\"><span class=\"mtk1\"> </span><span class=\"mtk17\">&lt;</span><span class=\"mtk4\">meta</span><span class=\"mtk1\"> </span><span class=\"mtk12\">http-equiv</span><span class=\"mtk1\">=</span><span class=\"mtk8\">&quot;Content-Security-Policy&quot;</span><span class=\"mtk1\"> </span><span class=\"mtk12\">content</span><span class=\"mtk1\">=</span><span class=\"mtk8\">&quot;default-src https:; script-src https: &#39;unsafe-inline&#39;; style-src https: &#39;unsafe-inline&#39;&quot;</span><span class=\"mtk17\">&gt;</span></span></code></pre>\n<h3 id=\"user-case-4-trusted-executable-script-only\" style=\"position:relative;\"><a href=\"#user-case-4-trusted-executable-script-only\" aria-label=\"user case 4 trusted executable script only permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>User case #4: Trusted Executable Script only</h3>\n<p>If you want to allow users of a web application to add images/photos from any source but permits all scripts from trusted sources or specific sources.</p>\n<pre class=\"grvsc-container dark-default-dark\" data-language=\"javascript\" data-index=\"5\"><code class=\"grvsc-code\"><span class=\"grvsc-line\"><span class=\"mtk1\"> </span><span class=\"mtk17\">&lt;</span><span class=\"mtk4\">meta</span><span class=\"mtk1\"> </span><span class=\"mtk12\">http-equiv</span><span class=\"mtk1\">=</span><span class=\"mtk8\">&quot;Content-Security-Policy&quot;</span><span class=\"mtk1\"> </span><span class=\"mtk12\">content</span><span class=\"mtk1\">=</span><span class=\"mtk8\">&quot;default-src &#39;self&#39; img-src *; script-src cdn.loginradius.com;&quot;</span><span class=\"mtk17\">&gt;</span></span></code></pre>\n<p> The <code>img-src</code> directive allows images to load from anywhere.\nThe <code>script-src</code> directive can only accept executable scripts from cdn.loginradius.com.</p>\n<p> If you want to add social widgets like the google+ button, Facebook like, Tweet button on your website, you need to allow external script also like the below policy.</p>\n<pre class=\"grvsc-container dark-default-dark\" data-language=\"javascript\" data-index=\"6\"><code class=\"grvsc-code\"><span class=\"grvsc-line\"><span class=\"mtk17\">&lt;</span><span class=\"mtk4\">meta</span><span class=\"mtk1\"> </span><span class=\"mtk12\">http-equiv</span><span class=\"mtk1\">=</span><span class=\"mtk8\">&quot;Content-Security-Policy&quot;</span><span class=\"mtk1\"> </span><span class=\"mtk12\">content</span><span class=\"mtk1\">=</span><span class=\"mtk8\">&quot;default-src &#39;self&#39; img-src *; script-src cdn.loginradius.com;https://platform.twitter.com; child-src https://plusone.google.com https://facebook.com https://platform.twitter.com;&quot;</span><span class=\"mtk17\">&gt;</span></span></code></pre>\n<h3 id=\"user-case-5-reporting-only\" style=\"position:relative;\"><a href=\"#user-case-5-reporting-only\" aria-label=\"user case 5 reporting only permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>User case #5: Reporting only</h3>\n<p>The <code>Content-Security-Policy-Report-Only</code> Header is a wonderful method to evaluate the effects of a Content-Security-Policy header without really blocking anything on the site. Also, we can get any violation reports using this header. By default, it only sends reports to the developer tools console. If you include a <code>report-to</code> or <code>report-uri</code> directive, it will send a JSON representation of the violation to the provided URI endpoint. </p>\n<pre class=\"grvsc-container dark-default-dark\" data-language=\"javascript\" data-index=\"7\"><code class=\"grvsc-code\"><span class=\"grvsc-line\"><span class=\"mtk1\"> </span><span class=\"mtk17\">&lt;</span><span class=\"mtk4\">meta</span><span class=\"mtk1\"> </span><span class=\"mtk12\">http-equiv</span><span class=\"mtk1\">=</span><span class=\"mtk8\">&quot;Content-Security-Policy-Report-Only&quot;</span><span class=\"mtk1\"> </span><span class=\"mtk12\">content</span><span class=\"mtk1\">=</span><span class=\"mtk8\">&quot;default-src &#39;self&#39;; report-uri https://report.yourwebsite.com/cspreport;&quot;</span><span class=\"mtk17\">&gt;</span></span></code></pre>\n<p>In the above example, it will not enforce anything. <code>Content-Security-Policy-Report-Only</code> policy only generates reports and sends them to the report URI. The CSP violation report is generated in JSON format. </p>\n<pre class=\"grvsc-container dark-default-dark\" data-language=\"javascript\" data-index=\"8\"><code class=\"grvsc-code\"><span class=\"grvsc-line\"><span class=\"mtk1\"> </span><span class=\"mtk17\">&lt;</span><span class=\"mtk4\">meta</span><span class=\"mtk1\"> </span><span class=\"mtk12\">http-equiv</span><span class=\"mtk1\">=</span><span class=\"mtk8\">&quot;Content-Security-Policy-Report-Only&quot;</span><span class=\"mtk1\"> </span><span class=\"mtk12\">content</span><span class=\"mtk1\">=</span><span class=\"mtk8\">&quot;default-src &#39;self&#39;; script-src cdn.loginradius.com; report-uri https://report.loginradius.com/cspreport;&quot;</span><span class=\"mtk17\">&gt;</span></span></code></pre>\n<p>In the above example, the policy only allows the script from cdn.loginradius.com.</p>\n<h4 id=\"sample-html\" style=\"position:relative;\"><a href=\"#sample-html\" aria-label=\"sample html permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Sample Html</h4>\n<pre class=\"grvsc-container dark-default-dark\" data-language=\"html\" data-index=\"9\"><code class=\"grvsc-code\"><span class=\"grvsc-line\"><span class=\"mtk1\">&lt;!</span><span class=\"mtk12\">DOCTYPE</span><span class=\"mtk1\"> </span><span class=\"mtk12\">html</span><span class=\"mtk1\">&gt;</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk17\">&lt;</span><span class=\"mtk4\">html</span><span class=\"mtk17\">&gt;</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">  </span></span>\n<span class=\"grvsc-line\"><span class=\"mtk17\">&lt;</span><span class=\"mtk4\">head</span><span class=\"mtk17\">&gt;</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">    </span><span class=\"mtk17\">&lt;</span><span class=\"mtk4\">title</span><span class=\"mtk17\">&gt;</span><span class=\"mtk1\">Content Security Policy</span><span class=\"mtk17\">&lt;/</span><span class=\"mtk4\">title</span><span class=\"mtk17\">&gt;</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">   </span><span class=\"mtk17\">&lt;</span><span class=\"mtk4\">script</span><span class=\"mtk1\"> </span><span class=\"mtk12\">type</span><span class=\"mtk1\">=</span><span class=\"mtk8\">&#39;text/javascript&#39;</span><span class=\"mtk1\"> </span><span class=\"mtk12\">src</span><span class=\"mtk1\">=</span><span class=\"mtk8\">&#39;https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js&#39;</span><span class=\"mtk17\">&gt;&lt;/</span><span class=\"mtk4\">script</span><span class=\"mtk17\">&gt;</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk17\">&lt;/</span><span class=\"mtk4\">head</span><span class=\"mtk17\">&gt;</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">  </span></span>\n<span class=\"grvsc-line\"><span class=\"mtk17\">&lt;</span><span class=\"mtk4\">body</span><span class=\"mtk17\">&gt;</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">    . . .</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk17\">&lt;/</span><span class=\"mtk4\">body</span><span class=\"mtk17\">&gt;</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">  </span></span>\n<span class=\"grvsc-line\"><span class=\"mtk17\">&lt;/</span><span class=\"mtk4\">html</span><span class=\"mtk17\">&gt;</span></span></code></pre>\n<p>In the below sample HTML browser trying to download javascript from the other source, but we have allowed javascript src only from the CDN so that the browser will send the following violation report.</p>\n<pre class=\"grvsc-container dark-default-dark\" data-language=\"json\" data-index=\"10\"><code class=\"grvsc-code\"><span class=\"grvsc-line\"><span class=\"mtk1\"> {</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk12\">&quot;csp-report&quot;</span><span class=\"mtk1\">:{</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk12\">&quot;document-uri&quot;</span><span class=\"mtk1\">: </span><span class=\"mtk8\">&quot;https://loginradius.com/test.html&quot;</span><span class=\"mtk1\">,</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk12\">&quot;referrer&quot;</span><span class=\"mtk1\">: </span><span class=\"mtk8\">&quot;&quot;</span><span class=\"mtk1\">,</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk12\">&quot;blocked-uri&quot;</span><span class=\"mtk1\">: </span><span class=\"mtk8\">&quot;https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js&quot;</span><span class=\"mtk1\">,</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk12\">&quot;violated-directive&quot;</span><span class=\"mtk1\">: </span><span class=\"mtk8\">&quot;script-src cdn.loginradius.com&quot;</span><span class=\"mtk1\">,</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk12\">&quot;original-policy&quot;</span><span class=\"mtk1\">: </span><span class=\"mtk8\">&quot;default-src &#39;self&#39;; script-src cdn.loginradius.com; report-uri https://report.loginradius.com/cspreport;&quot;</span><span class=\"mtk1\">,</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk12\">&quot;disposition”: “report&quot;</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">}</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">}</span></span></code></pre>\n<h2 id=\"summary\" style=\"position:relative;\"><a href=\"#summary\" aria-label=\"summary permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Summary</h2>\n<p>The Content Security Policy will add an additional layer of protection to your web application. CSP is compatible with almost all current browsers and is widely used on the internet as an effective technique for decreasing the threat of cross-site scripting attacks.</p>\n<p>The Web Application Security Working Group of the Wide Web Consortium (w3c has already begun work on the specification's next <a href=\"https://www.w3.org/TR/CSP3/\">version, Content Security Policy Level 3</a> and Content Security Policy Level 2 already <a href=\"https://www.w3.org/TR/CSP2/\">Candidate Recommendation</a>.</p>\n<style class=\"grvsc-styles\">\n  .grvsc-container {\n    overflow: auto;\n    -webkit-overflow-scrolling: touch;\n    padding-top: 1rem;\n    padding-top: var(--grvsc-padding-top, var(--grvsc-padding-v, 1rem));\n    padding-bottom: 1rem;\n    padding-bottom: var(--grvsc-padding-bottom, var(--grvsc-padding-v, 1rem));\n    border-radius: 8px;\n    border-radius: var(--grvsc-border-radius, 8px);\n    font-feature-settings: normal;\n  }\n  \n  .grvsc-code {\n    display: inline-block;\n    min-width: 100%;\n  }\n  \n  .grvsc-line {\n    display: inline-block;\n    box-sizing: border-box;\n    width: 100%;\n    padding-left: 1.5rem;\n    padding-left: var(--grvsc-padding-left, var(--grvsc-padding-h, 1.5rem));\n    padding-right: 1.5rem;\n    padding-right: var(--grvsc-padding-right, var(--grvsc-padding-h, 1.5rem));\n  }\n  \n  .grvsc-line-highlighted {\n    background-color: var(--grvsc-line-highlighted-background-color, transparent);\n    box-shadow: inset var(--grvsc-line-highlighted-border-width, 4px) 0 0 0 var(--grvsc-line-highlighted-border-color, transparent);\n  }\n  \n  .dark-default-dark {\n    background-color: #1E1E1E;\n    color: #D4D4D4;\n  }\n  .dark-default-dark .mtk1 { color: #D4D4D4; }\n  .dark-default-dark .mtk12 { color: #9CDCFE; }\n  .dark-default-dark .mtk15 { color: #C586C0; }\n  .dark-default-dark .mtk8 { color: #CE9178; }\n  .dark-default-dark .mtk17 { color: #808080; }\n  .dark-default-dark .mtk4 { color: #569CD6; }\n</style>","frontmatter":{"date":"July 14, 2021","updated_date":null,"description":null,"title":"Content Security Policy (CSP)","tags":["Secuirty Header","CSP","Content Security Policy"],"pinned":null,"coverImage":{"childImageSharp":{"fluid":{"aspectRatio":1.5037593984962405,"src":"/static/72be1a5572db6f2a09fd6baddad74fe9/14b42/content-security-policy.jpg","srcSet":"/static/72be1a5572db6f2a09fd6baddad74fe9/f836f/content-security-policy.jpg 200w,\n/static/72be1a5572db6f2a09fd6baddad74fe9/2244e/content-security-policy.jpg 400w,\n/static/72be1a5572db6f2a09fd6baddad74fe9/14b42/content-security-policy.jpg 800w,\n/static/72be1a5572db6f2a09fd6baddad74fe9/47498/content-security-policy.jpg 1200w,\n/static/72be1a5572db6f2a09fd6baddad74fe9/0e329/content-security-policy.jpg 1600w","sizes":"(max-width: 800px) 100vw, 800px"}}},"author":{"id":"Vijay Singh Shekhawat","github":"code-vj","avatar":null}}}},{"node":{"excerpt":"Creating a frictionless consumer experience should be the top priority of every business striving for success in the digital world. A survey…","fields":{"slug":"/growth/consumer-journey-from-sign-up-to-purchase/"},"html":"<p>Creating a frictionless consumer experience should be the top priority of every business striving for success in the digital world.</p>\n<p>A <a href=\"https://www.accenture.com/t20180503T034117Z__w__/nl-en/_acnmedia/PDF-77/Accenture-Pulse-Survey.pdf\">survey by Accenture Interactive</a> found that 48% of consumers have switched from one website to another just because the former lacked personalization—and, the trend is swiftly increasing.</p>\n<p>But how online service providers ensure they have maximum sign-ups and eventually have more conversions? Or in other words, what’s the <a href=\"https://www.loginradius.com/customer-security/\">biggest secret to winning consumer trust</a> right from the moment a user first visits the website?</p>\n<p>Today, enterprises must be aware that the secret to success lies in quickly identifying and eliminating any troubles and pain points that occur when consumers interact with their organization (whether through website or application).</p>\n<p>Don’t worry, you need not do everything yourself!</p>\n<p>A user identity management solution like LoginRadius does everything, literally everything for you.</p>\n<p>Let’s learn how <a href=\"https://www.loginradius.com/\">LoginRadius CIAM</a> (consumer identity and access management) solution offers a frictionless consumer journey right from the beginning and ensures maximum conversions.</p>\n<h2 id=\"every-consumer-interaction-is-a-delightful-interaction-with-loginradius\" style=\"position:relative;\"><a href=\"#every-consumer-interaction-is-a-delightful-interaction-with-loginradius\" aria-label=\"every consumer interaction is a delightful interaction with loginradius permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Every Consumer Interaction is a Delightful Interaction with LoginRadius</h2>\n<p>Businesses need to pay close attention to consumer experience, the total of digital and in-person interactions that a user has with a brand.</p>\n<p>At baseline, a good consumer experience needs to work to deliver products and services with minimal fuss.</p>\n<p>And if a company wants to pull out and stay ahead of the curve, that experience needs to be remarkable. Integrated. Personal. Delightful.</p>\n<p>LoginRadius guarantees the same!</p>\n<p>Since users already know what defines a delightful experience as they are already interacting with brands like Amazon, Google, Apple, and Microsoft, businesses must ensure they’re trying to achieve a similar grade. Failing which, users will quickly switch brands.</p>\n<p>Here’s how we achieve this:</p>\n<ul>\n<li>Designing the Ideal Consumer Journey</li>\n</ul>\n<p>From the first <a href=\"https://www.loginradius.com/blog/identity/user-onboarding-revamp-application/\">step of user onboarding</a> to the thousandth login, create a process that is welcoming and intelligent to foster great consumer relationships.</p>\n<ul>\n<li>Localization-To Build Trust</li>\n</ul>\n<p>LoginRadius supports every human language, so all of your forms, email messages, and texts can be customized for your worldwide market.</p>\n<ul>\n<li>Tailor-Make your Interfaces</li>\n</ul>\n<p>Choose the fields and design your registration, login, and forgot password forms. Everything can be white-labeled, so consumers won’t know you’re using LoginRadius.</p>\n<ul>\n<li>An Email Workflow that Actually Works</li>\n</ul>\n<p>Whenever you need to get into your consumer’s inbox to manage the login process, LoginRadius provides customizable templates and sequences so you’re always on-brand.</p>\n<ul>\n<li>Deliver a High-Performance Experience</li>\n</ul>\n<p>Never turn a consumer away because your login service is down. LoginRadius has unmatched uptime, and we can handle 150K logins per second—that’s “20x More than Our Competitors”.</p>\n<ul>\n<li>Unify The Login Process With Single Sign-On.</li>\n</ul>\n<p>Easily connect your websites, mobile apps, and third-party services so that consumers can interact with you everywhere using a single identity.</p>\n<ul>\n<li>Effective Consumer Experience that Drives Growth</li>\n</ul>\n<p>Since users remember negative experiences more than positive ones, businesses must ensure they deliver the finest user experience.</p>\n<p>If your brand can identify the key problem areas that users face and are able to deliver a rich consumer-centric experience, you’re automatically ahead of your competitors.</p>\n<p>LoginRadius understands the importance of a rich consumer experience throughout the onboarding journey of a user that later converts into a buyer.</p>\n<p>Here’s what businesses can achieve by getting LoginRadius user onboarding system</p>\n<p>in place:</p>\n<ul>\n<li>Increase Conversion</li>\n</ul>\n<p>Turn visitors into registered users with a frictionless experience. When it’s easier to create an account with your business, more people will do it.</p>\n<ul>\n<li>Boost Consumer Retention</li>\n</ul>\n<p>Ensure users come back with a delightful experience with LoginRadius. When your digital and offline services are useful and smoothly integrated, people have no reason to look elsewhere.</p>\n<ul>\n<li>Increase Upselling and Cross-Selling</li>\n</ul>\n<p>Bring in more revenue with a personalized experience. When you know people’s preferences, you can offer what they want, when they want it, the way they want it.</p>\n<h2 id=\"the-next-level-of-robust-security\" style=\"position:relative;\"><a href=\"#the-next-level-of-robust-security\" aria-label=\"the next level of robust security permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>The Next Level of Robust Security</h2>\n<p>A flawless user experience coupled with a personalized consumer journey isn’t just the benefits of getting LoginRadius in place, you also get the robust line of defense.</p>\n<p>Yes, <a href=\"https://www.loginradius.com/security/\">LoginRadius CIAM offers industry-standard security</a> that ensures your consumer information and your business-sensitive information is stored and managed securely.</p>\n<p>With security features that industry giants like Google, Amazon, and Microsoft rely on upon, LoginRadius ensures the highest level of secure authentication and authorization.</p>\n<h2 id=\"understand-customer-behaviour-over-time\" style=\"position:relative;\"><a href=\"#understand-customer-behaviour-over-time\" aria-label=\"understand customer behaviour over time permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Understand Customer Behaviour Over Time</h2>\n<p>Leverage the power of data with over 30 charts within customizable date ranges with LoginRadius.</p>\n<p>The smart CIAM lets you expand your understanding of customer activity over different periods of your sales or season cycles.</p>\n<p>What’s more remarkable is that you can export data visualization elements like graphs and pie charts to Microsoft Excel with the click of a button.</p>\n<p>Customer analytics has never been more accessible with the LoginRadius Admin Console.</p>\n<p><a href=\"https://www.loginradius.com/resource/digital-identity-trends-2020/\">Download Digital Identity Trend Report 2020</a> for detailed information regarding opportunities and risks within the identity environment through our comprehensive customer behavior analysis.</p>\n<h2 id=\"final-thoughts\" style=\"position:relative;\"><a href=\"#final-thoughts\" aria-label=\"final thoughts permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Final Thoughts</h2>\n<p>Businesses today need to focus on enhancing consumer experience right from the beginning when a consumer lands on the website or application.</p>\n<p>Enhancing the consumers’ preferred ways of interacting with your brand is undeniably the key to business success contributing to more conversions.</p>\n<p>LoginRadius understands the importance of consumer onboarding and has designed a robust CIAM that helps brands swiftly increase sign-ups and eventually enhance conversions.</p>\n<p>Ready to leverage the next level of CIAM solution? Or have any doubts? <a href=\"https://www.loginradius.com/contact-sales/\">Schedule a Quick Personalized Call</a> and understand how LoginRadius can be a game-changer for your business success.</p>\n<p><a href=\"https://www.loginradius.com/book-a-demo/\"><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 768px; \"\n    >\n      <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 30.307692307692307%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAGCAYAAADDl76dAAAACXBIWXMAAAsSAAALEgHS3X78AAABdElEQVQY002RO0/CUBzFG6PtbZWHCAmRmBB5P8vDII9SSC0omog4oAEGjZMO6OKEuLjoJ2Fx0cSBwUQnXZxcHPwux38LJA7nNvfec8+5v1tOCCiwpbbhye2BxbYgBMtgIRVioDRRsARGXxZUzLlEHmehBaesQ4rrEMPViYf2DR9nDGKkChbVICVqsMt1WJI1sHCFwhUsUIFohJH49TxECvRUjhDW2mAbB5iP6hB8hUkhiRPN5KIZYJdrsEYrcCSpmQqMm6/m9ylUhSulY7N5ivROB3L9GOlGF3Ktbc4zuz341UPw/uIk0ESbBjoSGlYIx8BfzjSwVmyCEYEUUmCPa3Bnd+hwC75yC95S05SxbolU/iEbOCFCpDexEfIioTNCNd6Tp6IlMnNuGeeDe3z//OLx5RWj5zFGT2O8fXxh/P4Ja6w6vSEFCnTIlW2YiDzhzX7ATFKojDlvjpBPcDF4QPdyiG5/iE7/BmfXd+hd3VKpCoG8fzxWw2+c+yTpAAAAAElFTkSuQmCC'); background-size: cover; display: block;\"\n  ></span>\n  <img\n        class=\"gatsby-resp-image-image\"\n        alt=\"book-a-demo-Consultation\"\n        title=\"book-a-demo-Consultation\"\n        src=\"/static/fcc4c4b5dc38cc4528f99d09480f4eb2/e5715/book-a-demo-loginradius.png\"\n        srcset=\"/static/fcc4c4b5dc38cc4528f99d09480f4eb2/a6d36/book-a-demo-loginradius.png 650w,\n/static/fcc4c4b5dc38cc4528f99d09480f4eb2/e5715/book-a-demo-loginradius.png 768w,\n/static/fcc4c4b5dc38cc4528f99d09480f4eb2/63ff0/book-a-demo-loginradius.png 2887w\"\n        sizes=\"(max-width: 768px) 100vw, 768px\"\n        style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n        loading=\"lazy\"\n      />\n    </span></a></p>\n<style class=\"grvsc-styles\">\n  .grvsc-container {\n    overflow: auto;\n    -webkit-overflow-scrolling: touch;\n    padding-top: 1rem;\n    padding-top: var(--grvsc-padding-top, var(--grvsc-padding-v, 1rem));\n    padding-bottom: 1rem;\n    padding-bottom: var(--grvsc-padding-bottom, var(--grvsc-padding-v, 1rem));\n    border-radius: 8px;\n    border-radius: var(--grvsc-border-radius, 8px);\n    font-feature-settings: normal;\n  }\n  \n  .grvsc-code {\n    display: inline-block;\n    min-width: 100%;\n  }\n  \n  .grvsc-line {\n    display: inline-block;\n    box-sizing: border-box;\n    width: 100%;\n    padding-left: 1.5rem;\n    padding-left: var(--grvsc-padding-left, var(--grvsc-padding-h, 1.5rem));\n    padding-right: 1.5rem;\n    padding-right: var(--grvsc-padding-right, var(--grvsc-padding-h, 1.5rem));\n  }\n  \n  .grvsc-line-highlighted {\n    background-color: var(--grvsc-line-highlighted-background-color, transparent);\n    box-shadow: inset var(--grvsc-line-highlighted-border-width, 4px) 0 0 0 var(--grvsc-line-highlighted-border-color, transparent);\n  }\n  \n</style>","frontmatter":{"date":"July 14, 2021","updated_date":null,"description":" Enterprises, today, must be aware of the fact that the secret to success lies in quickly identifying and eliminating any pain point that occurs when consumers interact with their brand. Here’s an insightful read depicting how LoginRadius helps enterprises navigate their business success through a frictionless consumer journey.","title":"From Sign-Up to Purchase – How LoginRadius Offers a Frictionless Consumer Journey","tags":["user onboarding","ciam solution","cx"],"pinned":null,"coverImage":{"childImageSharp":{"fluid":{"aspectRatio":1.5384615384615385,"src":"/static/dcb79c7760f241ccb2d81e10ab56b445/14b42/consumer-signup-to-purchase.jpg","srcSet":"/static/dcb79c7760f241ccb2d81e10ab56b445/f836f/consumer-signup-to-purchase.jpg 200w,\n/static/dcb79c7760f241ccb2d81e10ab56b445/2244e/consumer-signup-to-purchase.jpg 400w,\n/static/dcb79c7760f241ccb2d81e10ab56b445/14b42/consumer-signup-to-purchase.jpg 800w,\n/static/dcb79c7760f241ccb2d81e10ab56b445/47498/consumer-signup-to-purchase.jpg 1200w,\n/static/dcb79c7760f241ccb2d81e10ab56b445/0e329/consumer-signup-to-purchase.jpg 1600w,\n/static/dcb79c7760f241ccb2d81e10ab56b445/9363c/consumer-signup-to-purchase.jpg 5980w","sizes":"(max-width: 800px) 100vw, 800px"}}},"author":{"id":"Vishal Sharma","github":null,"avatar":null}}}},{"node":{"excerpt":"In an era when everyone is locked inside their homes amid the global pandemic, businesses at a halt, and vaccination becoming the only ray…","fields":{"slug":"/growth/customer-identity-drives-digital-ecommerce-success/"},"html":"<p>In an era when everyone is locked inside their homes amid the global pandemic, businesses at a halt, and vaccination becoming the only ray of hope, numerous eCommerce businesses have flourished across the world.</p>\n<p>As the lockdown and social distancing became the new normal, businesses adopted <a href=\"https://www.loginradius.com/blog/identity/what-is-digital-transformation/\">digital transformation</a>.</p>\n<p>Whether we talk about online groceries or telemedicine, the world faced the paradigm shift and adopted digital platforms for almost every day-to-day task that otherwise required them to step out of their homes.</p>\n<p>So what’s the reason behind the immediate success of new players in the eCommerce space while others were still left with abandoned carts?</p>\n<p>Not many of you would be aware that consumer identity and access management (CIAM) solutions played a crucial role in enhancing eCommerce business success.</p>\n<p>From collecting insightful information from users to offering behavioral analysis, a CIAM solution has always been the key to win trust when it comes to pushing carts to final checkouts.</p>\n<p>In this post, we’ll learn how a CIAM solution paves the path for an eCommerce business success and how enterprises thinking to step into the eCommerce world could leverage cutting-edge CIAM solutions to scale business growth.</p>\n<h2 id=\"authentication-coupled-with-a-perfect-harmony-of-security-and-user-experience-ux\" style=\"position:relative;\"><a href=\"#authentication-coupled-with-a-perfect-harmony-of-security-and-user-experience-ux\" aria-label=\"authentication coupled with a perfect harmony of security and user experience ux permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Authentication Coupled with a Perfect Harmony of Security and User Experience (UX)</h2>\n<p>Did you know <a href=\"https://www.pymnts.com/news/security-and-risk/2021/consumers-will-drop-a-merchant-over-a-single-data-breach/\">65% of eCommerce shoppers are likely to end their relationships</a> with online merchants after experiencing even a single instance of data theft or even a payment fraud?</p>\n<p>In a world when data and identity thefts lead to losses worth millions of dollars, securing consumer identities and sensitive information isn’t a feature. It’s a compulsion.</p>\n<p>Adding more robust authentication layers, including multi-factor authentication (MFA) and <a href=\"https://www.loginradius.com/blog/identity/risk-based-authentication/\">risk-based authentication</a> (RBA) to log in and sign-up procedures, can help secure consumer data and prevent a breach.</p>\n<p><a href=\"https://www.loginradius.com/resource/ebook/buyers-guide-to-multi-factor-authentication/\"><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 768px; \"\n    >\n      <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 30.307692307692307%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAGCAYAAADDl76dAAAACXBIWXMAAAsSAAALEgHS3X78AAABkklEQVQY0zWQyy9jYRjGTwQ9vYlQpTrViJ7T0lZIpeq0TqN1mWSmBAuKxCVCIqQrEqEiqUjM7GYjwcaKjQUWkxmJhZmNlZ2NZP6V33znHBZPvuR7n/e5vJJdzeBS01SVT4me/eViYpfVVp363ApSewG3msMu5gZPDmk4onk8qUkau/PYY8PIkSyykkY25gKSQXQoGt6dH/gq9ywnF0koWRKfUsj+EdzhvCBqlqDgOeMjBIZmiQ7P4EhOYYuPiv13Q/FKspLBKRLUrVWQisdIsRmkYJ6GwCS1vgKukG65C7IzohPo/4K/7zNNvaP4E2MEU19pEGnld1FT0Kji3fpO1/4lkaUT/EMlGmNFatwaro5B7OGMSa7t0MzltoECASFkoEWIm5U/BK3KabxrRyjb56jFQ5rT63jC0zg9WepEfVenjuTrYbP8jde3f9z8fOTq9hfXd795en7h4c8z9fGcaWgJGpXEcatVnepQBptIbQsZ/4M4whaqgkn6x5fY2DthvlRmbmvfxMp2hYXSgWlqE8H+AywzymSbMN5UAAAAAElFTkSuQmCC'); background-size: cover; display: block;\"\n  ></span>\n  <img\n        class=\"gatsby-resp-image-image\"\n        alt=\"EB-GD-to-MFA\"\n        title=\"EB-GD-to-MFA\"\n        src=\"/static/5093fa5ddf26d3a3ec38a96c3e0387e6/e5715/EB-GD-to-MFA.png\"\n        srcset=\"/static/5093fa5ddf26d3a3ec38a96c3e0387e6/a6d36/EB-GD-to-MFA.png 650w,\n/static/5093fa5ddf26d3a3ec38a96c3e0387e6/e5715/EB-GD-to-MFA.png 768w,\n/static/5093fa5ddf26d3a3ec38a96c3e0387e6/81501/EB-GD-to-MFA.png 2886w\"\n        sizes=\"(max-width: 768px) 100vw, 768px\"\n        style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n        loading=\"lazy\"\n      />\n    </span></a></p>\n<p>Also, these secure authentication practices help enterprises to verify the individuals quickly they say they are.</p>\n<p>Additionally, security backed with a better user experience helps build consumer trust that further paves the path for a smoother onboarding.</p>\n<p>Yes, a CIAM solution like LoginRadius not just offers robust security but eventually provides a seamless <a href=\"https://www.loginradius.com/blog/fuel/improve-customer-experience-ecommerce/\">eCommerce consumer experience</a> while user's sign-up for your website/application through various authentication methods, including Social Login, Passwordless Login, and Single Sign-On (SSO).</p>\n<p>The combination of security and user experience makes a CIAM the need of the hour for every <a href=\"https://www.loginradius.com/b2c-identity/\">B2C enterprise</a> seeking substantial growth by winning consumer trust.</p>\n<h2 id=\"a-deeper-understanding-of-who-is-interacting-with-your-brand\" style=\"position:relative;\"><a href=\"#a-deeper-understanding-of-who-is-interacting-with-your-brand\" aria-label=\"a deeper understanding of who is interacting with your brand permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>A Deeper Understanding of Who is Interacting with Your Brand</h2>\n<p>If your eCommerce website isn’t generating revenues, it doesn’t necessarily mean that you don’t have visitors!</p>\n<p>Yes, the visitor to conversion ratio is something that brands should immediately work upon.</p>\n<p>As per recent stats, <a href=\"https://www.statista.com/statistics/439576/online-shopper-conversion-rate-worldwide/\">2.17 percent of global e-commerce website visits were converted into purchases</a>. This means that roughly two visitors out of 100 would be converted on your eCommerce platform.</p>\n<p>So how could a business enhance conversions? Or what’s the best way to analyze visitors and monitor their behavior to figure out what needs to be done?</p>\n<p>Well, here’s where a CIAM like LoginRadius comes into play.</p>\n<p>With LoginRadius CIAM, you can successfully target your customer base with data collected and organized in the Admin Console.</p>\n<p>The LoginRadius Identity Platform makes complex customer analytics easy to understand via detailed graphs and customer insights.</p>\n<p>Moreover, you can leverage the power of data with over 30 charts within customizable date ranges. Expand your understanding of customer activity over different periods of your sales or season cycles.</p>\n<p>This not only helps you in understanding your visitors but eventually makes it easier for you to plan your marketing around aspects that would promote conversions.</p>\n<p>You can <a href=\"https://www.loginradius.com/live-demo2/\">Book a Quick 30-Minutes Demo</a> to know how LoginRadius would specifically empower your eCommerce business.</p>\n<h2 id=\"getting-customer-data-with-customer-consent\" style=\"position:relative;\"><a href=\"#getting-customer-data-with-customer-consent\" aria-label=\"getting customer data with customer consent permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Getting Customer Data with Customer Consent</h2>\n<p>The concept of progressive profiling is getting a lot of attention these days. So, what is it, and why do retailers need it?</p>\n<p>Progressive profiling collects information about your customers using dynamic web forms throughout the purchase journey.</p>\n<p>Here's how this works. For example, you want some details from your customers to customize the end-user experience, or you want their consent to use some of your services, but you are afraid of losing them by asking them to fill a long registration form.</p>\n<p><a href=\"https://www.loginradius.com/progressive-profiling/\">Progressive profiling</a> will do wonders here. For instance, when the customer has placed the first three orders, you can ask them to fill in a small questionnaire. They will more likely answer about their preferences at this stage rather than during the registration.</p>\n<h2 id=\"final-thoughts\" style=\"position:relative;\"><a href=\"#final-thoughts\" aria-label=\"final thoughts permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Final Thoughts</h2>\n<p>Ecommerce is the new normal in a pandemic era and beyond. Businesses that are swiftly adopting the new age of selling products and services must emphasize delivering a seamless and secure user experience.</p>\n<p>A consumer identity and access management solution is undoubtedly the key to win consumer success as enterprises can identify their visitors and <a href=\"https://www.loginradius.com/customer-experience-solutions/\">build personalized experiences</a> around foremost touchpoints, including research, purchase, discovery, and more.<p>\n<a href=\"https://www.loginradius.com/book-a-demo/\"><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 768px; \"\n    >\n      <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 30.307692307692307%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAGCAYAAADDl76dAAAACXBIWXMAAAsSAAALEgHS3X78AAABdElEQVQY002RO0/CUBzFG6PtbZWHCAmRmBB5P8vDII9SSC0omog4oAEGjZMO6OKEuLjoJ2Fx0cSBwUQnXZxcHPwux38LJA7nNvfec8+5v1tOCCiwpbbhye2BxbYgBMtgIRVioDRRsARGXxZUzLlEHmehBaesQ4rrEMPViYf2DR9nDGKkChbVICVqsMt1WJI1sHCFwhUsUIFohJH49TxECvRUjhDW2mAbB5iP6hB8hUkhiRPN5KIZYJdrsEYrcCSpmQqMm6/m9ylUhSulY7N5ivROB3L9GOlGF3Ktbc4zuz341UPw/uIk0ESbBjoSGlYIx8BfzjSwVmyCEYEUUmCPa3Bnd+hwC75yC95S05SxbolU/iEbOCFCpDexEfIioTNCNd6Tp6IlMnNuGeeDe3z//OLx5RWj5zFGT2O8fXxh/P4Ja6w6vSEFCnTIlW2YiDzhzX7ATFKojDlvjpBPcDF4QPdyiG5/iE7/BmfXd+hd3VKpCoG8fzxWw2+c+yTpAAAAAElFTkSuQmCC'); background-size: cover; display: block;\"\n  ></span>\n  <img\n        class=\"gatsby-resp-image-image\"\n        alt=\"book-a-demo-Consultation\"\n        title=\"book-a-demo-Consultation\"\n        src=\"/static/fcc4c4b5dc38cc4528f99d09480f4eb2/e5715/book-a-demo-loginradius.png\"\n        srcset=\"/static/fcc4c4b5dc38cc4528f99d09480f4eb2/a6d36/book-a-demo-loginradius.png 650w,\n/static/fcc4c4b5dc38cc4528f99d09480f4eb2/e5715/book-a-demo-loginradius.png 768w,\n/static/fcc4c4b5dc38cc4528f99d09480f4eb2/63ff0/book-a-demo-loginradius.png 2887w\"\n        sizes=\"(max-width: 768px) 100vw, 768px\"\n        style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n        loading=\"lazy\"\n      />\n    </span></a></p>\n<style class=\"grvsc-styles\">\n  .grvsc-container {\n    overflow: auto;\n    -webkit-overflow-scrolling: touch;\n    padding-top: 1rem;\n    padding-top: var(--grvsc-padding-top, var(--grvsc-padding-v, 1rem));\n    padding-bottom: 1rem;\n    padding-bottom: var(--grvsc-padding-bottom, var(--grvsc-padding-v, 1rem));\n    border-radius: 8px;\n    border-radius: var(--grvsc-border-radius, 8px);\n    font-feature-settings: normal;\n  }\n  \n  .grvsc-code {\n    display: inline-block;\n    min-width: 100%;\n  }\n  \n  .grvsc-line {\n    display: inline-block;\n    box-sizing: border-box;\n    width: 100%;\n    padding-left: 1.5rem;\n    padding-left: var(--grvsc-padding-left, var(--grvsc-padding-h, 1.5rem));\n    padding-right: 1.5rem;\n    padding-right: var(--grvsc-padding-right, var(--grvsc-padding-h, 1.5rem));\n  }\n  \n  .grvsc-line-highlighted {\n    background-color: var(--grvsc-line-highlighted-background-color, transparent);\n    box-shadow: inset var(--grvsc-line-highlighted-border-width, 4px) 0 0 0 var(--grvsc-line-highlighted-border-color, transparent);\n  }\n  \n</style>","frontmatter":{"date":"July 10, 2021","updated_date":null,"description":"Learn how a CIAM solution paves the path for an eCommerce business success and why enterprises thinking to step into the eCommerce world should leverage a cutting-edge CIAM solution.","title":"How Customer Identity Solution Drives Digital eCommerce Success","tags":["identity management","digital transformation","cx"],"pinned":null,"coverImage":{"childImageSharp":{"fluid":{"aspectRatio":1.5037593984962405,"src":"/static/2e89b2966233b8c6b77a8f61c24731a9/14b42/ecommerce-digital-identity-solutions.jpg","srcSet":"/static/2e89b2966233b8c6b77a8f61c24731a9/f836f/ecommerce-digital-identity-solutions.jpg 200w,\n/static/2e89b2966233b8c6b77a8f61c24731a9/2244e/ecommerce-digital-identity-solutions.jpg 400w,\n/static/2e89b2966233b8c6b77a8f61c24731a9/14b42/ecommerce-digital-identity-solutions.jpg 800w,\n/static/2e89b2966233b8c6b77a8f61c24731a9/47498/ecommerce-digital-identity-solutions.jpg 1200w,\n/static/2e89b2966233b8c6b77a8f61c24731a9/0e329/ecommerce-digital-identity-solutions.jpg 1600w,\n/static/2e89b2966233b8c6b77a8f61c24731a9/c033a/ecommerce-digital-identity-solutions.jpg 4288w","sizes":"(max-width: 800px) 100vw, 800px"}}},"author":{"id":"Vishal Sharma","github":null,"avatar":null}}}},{"node":{"excerpt":"When was the last time you signed up to a website by filling out the entire registration form? Gone are the days where you had to fill out…","fields":{"slug":"/identity/bring-your-own-identity/"},"html":"<p>When was the last time you signed up to a website by filling out the entire registration form? Gone are the days where you had to fill out lengthy registration forms, create different usernames and passwords, and remember them every time you tried to login - awesome, right!</p>\n<p>Consumers demand a smarter experience today. They don't like to create a new ID every time they want to utilize a service. Instead, they are open to leveraging their existing digital identity securely and easily, with the opportunity to reuse it in multiple domains. </p>\n<p>And as a response to this demand, businesses have come-up with a concept called Bring Your Own Identity (BYOI).</p>\n<h2 id=\"what-is-byoi\" style=\"position:relative;\"><a href=\"#what-is-byoi\" aria-label=\"what is byoi permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>What is BYOI</h2>\n<p>The \"Bring your own\" trend started when organizations allowed their employees to bring their device - BYOD. Later, it gained popularity and paved the way for many such concepts like Bring your own apps (BYOA), Bring your own technology (BYOT), Bring your own cloud (BYOC), Bring your own encryption (BYOE), etc.</p>\n<p><strong>Bring your own identity, or BYOI is also one such trend where consumers bring in their own digital ID, which is either managed by self or by any third-party.</strong></p>\n<p>Instead of asking consumers to fill in long forms as part of the registration process, you can allow them to choose their existing <a href=\"https://www.loginradius.com/blog/identity/digital-identity-management/\">digital identity</a>. These could be any of their social media accounts such as Facebook, Twitter, Google, or LinkedIn. </p>\n<p>Moreso, with features  like simplified registration (which is both quick and secure), the BYOI trend can address the problems of organizations that are losing consumers.  </p>\n<h2 id=\"the-big-picture\" style=\"position:relative;\"><a href=\"#the-big-picture\" aria-label=\"the big picture permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>The Big Picture</h2>\n<p>With the pandemic forcing organizations to rethink their digital transformation, BYOI is a key part of securing user identities in 2021. BYOI (Bring Your Own Identity) will unlock the value in digital identities and is going to disrupt traditional methods of access in the future.</p>\n<p>Many of your consumers have an existing digital identity, and BYOI lets them use an account they already have rather than creating a new one. By allowing your consumers to log in with an existing set of credentials, you make it simple for consumers to sign up for an account with you, increasing your overall conversion rate.</p>\n<h2 id=\"identity-brokering\" style=\"position:relative;\"><a href=\"#identity-brokering\" aria-label=\"identity brokering permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Identity Brokering</h2>\n<p><a href=\"https://www.loginradius.com/identity-providers/\">Identity Brokering</a> is an approach where organizations/businesses do not require consumers to provide their credentials to authenticate. Instead, an identity broker service acts as a bridge between the Identity and Service Providers and enables the authentication process between the two.</p>\n<h3 id=\"span-stylecolor-ff4500-identity-broker-service-facilitates-byoi-by-implementing-industry-standard-protocol-oauth2-oauth-open-authentication-2-is-a-framework-that-authorizes-and-enables-applications-to-obtain-limited-access-to-a-consumers-accounts-on-an-http-service-such-as-facebook-github-or-digitalocean-span\" style=\"position:relative;\"><a href=\"#span-stylecolor-ff4500-identity-broker-service-facilitates-byoi-by-implementing-industry-standard-protocol-oauth2-oauth-open-authentication-2-is-a-framework-that-authorizes-and-enables-applications-to-obtain-limited-access-to-a-consumers-accounts-on-an-http-service-such-as-facebook-github-or-digitalocean-span\" aria-label=\"span stylecolor ff4500 identity broker service facilitates byoi by implementing industry standard protocol oauth2 oauth open authentication 2 is a framework that authorizes and enables applications to obtain limited access to a consumers accounts on an http service such as facebook github or digitalocean span permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a><span style=\"color: #FF4500\"> Identity broker service facilitates BYOI by implementing industry-standard protocol OAUTH2. OAuth (Open Authentication) 2 is a framework that authorizes and enables applications to obtain limited access to a consumer's accounts on an HTTP service such as Facebook, GitHub, or DigitalOcean. </span></h3>\n<h2 id=\"the-loginradius-advantage\" style=\"position:relative;\"><a href=\"#the-loginradius-advantage\" aria-label=\"the loginradius advantage permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>The LoginRadius Advantage</h2>\n<p>If you are the CSO or CIO of your company looking for a platform that acts as an identity broker, the <a href=\"https://www.loginradius.com/\">LoginRadius CIAM platform</a> is the perfect solution that can act as a bridge between multiple identity service providers. </p>\n<p>The possibilities are endless with the LoginRadius platform in how you can set up your login flows to best serve your consumer's needs and meet your business goals. LoginRadius can integrate with any provider, so you can give your consumers the convenience and choice while having an optimized back-end infrastructure to ensure an automated and streamlined experience for your consumers.</p>\n<p><a href=\"https://www.loginradius.com/book-a-demo/\"><span\n      class=\"gatsby-resp-image-wrapper\"\n      style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 768px; \"\n    >\n      <span\n    class=\"gatsby-resp-image-background-image\"\n    style=\"padding-bottom: 30.307692307692307%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAGCAYAAADDl76dAAAACXBIWXMAAAsSAAALEgHS3X78AAABdElEQVQY002RO0/CUBzFG6PtbZWHCAmRmBB5P8vDII9SSC0omog4oAEGjZMO6OKEuLjoJ2Fx0cSBwUQnXZxcHPwux38LJA7nNvfec8+5v1tOCCiwpbbhye2BxbYgBMtgIRVioDRRsARGXxZUzLlEHmehBaesQ4rrEMPViYf2DR9nDGKkChbVICVqsMt1WJI1sHCFwhUsUIFohJH49TxECvRUjhDW2mAbB5iP6hB8hUkhiRPN5KIZYJdrsEYrcCSpmQqMm6/m9ylUhSulY7N5ivROB3L9GOlGF3Ktbc4zuz341UPw/uIk0ESbBjoSGlYIx8BfzjSwVmyCEYEUUmCPa3Bnd+hwC75yC95S05SxbolU/iEbOCFCpDexEfIioTNCNd6Tp6IlMnNuGeeDe3z//OLx5RWj5zFGT2O8fXxh/P4Ja6w6vSEFCnTIlW2YiDzhzX7ATFKojDlvjpBPcDF4QPdyiG5/iE7/BmfXd+hd3VKpCoG8fzxWw2+c+yTpAAAAAElFTkSuQmCC'); background-size: cover; display: block;\"\n  ></span>\n  <img\n        class=\"gatsby-resp-image-image\"\n        alt=\"book-a-demo-loginradius\"\n        title=\"book-a-demo-loginradius\"\n        src=\"/static/fcc4c4b5dc38cc4528f99d09480f4eb2/e5715/book-a-demo-loginradius.png\"\n        srcset=\"/static/fcc4c4b5dc38cc4528f99d09480f4eb2/a6d36/book-a-demo-loginradius.png 650w,\n/static/fcc4c4b5dc38cc4528f99d09480f4eb2/e5715/book-a-demo-loginradius.png 768w,\n/static/fcc4c4b5dc38cc4528f99d09480f4eb2/63ff0/book-a-demo-loginradius.png 2887w\"\n        sizes=\"(max-width: 768px) 100vw, 768px\"\n        style=\"width:100%;height:100%;margin:0;vertical-align:middle;position:absolute;top:0;left:0;\"\n        loading=\"lazy\"\n      />\n    </span></a></p>\n<style class=\"grvsc-styles\">\n  .grvsc-container {\n    overflow: auto;\n    -webkit-overflow-scrolling: touch;\n    padding-top: 1rem;\n    padding-top: var(--grvsc-padding-top, var(--grvsc-padding-v, 1rem));\n    padding-bottom: 1rem;\n    padding-bottom: var(--grvsc-padding-bottom, var(--grvsc-padding-v, 1rem));\n    border-radius: 8px;\n    border-radius: var(--grvsc-border-radius, 8px);\n    font-feature-settings: normal;\n  }\n  \n  .grvsc-code {\n    display: inline-block;\n    min-width: 100%;\n  }\n  \n  .grvsc-line {\n    display: inline-block;\n    box-sizing: border-box;\n    width: 100%;\n    padding-left: 1.5rem;\n    padding-left: var(--grvsc-padding-left, var(--grvsc-padding-h, 1.5rem));\n    padding-right: 1.5rem;\n    padding-right: var(--grvsc-padding-right, var(--grvsc-padding-h, 1.5rem));\n  }\n  \n  .grvsc-line-highlighted {\n    background-color: var(--grvsc-line-highlighted-background-color, transparent);\n    box-shadow: inset var(--grvsc-line-highlighted-border-width, 4px) 0 0 0 var(--grvsc-line-highlighted-border-color, transparent);\n  }\n  \n</style>","frontmatter":{"date":"July 09, 2021","updated_date":null,"description":"The idea of bringing one's own identity has caught the imagination of every digital consumer. By allowing your consumers to log in with an existing set of credentials, you make it easy for them to sign up for an account with you—increasing your overall conversion rate.","title":"The Rise of BYOI (Bring your own Identity)","tags":["security"],"pinned":null,"coverImage":{"childImageSharp":{"fluid":{"aspectRatio":1.7857142857142858,"src":"/static/21da72bd0fe638c759ad35eb963a1557/14b42/bring-your-own-identity-cover.jpg","srcSet":"/static/21da72bd0fe638c759ad35eb963a1557/f836f/bring-your-own-identity-cover.jpg 200w,\n/static/21da72bd0fe638c759ad35eb963a1557/2244e/bring-your-own-identity-cover.jpg 400w,\n/static/21da72bd0fe638c759ad35eb963a1557/14b42/bring-your-own-identity-cover.jpg 800w,\n/static/21da72bd0fe638c759ad35eb963a1557/16310/bring-your-own-identity-cover.jpg 1024w","sizes":"(max-width: 800px) 100vw, 800px"}}},"author":{"id":"Saikiran Babladi","github":null,"avatar":null}}}}]},"markdownRemark":{"excerpt":"Identity is evolving, and developers are at the forefront of this transformation. Every day brings a new learning—adapting to new standards…","fields":{"slug":"/identity/developer-first-identity-provider-loginradius/"},"html":"<p>Identity is evolving, and developers are at the forefront of this transformation. Every day brings a new learning—adapting to new standards and refining approaches to building secure, seamless experiences.</p>\n<p>We’re here to support developers on that journey. We know how important simplicity, efficiency, and well-structured documentation are when working with identity and access management solutions. That’s why we’ve redesigned the <a href=\"https://www.loginradius.com/\">LoginRadius website</a>—to be faster, more intuitive, and developer-first in every way.</p>\n<p>The goal? Having them spend less time searching and more time building.</p>\n<h2 id=\"whats-new-and-improved-on-the-loginradius-website\" style=\"position:relative;\"><a href=\"#whats-new-and-improved-on-the-loginradius-website\" aria-label=\"whats new and improved on the loginradius website permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>What’s New and Improved on the LoginRadius Website?</h2>\n<p>LoginRadius’ vision is to give developers a product that simplifies identity management so they can focus on building, deploying, and scaling their applications. To enhance this experience, we’ve spent the last few months redesigning our interface— making navigation more intuitive and reassuring that essential resources are easily accessible.</p>\n<p>Here’s a closer look at what’s new and why it’s important:</p>\n<h3 id=\"a-developer-friendly-dark-theme\" style=\"position:relative;\"><a href=\"#a-developer-friendly-dark-theme\" aria-label=\"a developer friendly dark theme permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>A Developer-Friendly Dark Theme</h3>\n<p><img src=\"/f46881583c7518a93bb24e94c32320de/a-developer-friendly-dark-theme.webp\" alt=\"This image shows how LoginRadius offers several authentication methods like traditional login, social login, passwordless login, passkeys and more in a dark mode.\">    </p>\n<p>Developers spend long hours working in dark-themed IDEs and terminals, so we’ve designed the LoginRadius experience to be developer-friendly and align with that preference.</p>\n<p>The new dark mode reduces eye strain, enhances readability, and provides a seamless transition between a coding environment and our platform. Our new design features a clean, modern aesthetic with a consistent color scheme and Barlow typography, ensuring better readability. High-quality graphics and icons are thoughtfully placed to enhance the content without adding visual clutter.</p>\n<p>So, whether you’re navigating our API docs or configuring authentication into your system, our improved interface will make those extended development hours more comfortable and efficient.</p>\n<h3 id=\"clear-categorization-for-loginradius-capabilities\" style=\"position:relative;\"><a href=\"#clear-categorization-for-loginradius-capabilities\" aria-label=\"clear categorization for loginradius capabilities permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Clear Categorization for LoginRadius Capabilities</h3>\n<p><img src=\"/e5358b82be414940f3fb146013845933/capabilities.webp\" alt=\"This image shows a breakdown of all the LoginRadius CIAM capabilities, including authentication, security, UX, scalability and multi-brand management.\"></p>\n<p>We’ve restructured our website to provide a straightforward breakdown of our customer identity and access management platform capabilities, helping you quickly find what you need:</p>\n<ul>\n<li>Authentication: Easily understand <a href=\"https://www.loginradius.com/blog/identity/authentication-option-for-your-product/\">how to choose the right login method</a>, from traditional passwords and OTPs to social login, federated SSO, and passkeys with few lines of code.</li>\n<li>Security: Implement no-code security features like bot detection, IP throttling, breached password alerts, DDoS protection, and adaptive MFA to safeguard user accounts.</li>\n<li>User Experience: Leverage AI builder, hosted pages, and drag-and-drop workflows to create smooth, branded sign-up and login experiences.</li>\n<li>High Performance &#x26; Scalability: Confidently scale with sub-100ms API response times, 100% uptime, 240K+ RPS, and 28+ global data center regions.</li>\n<li>Multi-Brand Management: Efficiently manage multiple identity apps, choosing isolated or shared data stores based on your brand’s unique needs.</li>\n</ul>\n<p>This structured layout ensures you can quickly understand each capability and how it integrates into your identity ecosystem.</p>\n<h3 id=\"developer-first-navigation\" style=\"position:relative;\"><a href=\"#developer-first-navigation\" aria-label=\"developer first navigation permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Developer-First Navigation</h3>\n<p><img src=\"/a8c155c2b6faf3d5f4b4de4e2b14d763/developers-menu.webp\" alt=\"This image shows the LoginRadius menu bar, highlighting the developer dropdown.\">   </p>\n<p>We’ve been analyzing developer workflows to identify how you access key resources. That’s why we redesigned our navigation with one goal in mind: to reduce clicks and make essential resources readily available.</p>\n<p>The new LoginRadius structure puts APIs, SDKs, and integration guides right at the menu bar under the Developers dropdown so you can get started faster. Our Products, Solutions, and Customer Services are also clearly categorized, helping development teams quickly find the right tools and make informed decisions.</p>\n<h3 id=\"quick-understanding-of-integration-benefits\" style=\"position:relative;\"><a href=\"#quick-understanding-of-integration-benefits\" aria-label=\"quick understanding of integration benefits permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Quick Understanding of Integration Benefits</h3>\n<p><img src=\"/b2f9a964a2da0ea83e2f8596b833bba7/we-support-your-tech-stack.webp\" alt=\"This image shows a list of popular programming languages and frameworks offered by LoginRadius.\"></p>\n<p>Developers now have a clear view of the tech stack available with LoginRadius, designed to support diverse business needs.</p>\n<p>Our platform offers pre-built SDKs for Node.js, Python, Java, and more, making CIAM integration seamless across popular programming languages and frameworks.</p>\n<h2 id=\"over-to-you-now\" style=\"position:relative;\"><a href=\"#over-to-you-now\" aria-label=\"over to you now permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Over to You Now!</h2>\n<p>Check out our <a href=\"https://www.loginradius.com/\">revamped LoginRadius website</a> and see how the improved experience makes it easier to build, scale, and secure your applications.</p>\n<p>Do not forget to explore the improved navigation and API documentation, and get started with our free trial today. We’re excited to see what you’ll build with LoginRadius!</p>\n<style class=\"grvsc-styles\">\n  .grvsc-container {\n    overflow: auto;\n    -webkit-overflow-scrolling: touch;\n    padding-top: 1rem;\n    padding-top: var(--grvsc-padding-top, var(--grvsc-padding-v, 1rem));\n    padding-bottom: 1rem;\n    padding-bottom: var(--grvsc-padding-bottom, var(--grvsc-padding-v, 1rem));\n    border-radius: 8px;\n    border-radius: var(--grvsc-border-radius, 8px);\n    font-feature-settings: normal;\n  }\n  \n  .grvsc-code {\n    display: inline-block;\n    min-width: 100%;\n  }\n  \n  .grvsc-line {\n    display: inline-block;\n    box-sizing: border-box;\n    width: 100%;\n    padding-left: 1.5rem;\n    padding-left: var(--grvsc-padding-left, var(--grvsc-padding-h, 1.5rem));\n    padding-right: 1.5rem;\n    padding-right: var(--grvsc-padding-right, var(--grvsc-padding-h, 1.5rem));\n  }\n  \n  .grvsc-line-highlighted {\n    background-color: var(--grvsc-line-highlighted-background-color, transparent);\n    box-shadow: inset var(--grvsc-line-highlighted-border-width, 4px) 0 0 0 var(--grvsc-line-highlighted-border-color, transparent);\n  }\n  \n</style>","frontmatter":{"date":"February 21, 2025","updated_date":null,"description":"LoginRadius’ vision is to give developers a product that simplifies identity management so they can focus on building, deploying, and scaling their applications. To enhance this experience, we’ve redesigned our website interface, making navigation more intuitive and reassuring that essential resources are easily accessible.","title":"Revamped & Ready: Introducing the New Developer-First LoginRadius Website","tags":["Developer tools","API","Identity Management","User Authentication"],"pinned":true,"coverImage":{"childImageSharp":{"fluid":{"aspectRatio":1.7857142857142858,"src":"/static/80b4e4fbe176a10a327d273504607f32/58556/hero-section.webp","srcSet":"/static/80b4e4fbe176a10a327d273504607f32/61e93/hero-section.webp 200w,\n/static/80b4e4fbe176a10a327d273504607f32/1f5c5/hero-section.webp 400w,\n/static/80b4e4fbe176a10a327d273504607f32/58556/hero-section.webp 800w,\n/static/80b4e4fbe176a10a327d273504607f32/99238/hero-section.webp 1200w,\n/static/80b4e4fbe176a10a327d273504607f32/7c22d/hero-section.webp 1600w,\n/static/80b4e4fbe176a10a327d273504607f32/1258b/hero-section.webp 2732w","sizes":"(max-width: 800px) 100vw, 800px"}}},"author":{"id":"Rakesh Soni","github":"oyesoni","avatar":"rakesh-soni.jpg"}}}},"pageContext":{"limit":6,"skip":432,"currentPage":73,"type":"///","numPages":161,"pinned":"ee8a4479-3471-53b1-bf62-d0d8dc3faaeb"}},"staticQueryHashes":["1171199041","1384082988","2100481360","23180105","528864852"]}