{"componentChunkName":"component---src-templates-blog-list-template-js","path":"/104","result":{"data":{"allMarkdownRemark":{"edges":[{"node":{"excerpt":"This blog will help you get started on deploying your REST API in Kubernetes. First, we'll set up a local Kubernetes cluster, then create a…","fields":{"slug":"/engineering/rest-api-kubernetes/"},"html":"<p>This blog will help you get started on deploying your REST API in Kubernetes. First, we'll set up a local Kubernetes cluster, then create a <a href=\"https://www.loginradius.com/blog/engineering/what-is-an-api/\">simple API</a> to deploy.</p>\n<p>There are already a lot of <a href=\"https://www.quora.com/What-are-the-best-resources-to-learn-Kubernetes\">free resources available</a> explaining basic Kubernetes concepts, so go check those out first if you haven't already. This blog is intended for beginners but assumes you already have a <a href=\"https://www.loginradius.com/blog/engineering/understanding-kubernetes/\">basic understanding of Kubernetes</a> and Docker concepts.</p>\n<h2 id=\"1-set-up-local-kubernetes\" style=\"position:relative;\"><a href=\"#1-set-up-local-kubernetes\" aria-label=\"1 set up local kubernetes 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. Set Up Local Kubernetes</h2>\n<p>There's a couple options for running Kubernetes locally, with the most popular ones including <a href=\"https://github.com/kubernetes/minikube\">minikube</a>, <a href=\"https://github.com/k3s-io/k3s\">k3s</a>, <a href=\"https://github.com/kubernetes-sigs/kind\">kind</a>, <a href=\"https://github.com/ubuntu/microk8s\">microk8s</a>. In this guide, any of these will work, but we will be using k3s because of the lightweight installation.</p>\n<p>Install <a href=\"https://github.com/rancher/k3d\">k3d</a>, which is a utility for running k3s. k3s will be running in Docker, so make sure you have that installed as well. We used k3d v4.0 in this blog.</p>\n<pre class=\"grvsc-container dark-default-dark\" data-language=\"\" data-index=\"0\"><code class=\"grvsc-code\"><span class=\"grvsc-line\">curl -s https://raw.githubusercontent.com/rancher/k3d/main/install.sh | bash</span></code></pre>\n<p>Set up a cluster named test:</p>\n<ul>\n<li>The port flag is for mapping port 80 from our machine to port 80 on the k3s load balancer. This is needed later when we use ingress.</li>\n</ul>\n<pre class=\"grvsc-container dark-default-dark\" data-language=\"\" data-index=\"1\"><code class=\"grvsc-code\"><span class=\"grvsc-line\">k3d cluster create test -p &quot;80:80@loadbalancer&quot;</span></code></pre>\n<p>Optionally, check that your kubeconfig got updated and the current context is correct:</p>\n<pre class=\"grvsc-container dark-default-dark\" data-language=\"\" data-index=\"2\"><code class=\"grvsc-code\"><span class=\"grvsc-line\">kubectl config view</span>\n<span class=\"grvsc-line\">kubectl config current-context</span></code></pre>\n<p>Optionally, confirm that k3s is running in Docker. There should be two containers up, one for k3s and the other for load balancing:</p>\n<pre class=\"grvsc-container dark-default-dark\" data-language=\"\" data-index=\"3\"><code class=\"grvsc-code\"><span class=\"grvsc-line\">docker ps</span></code></pre>\n<p>Make sure that all the pods are running. If they are stuck in pending status, it may be that there is not enough disk space on your machine. You can get more information by using the describe command:</p>\n<pre class=\"grvsc-container dark-default-dark\" data-language=\"\" data-index=\"4\"><code class=\"grvsc-code\"><span class=\"grvsc-line\">kubectl get pods -A</span>\n<span class=\"grvsc-line\">kubectl describe pods -A</span></code></pre>\n<p>There's a lot of kubectl commands you can try, so I recommend checking out the list of resources and being aware of their short names:</p>\n<pre class=\"grvsc-container dark-default-dark\" data-language=\"\" data-index=\"5\"><code class=\"grvsc-code\"><span class=\"grvsc-line\">kubectl api-resources</span></code></pre>\n<h2 id=\"2-create-a-simple-api\" style=\"position:relative;\"><a href=\"#2-create-a-simple-api\" aria-label=\"2 create a simple api 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. Create a Simple API</h2>\n<p>We will create a simple API using Express.js.</p>\n<p>Set up the project:</p>\n<pre class=\"grvsc-container dark-default-dark\" data-language=\"\" data-index=\"6\"><code class=\"grvsc-code\"><span class=\"grvsc-line\">mkdir my-backend-api && cd my-backend-api</span>\n<span class=\"grvsc-line\">touch server.js</span>\n<span class=\"grvsc-line\">npm init</span>\n<span class=\"grvsc-line\">npm i express --save</span></code></pre>\n<pre class=\"grvsc-container dark-default-dark\" data-language=\"\" data-index=\"7\"><code class=\"grvsc-code\"><span class=\"grvsc-line\">// server.js</span>\n<span class=\"grvsc-line\">const express = require(&quot;express&quot;);</span>\n<span class=\"grvsc-line\">const app = express();</span>\n<span class=\"grvsc-line\"></span>\n<span class=\"grvsc-line\">app.get(&quot;/user/:id&quot;, (req, res) =&gt; {</span>\n<span class=\"grvsc-line\">  const id = req.params.id;</span>\n<span class=\"grvsc-line\">  res.json({</span>\n<span class=\"grvsc-line\">    id,</span>\n<span class=\"grvsc-line\">    name: `John Doe #${id}`</span>\n<span class=\"grvsc-line\">  });</span>\n<span class=\"grvsc-line\">});</span>\n<span class=\"grvsc-line\"></span>\n<span class=\"grvsc-line\">app.listen(80, () =&gt; {</span>\n<span class=\"grvsc-line\">  console.log(&quot;Server running on port 80&quot;);</span>\n<span class=\"grvsc-line\">});</span></code></pre>\n<p>Optionally, you can try running it if you have Node.js installed and test the endpoint /user/{id} with curl:</p>\n<pre class=\"grvsc-container dark-default-dark\" data-language=\"\" data-index=\"8\"><code class=\"grvsc-code\"><span class=\"grvsc-line\">node server.js</span>\n<span class=\"grvsc-line\"></span>\n<span class=\"grvsc-line\">// request:</span>\n<span class=\"grvsc-line\">curl http://localhost:80/user/123</span>\n<span class=\"grvsc-line\"></span>\n<span class=\"grvsc-line\">// response: {&quot;id&quot;:&quot;123&quot;,&quot;name&quot;:&quot;John Doe #123&quot;}</span></code></pre>\n<p>Next, add a Dockerfile and .dockerignore:</p>\n<pre class=\"grvsc-container dark-default-dark\" data-language=\"\" data-index=\"9\"><code class=\"grvsc-code\"><span class=\"grvsc-line\">// Dockerfile</span>\n<span class=\"grvsc-line\">FROM node:12</span>\n<span class=\"grvsc-line\"></span>\n<span class=\"grvsc-line\">WORKDIR /usr/src/app</span>\n<span class=\"grvsc-line\">COPY package*.json ./</span>\n<span class=\"grvsc-line\">RUN npm i</span>\n<span class=\"grvsc-line\">COPY . .</span>\n<span class=\"grvsc-line\"></span>\n<span class=\"grvsc-line\">EXPOSE 80</span>\n<span class=\"grvsc-line\">CMD [&quot;node&quot;, &quot;server.js&quot;]</span></code></pre>\n<pre class=\"grvsc-container dark-default-dark\" data-language=\"\" data-index=\"10\"><code class=\"grvsc-code\"><span class=\"grvsc-line\">// .dockerignore</span>\n<span class=\"grvsc-line\">node_modules</span></code></pre>\n<p>Then, build the image and push it to the Docker Hub registry:</p>\n<ul>\n<li>If you want to skip this step, you can use the existing image <a href=\"https://hub.docker.com/r/andyy5/my-backend-api\">here</a>.</li>\n</ul>\n<pre class=\"grvsc-container dark-default-dark\" data-language=\"\" data-index=\"11\"><code class=\"grvsc-code\"><span class=\"grvsc-line\">docker build -t &lt;YOUR_DOCKER_ID&gt;/my-backend-api .</span>\n<span class=\"grvsc-line\">docker push &lt;YOUR_DOCKER_ID&gt;/my-backend-api</span></code></pre>\n<h2 id=\"3-deploy\" style=\"position:relative;\"><a href=\"#3-deploy\" aria-label=\"3 deploy 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>3. Deploy</h2>\n<p>Now, we deploy the image to our local Kubernetes cluster. We use the default namespace.</p>\n<p>Create a deployment:</p>\n<pre class=\"grvsc-container dark-default-dark\" data-language=\"\" data-index=\"12\"><code class=\"grvsc-code\"><span class=\"grvsc-line\">kubectl create deploy my-backend-api --image=andyy5/my-backend-api</span></code></pre>\n<ul>\n<li>Alternatively, create a deployment with a YAML file:</li>\n</ul>\n<pre class=\"grvsc-container dark-default-dark\" data-language=\"\" data-index=\"13\"><code class=\"grvsc-code\"><span class=\"grvsc-line\">kubectl create -f deployment.yaml</span></code></pre>\n<pre class=\"grvsc-container dark-default-dark\" data-language=\"\" data-index=\"14\"><code class=\"grvsc-code\"><span class=\"grvsc-line\">// deployment.yaml</span>\n<span class=\"grvsc-line\">apiVersion: apps/v1</span>\n<span class=\"grvsc-line\">kind: Deployment</span>\n<span class=\"grvsc-line\">metadata:</span>\n<span class=\"grvsc-line\">  name: my-backend-api</span>\n<span class=\"grvsc-line\">  labels:</span>\n<span class=\"grvsc-line\">    app: my-backend-api</span>\n<span class=\"grvsc-line\">spec:</span>\n<span class=\"grvsc-line\">  replicas: 1</span>\n<span class=\"grvsc-line\">  selector:</span>\n<span class=\"grvsc-line\">    matchLabels:</span>\n<span class=\"grvsc-line\">      app: my-backend-api</span>\n<span class=\"grvsc-line\">  template:</span>\n<span class=\"grvsc-line\">    metadata:</span>\n<span class=\"grvsc-line\">      labels:</span>\n<span class=\"grvsc-line\">        app: my-backend-api</span>\n<span class=\"grvsc-line\">    spec:</span>\n<span class=\"grvsc-line\">      containers:</span>\n<span class=\"grvsc-line\">      - name: my-backend-api</span>\n<span class=\"grvsc-line\">        image: andyy5/my-backend-api</span></code></pre>\n<p>Create a service:</p>\n<pre class=\"grvsc-container dark-default-dark\" data-language=\"\" data-index=\"15\"><code class=\"grvsc-code\"><span class=\"grvsc-line\">kubectl expose deploy my-backend-api --type=ClusterIP --port=80</span></code></pre>\n<ul>\n<li>Alternatively, create a service with a YAML file:</li>\n</ul>\n<pre class=\"grvsc-container dark-default-dark\" data-language=\"\" data-index=\"16\"><code class=\"grvsc-code\"><span class=\"grvsc-line\">kubectl create -f service.yaml</span></code></pre>\n<pre class=\"grvsc-container dark-default-dark\" data-language=\"\" data-index=\"17\"><code class=\"grvsc-code\"><span class=\"grvsc-line\">// service.yaml</span>\n<span class=\"grvsc-line\">apiVersion: v1</span>\n<span class=\"grvsc-line\">kind: Service</span>\n<span class=\"grvsc-line\">metadata:</span>\n<span class=\"grvsc-line\">  name: my-backend-api</span>\n<span class=\"grvsc-line\">  labels:</span>\n<span class=\"grvsc-line\">    app: my-backend-api</span>\n<span class=\"grvsc-line\">spec:</span>\n<span class=\"grvsc-line\">  type: ClusterIP</span>\n<span class=\"grvsc-line\">  ports:</span>\n<span class=\"grvsc-line\">  - port: 80</span>\n<span class=\"grvsc-line\">    protocol: TCP</span>\n<span class=\"grvsc-line\">    targetPort: 80</span>\n<span class=\"grvsc-line\">  selector:</span>\n<span class=\"grvsc-line\">    app: my-backend-api</span></code></pre>\n<p>Check that everything was created and the pod is running:</p>\n<pre class=\"grvsc-container dark-default-dark\" data-language=\"\" data-index=\"18\"><code class=\"grvsc-code\"><span class=\"grvsc-line\">kubectl get deploy -A</span>\n<span class=\"grvsc-line\">kubectl get svc -A</span>\n<span class=\"grvsc-line\">kubectl get pods -A</span></code></pre>\n<p>Once the pod is running, the API is accessible within the cluster only. One quick way to verify the deployment from our localhost is by doing port forwarding:</p>\n<ul>\n<li>Replace the pod name below with the one in your cluster</li>\n</ul>\n<pre class=\"grvsc-container dark-default-dark\" data-language=\"\" data-index=\"19\"><code class=\"grvsc-code\"><span class=\"grvsc-line\">kubectl port-forward my-backend-api-84bb9d79fc-m9ddn 3000:80</span></code></pre>\n<ul>\n<li>Now, you can send a curl request from your machine</li>\n</ul>\n<pre class=\"grvsc-container dark-default-dark\" data-language=\"\" data-index=\"20\"><code class=\"grvsc-code\"><span class=\"grvsc-line\">curl http://localhost:3000/user/123</span></code></pre>\n<p>To correctly manage external access to the services in a cluster, we need to use ingress. Close the port-forwarding and let's expose our API by creating an ingress resource.</p>\n<ul>\n<li>An ingress controller is also required, but k3d by default deploys the cluster with a Traefik ingress controller (listening on port 80).</li>\n<li>Recall that when we created our cluster, we set a port flag with the value \"80:80@loadbalancer\". If you missed this part, go back and create your cluster again.</li>\n</ul>\n<p>Create an Ingress resource with the following YAML file:</p>\n<pre class=\"grvsc-container dark-default-dark\" data-language=\"\" data-index=\"21\"><code class=\"grvsc-code\"><span class=\"grvsc-line\">kubectl create -f ingress.yaml</span>\n<span class=\"grvsc-line\">kubectl get ing -A</span></code></pre>\n<pre class=\"grvsc-container dark-default-dark\" data-language=\"\" data-index=\"22\"><code class=\"grvsc-code\"><span class=\"grvsc-line\">// ingress.yaml</span>\n<span class=\"grvsc-line\">apiVersion: networking.k8s.io/v1</span>\n<span class=\"grvsc-line\">kind: Ingress</span>\n<span class=\"grvsc-line\">metadata:</span>\n<span class=\"grvsc-line\">  name: my-backend-api</span>\n<span class=\"grvsc-line\">  annotations:</span>\n<span class=\"grvsc-line\">    ingress.kubernetes.io/ssl-redirect: &quot;false&quot;</span>\n<span class=\"grvsc-line\">spec:</span>\n<span class=\"grvsc-line\">  rules:</span>\n<span class=\"grvsc-line\">  - http:</span>\n<span class=\"grvsc-line\">      paths:</span>\n<span class=\"grvsc-line\">      - path: /user/</span>\n<span class=\"grvsc-line\">        pathType: Prefix</span>\n<span class=\"grvsc-line\">        backend:</span>\n<span class=\"grvsc-line\">          service:</span>\n<span class=\"grvsc-line\">            name: my-backend-api</span>\n<span class=\"grvsc-line\">            port:</span>\n<span class=\"grvsc-line\">              number: 80</span></code></pre>\n<ul>\n<li>Now try it out!</li>\n</ul>\n<pre class=\"grvsc-container dark-default-dark\" data-language=\"\" data-index=\"23\"><code class=\"grvsc-code\"><span class=\"grvsc-line\">curl http://localhost:80/user/123</span></code></pre>\n<p>If you want to learn more on how to deploy using a managed Kubernetes service in the cloud, such as Google Kubernetes Engine, then check out the excellent guides on the <a href=\"https://kubernetes.io/docs/tutorials/stateless-application/expose-external-ip-address/\">official Kubernetes docs</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</style>","frontmatter":{"date":"February 03, 2021","updated_date":null,"description":"Beginner guide on how to create and deploy a REST API in local Kubernetes.","title":"How to Deploy a REST API in Kubernetes","tags":["Kubernetes"],"pinned":null,"coverImage":{"childImageSharp":{"fluid":{"aspectRatio":1.492537313432836,"src":"/static/3e013df11f99b320029a3e4aadafc0ea/58556/cover.webp","srcSet":"/static/3e013df11f99b320029a3e4aadafc0ea/61e93/cover.webp 200w,\n/static/3e013df11f99b320029a3e4aadafc0ea/1f5c5/cover.webp 400w,\n/static/3e013df11f99b320029a3e4aadafc0ea/58556/cover.webp 800w,\n/static/3e013df11f99b320029a3e4aadafc0ea/99238/cover.webp 1200w","sizes":"(max-width: 800px) 100vw, 800px"}}},"author":{"id":"Andy Yeung","github":null,"avatar":null}}}},{"node":{"excerpt":"E-commerce business is growing day by day as it saves time and cost for people traveling to meet or perform businesses in person. More…","fields":{"slug":"/engineering/electronic-identity-integration/"},"html":"<p>E-commerce business is growing day by day as it saves time and cost for people traveling to meet or perform businesses in person. More people are conducting business online by creating accounts using email or phone verification. This has posed a challenge for everyone to identify the persons who we are claiming online. Online hackers have used false Identity to deceive or defraud someone else. Hence, Electronic Identity ( eID) provides a way for businesses to verify a person's identity online and reduce the chances of Identity Fraud.</p>\n<h2 id=\"what-is-an-electronic-identity\" style=\"position:relative;\"><a href=\"#what-is-an-electronic-identity\" aria-label=\"what is an electronic identity 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 an electronic identity?</h2>\n<p>Electronic identity is an electronic card or device with a unique identity number issued by either a government agency or some banks. A consumer needs to go to the government agency or some banks and show valid identity documents. After the document verification, an Electronic Identity is issued to the consumer. Examples of e-IDs are Danish NemID, Swedish BankID, and Dutch DigiD.</p>\n<p>Most service providers such as financial institutions and insurance firms provide services online and are recognizing an opportunity in implementing eID due to strict Know Your Customer (KYC) and Anti-Money Laundering (AML) requirements.</p>\n<p>eIDs are used to authenticate consumers online across multiple platforms and services. eIDs also allow the consumers to sign documents online, and the companies can trust the signature as the electronic identity is issued by the government or banks based on physical identity documents. This is fast, convenient, and secure for the consumers as they are saved from completing registration forms for multiple services. Hence, this increases the conversion for the businesses. </p>\n<h2 id=\"integrating-eid-authentication-with-loginradius\" style=\"position:relative;\"><a href=\"#integrating-eid-authentication-with-loginradius\" aria-label=\"integrating eid authentication 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>Integrating eID authentication with LoginRadius</h2>\n<p>LoginRadius supports all the major industry federated SSO methods. Hence, you can integrate eID authentication with LoginRadius using some third application like Criipto, which supports the industry-standard SSO methods. Criipto allows the integration of an eID with the LoginRadius application using JWT SSO Login flow.  Jason Web Token ( JWT) is a signed token that transfers the information from one service to another securely. </p>\n<h3 id=\"prerequisite\" style=\"position:relative;\"><a href=\"#prerequisite\" aria-label=\"prerequisite 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>Prerequisite</h3>\n<ul>\n<li>A Criipto account ( you can create a free trial account )</li>\n<li>A LoginRadius application </li>\n<li>One of the desired electronic ID</li>\n</ul>\n<h3 id=\"register-your-loginradius-app-in-your-criipto-account\" style=\"position:relative;\"><a href=\"#register-your-loginradius-app-in-your-criipto-account\" aria-label=\"register your loginradius app in your criipto account 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>Register your LoginRadius app in your Criipto account</h3>\n<hr>\n<p>Please see the following steps to register your LoginRadius app in your Criipto account.</p>\n<ol>\n<li>Login in to your <a href=\"https://manage.criipto.id/login\">Criipto account</a>.</li>\n<li>Click + sign to add an application under the Applications tab.</li>\n<li>\n<p>Add the following information:\n<img src=\"/3791e451e2ca605de23570e590ae2e39/criipto-config1.webp\" alt=\"criipto config\"></p>\n<ul>\n<li>Name: Enter a name to identify your app in the Criipto.</li>\n<li>Domain: choose an available domain</li>\n<li>Callback URLs: Enter https://<LR appname>.hub.loginradius.com/access/jwt\n<img src=\"/d7a33776d082102bdca579cd9b35966f/criipto-config2.webp\" alt=\"criipto config\"></li>\n<li>Enable the desired eIDs</li>\n<li>Enable the <strong>Enable OAuth2 Code Flow</strong> under <strong>OpenID Connect</strong></li>\n<li>Click the Re-generate client secret button to generate a client secret. </li>\n<li>Select <strong>SignedJwt</strong> under <strong>User info response strategy</strong> </li>\n<li>Select <strong>compact</strong> under <strong>JWT property format</strong></li>\n<li>Enter the desired token time in <strong>Token lifetime</strong> under <strong>Advanced Options</strong>.</li>\n</ul>\n</li>\n<li>Click the <strong>save</strong> button.</li>\n</ol>\n<h3 id=\"configure-the-criipto-settings-in-the-loginradius\" style=\"position:relative;\"><a href=\"#configure-the-criipto-settings-in-the-loginradius\" aria-label=\"configure the criipto settings in the 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>Configure the Criipto settings in the LoginRadius</h3>\n<ol>\n<li>Login into the <a href=\"https://adminconsole.loginradius.com/\">Admin Console</a></li>\n<li>Navigate to Platform Configuration>Authentication Configuration>Custom IDPs>JWT Provider\n<img src=\"/08f84d337d1d3fc37302043e1e940987/LR-JWT-Config1.webp\" alt=\"JWT config\"></li>\n<li>Click <strong>+ Add A New Provider</strong> button highlighted on the above screen, and the following JWT configuration form fields will appear:\n<img src=\"/b49eb762379da71ae766c76ec1a26497/LR-JWT-Config2.webp\" alt=\"JWT config\"></li>\n<li>\n<p>Complete the following details in the JWT provider</p>\n<ul>\n<li>Enter a unique name under the <strong>Provider Name</strong>. This name will be displayed under the social login forms in the LoginRadius IDX page and on the social login form rendered by LoginRadius V2.js library on your application if the Include In Social Schema is selected while configuring the JWT app.</li>\n<li>Select RS256 under the JWT signing <strong>Algorithm</strong> used by your application ( the selected algorithm is used in encrypting your consumers' information in the JWT).</li>\n<li>Enter the JWT secret or certificate (depending on the chosen algorithm) in the <strong>Key</strong> text box.</li>\n<li>Clock Skew(Optional): Enter 0</li>\n<li>Expiration Time Difference (Optional): Enter 0</li>\n<li>Token Query Parameter Name (Optional): Enter id_token</li>\n<li>\n<p>Data Mapping:</p>\n<ul>\n<li>Select Field(Dropdown): Select the LoginRadius field ID field</li>\n<li>Profile Key: Enter the user identifier field name from the JWT ( please see <a href=\"https://docs.criipto.com/getting-started/token-contents/\">Token contents</a> for the JWT payload returned by an eID)</li>\n</ul>\n</li>\n<li>Enable Include In Social Schema</li>\n</ul>\n</li>\n<li>Click the <strong>Add</strong> button </li>\n</ol>\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":"January 29, 2021","updated_date":null,"description":"An electronic identity is an electronic card or device with a unique identity number issued by either a government agency or some banks.LoginRadius supports all the major industry federated SSO methods. Hence, you can integrate eID authentication with LoginRadius using some third application like Criipto, which supports the industry-standard SSO methods.","title":"Integration with electronic identity (eID) ","tags":["Electronic Identity","Bank ID","Criipto","LoginRadius"],"pinned":null,"coverImage":{"childImageSharp":{"fluid":{"aspectRatio":1.5037593984962405,"src":"/static/b916d567b9e41b342cccd7613d625bf6/8829b/Integration_with_eID.webp","srcSet":"/static/b916d567b9e41b342cccd7613d625bf6/61e93/Integration_with_eID.webp 200w,\n/static/b916d567b9e41b342cccd7613d625bf6/1f5c5/Integration_with_eID.webp 400w,\n/static/b916d567b9e41b342cccd7613d625bf6/8829b/Integration_with_eID.webp 680w","sizes":"(max-width: 680px) 100vw, 680px"}}},"author":{"id":"Jitender Agarwal","github":null,"avatar":null}}}},{"node":{"excerpt":"In C#, We have majorly two types of data types Value and Reference type. We can not assign a null value directly to the Value data type. In…","fields":{"slug":"/engineering/nullable-csharp/"},"html":"<p>\nIn C#, We have majorly two types of data types <em>Value</em> and <em>Reference</em> type. We can not assign a null value directly to the Value data type. In this case, C# 2.0 provides us the Nullable types to assign a value data type to null. </p>\n<h2 id=\"what-is-nullable-types\" style=\"position:relative;\"><a href=\"#what-is-nullable-types\" aria-label=\"what is nullable types 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 Nullable types?</h2>\n<p>As described above, The Nullable types used to assign the null value to the value data type. That means we can assign a null value directly to a variable of the value data type. We can declare null value using <code>Nullable&#x3C;T></code> where <code>T</code> is a type like an int, float, bool, etc.</p>\n<p>Nullable types represent the Null value as well the actual range of that data type. Like the <strong>int</strong> data type can hold the value from <code>-2147483648</code> to <code>2147483647</code> but a <strong>Nullable int</strong> can hold the value <code>null</code> and range from <code>-2147483648</code> to <code>2147483647</code></p>\n<h2 id=\"how-to-declare-nullable-types\" style=\"position:relative;\"><a href=\"#how-to-declare-nullable-types\" aria-label=\"how to declare nullable types 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 declare Nullable types</h2>\n<p>There are two ways to declare Nullable types.</p>\n<pre class=\"grvsc-container dark-default-dark\" data-language=\"c#\" data-index=\"0\"><code class=\"grvsc-code\"><span class=\"grvsc-line\"><span class=\"mtk10\">Nullable</span><span class=\"mtk1\">&lt;</span><span class=\"mtk4\">int</span><span class=\"mtk1\">&gt; </span><span class=\"mtk12\">example</span><span class=\"mtk1\">;</span></span></code></pre>\n<p>OR</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\">int</span><span class=\"mtk1\">? </span><span class=\"mtk12\">Example</span><span class=\"mtk1\">;</span></span></code></pre>\n<h2 id=\"properties-of-nullable-types\" style=\"position:relative;\"><a href=\"#properties-of-nullable-types\" aria-label=\"properties of nullable types 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>Properties of Nullable types</h2>\n<p>Nullable types have two properties.</p>\n<ol>\n<li>HasValue</li>\n<li>Value</li>\n</ol>\n<p><strong>HasValue</strong>: This property returns a bool value based on that if the Nullable variable has some value or not. If the variable has some value, then it will return true; otherwise, it will return false if it doesn’t have value or it’s null.</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=\"mtk10\">Nullable</span><span class=\"mtk1\">&lt;</span><span class=\"mtk4\">int</span><span class=\"mtk1\">&gt; </span><span class=\"mtk12\">a</span><span class=\"mtk1\"> = </span><span class=\"mtk4\">null</span><span class=\"mtk1\">;</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk12\">Console</span><span class=\"mtk1\">.</span><span class=\"mtk11\">WriteLine</span><span class=\"mtk1\">(</span><span class=\"mtk12\">a</span><span class=\"mtk1\">.</span><span class=\"mtk12\">HasValue</span><span class=\"mtk1\">); </span><span class=\"mtk3\">// Print False</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk10\">Nullable</span><span class=\"mtk1\">&lt;</span><span class=\"mtk4\">int</span><span class=\"mtk1\">&gt; </span><span class=\"mtk12\">b</span><span class=\"mtk1\"> = </span><span class=\"mtk7\">9</span><span class=\"mtk1\">;</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk12\">Console</span><span class=\"mtk1\">.</span><span class=\"mtk11\">WriteLine</span><span class=\"mtk1\">(</span><span class=\"mtk12\">b</span><span class=\"mtk1\">.</span><span class=\"mtk12\">HasValue</span><span class=\"mtk1\">); </span><span class=\"mtk3\">// Print True</span></span></code></pre>\n<p><strong>Value</strong>: This property gives the value of the Nullable type variable. If the variable has some value, it will return the value; else, it will give the runtime <code>InvalidOperationException</code> <a href=\"https://www.loginradius.com/blog/engineering/exception-handling-in-csharp/\">exception when the variable</a> value is null.</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=\"mtk10\">Nullable</span><span class=\"mtk1\">&lt;</span><span class=\"mtk4\">int</span><span class=\"mtk1\">&gt; </span><span class=\"mtk12\">a</span><span class=\"mtk1\"> = </span><span class=\"mtk4\">null</span><span class=\"mtk1\">;</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk12\">Console</span><span class=\"mtk1\">.</span><span class=\"mtk11\">WriteLine</span><span class=\"mtk1\">(</span><span class=\"mtk12\">a</span><span class=\"mtk1\">.</span><span class=\"mtk12\">Value</span><span class=\"mtk1\">); </span><span class=\"mtk3\">// Gives run time exception of type &#39;InvalidOperationException&#39;</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\">Nullable</span><span class=\"mtk1\">&lt;</span><span class=\"mtk4\">int</span><span class=\"mtk1\">&gt; </span><span class=\"mtk12\">b</span><span class=\"mtk1\"> = </span><span class=\"mtk7\">9</span><span class=\"mtk1\">;</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk12\">Console</span><span class=\"mtk1\">.</span><span class=\"mtk11\">WriteLine</span><span class=\"mtk1\">(</span><span class=\"mtk12\">b</span><span class=\"mtk1\">.</span><span class=\"mtk12\">Value</span><span class=\"mtk1\">); </span><span class=\"mtk3\">// Print 9</span></span></code></pre>\n<h2 id=\"method-of-nullable-types\" style=\"position:relative;\"><a href=\"#method-of-nullable-types\" aria-label=\"method of nullable types 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>Method of Nullable types</h2>\n<p><strong>GetValueOrDefault()</strong>: This method returns the actually assigned value of the Nullable type variable if the value is not null, and if the variable value is null, then it will give the default value of that data type. Here is the example code</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=\"mtk10\">Nullable</span><span class=\"mtk1\">&lt;</span><span class=\"mtk4\">int</span><span class=\"mtk1\">&gt; </span><span class=\"mtk12\">a</span><span class=\"mtk1\"> = </span><span class=\"mtk7\">9</span><span class=\"mtk1\">;</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk12\">Console</span><span class=\"mtk1\">.</span><span class=\"mtk11\">WriteLine</span><span class=\"mtk1\">(</span><span class=\"mtk12\">a</span><span class=\"mtk1\">.</span><span class=\"mtk11\">GetValueOrDefault</span><span class=\"mtk1\">()); </span><span class=\"mtk3\">// Returns 9</span></span></code></pre>\n<pre class=\"grvsc-container dark-default-dark\" data-language=\"c#\" data-index=\"6\"><code class=\"grvsc-code\"><span class=\"grvsc-line\"><span class=\"mtk10\">Nullable</span><span class=\"mtk1\">&lt;</span><span class=\"mtk4\">int</span><span class=\"mtk1\">&gt; </span><span class=\"mtk12\">a</span><span class=\"mtk1\"> = </span><span class=\"mtk4\">null</span><span class=\"mtk1\">;</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk12\">Console</span><span class=\"mtk1\">.</span><span class=\"mtk11\">WriteLine</span><span class=\"mtk1\">(</span><span class=\"mtk12\">a</span><span class=\"mtk1\">.</span><span class=\"mtk11\">GetValueOrDefault</span><span class=\"mtk1\">()); </span><span class=\"mtk3\">// Returns 0</span></span></code></pre>\n<h2 id=\"rules-of-using-nullable-types\" style=\"position:relative;\"><a href=\"#rules-of-using-nullable-types\" aria-label=\"rules of using nullable types 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>Rules of using Nullable types:</h2>\n<p>To use the Nullable type as a local variable, it should be declared first; it will give a compile-time error. This rule is similar to the value data type.</p>\n<pre class=\"grvsc-container dark-default-dark\" data-language=\"c#\" data-index=\"7\"><code class=\"grvsc-code\"><span class=\"grvsc-line\"><span class=\"mtk4\">int</span><span class=\"mtk1\">? </span><span class=\"mtk12\">b</span><span class=\"mtk1\">;</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk12\">Console</span><span class=\"mtk1\">.</span><span class=\"mtk11\">WriteLine</span><span class=\"mtk1\">(</span><span class=\"mtk12\">b</span><span class=\"mtk1\">.</span><span class=\"mtk12\">Value</span><span class=\"mtk1\">); </span><span class=\"mtk3\">//Compile time error &#39;use of unassigned local variable b&#39;</span></span></code></pre>\n<p>If the Nullable variable is a property in a class and after that, if we are accessing that Nullable variable, then it will not give any error because, in the class variable, it is declared as <code>null</code> automatically.</p>\n<pre class=\"grvsc-container dark-default-dark\" data-language=\"c#\" data-index=\"8\"><code class=\"grvsc-code\"><span class=\"grvsc-line\"><span class=\"mtk4\">class</span><span class=\"mtk1\"> </span><span class=\"mtk10\">Test</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\">B</span><span class=\"mtk1\">;</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">}</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk4\">class</span><span class=\"mtk1\"> </span><span class=\"mtk10\">Program</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">{</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk1\">    </span><span class=\"mtk4\">static</span><span class=\"mtk1\"> </span><span class=\"mtk4\">void</span><span class=\"mtk1\"> </span><span class=\"mtk11\">Main</span><span class=\"mtk1\">(</span><span class=\"mtk4\">string</span><span class=\"mtk1\">[] </span><span class=\"mtk12\">args</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=\"mtk12\">Console</span><span class=\"mtk1\">.</span><span class=\"mtk11\">WriteLine</span><span class=\"mtk1\">(</span><span class=\"mtk4\">new</span><span class=\"mtk1\"> </span><span class=\"mtk10\">Test</span><span class=\"mtk1\">().</span><span class=\"mtk12\">B</span><span class=\"mtk1\">); </span><span class=\"mtk3\">// No 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=\"null-coalescing-operator-\" style=\"position:relative;\"><a href=\"#null-coalescing-operator-\" aria-label=\"null coalescing operator  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>null coalescing operator (??)</h2>\n<p>We can not assign the Nullable type variable value to the non-nullable type variable directly. As in the example below, if we try to assign the value, it will give the compile-time error.</p>\n<pre class=\"grvsc-container dark-default-dark\" data-language=\"c#\" data-index=\"9\"><code class=\"grvsc-code\"><span class=\"grvsc-line\"><span class=\"mtk4\">int</span><span class=\"mtk1\">? </span><span class=\"mtk12\">a</span><span class=\"mtk1\"> = </span><span class=\"mtk7\">10</span><span class=\"mtk1\">;</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk4\">int</span><span class=\"mtk1\"> </span><span class=\"mtk12\">b</span><span class=\"mtk1\"> = </span><span class=\"mtk12\">a</span><span class=\"mtk1\">;</span><span class=\"mtk3\">//Compile time error `Cannot implicitly convert type &#39;int?&#39; to &#39;int&#39;. An explicit conversion exists (are you missing a cast?)`</span></span></code></pre>\n<p><strong>Note</strong>: We can use compare operators <code>==</code> and <code>!=</code> operator with Nullable type variables and non Nullable type variables.</p>\n<p>For the Nullable variable, we can use the null coalescing operator (??) to check if the variable value is <code>null</code> or not. Then we can assign the non-nullable type variable value according to that. This operator can be used when we are unsure that at run time if that Nullable variable's value is changed according to our logic or not. Here is an example of that</p>\n<pre class=\"grvsc-container dark-default-dark\" data-language=\"c#\" data-index=\"10\"><code class=\"grvsc-code\"><span class=\"grvsc-line\"><span class=\"mtk4\">int</span><span class=\"mtk1\">? </span><span class=\"mtk12\">a</span><span class=\"mtk1\">=</span><span class=\"mtk4\">null</span><span class=\"mtk1\">;</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk4\">int</span><span class=\"mtk1\"> </span><span class=\"mtk12\">b</span><span class=\"mtk1\">=</span><span class=\"mtk12\">a</span><span class=\"mtk1\">?? </span><span class=\"mtk7\">10</span><span class=\"mtk1\">;</span></span>\n<span class=\"grvsc-line\"><span class=\"mtk12\">Console</span><span class=\"mtk1\">.</span><span class=\"mtk11\">WriteLine</span><span class=\"mtk1\">(</span><span class=\"mtk12\">b</span><span class=\"mtk1\">);  </span><span class=\"mtk3\">// Prints 10</span></span></code></pre>\n<p>In the above example, if the variable a value is null,, it will assign the value 10 to b variable. In that case, b is assigned with value 10, and the printed value will be 10.</p>\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 have discussed the Nullable types, and it's properties and methods. The main advantage of using the Nullable types is that we can store the Null value in a column of a database using this type. If you want to learn more about C# here is an article written by me on <a href=\"https://www.loginradius.com/blog/engineering/enum-csharp/\">How to Use Enum in C#</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 .mtk10 { color: #4EC9B0; }\n  .dark-default-dark .mtk1 { color: #D4D4D4; }\n  .dark-default-dark .mtk4 { color: #569CD6; }\n  .dark-default-dark .mtk12 { color: #9CDCFE; }\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":"January 29, 2021","updated_date":null,"description":"Nullable is a term in C# that allows an extra value null to be owned by a form. We will learn in this article how to work with Nullable types in C#.","title":"How to Work with Nullable Types in C#","tags":["C#","Nullable"],"pinned":null,"coverImage":{"childImageSharp":{"fluid":{"aspectRatio":1.5037593984962405,"src":"/static/41c1ba90d916c8835ab6561b428a152d/58556/coverimage.webp","srcSet":"/static/41c1ba90d916c8835ab6561b428a152d/61e93/coverimage.webp 200w,\n/static/41c1ba90d916c8835ab6561b428a152d/1f5c5/coverimage.webp 400w,\n/static/41c1ba90d916c8835ab6561b428a152d/58556/coverimage.webp 800w,\n/static/41c1ba90d916c8835ab6561b428a152d/210c1/coverimage.webp 900w","sizes":"(max-width: 800px) 100vw, 800px"}}},"author":{"id":"Hemant Manwani","github":"hemant404","avatar":null}}}},{"node":{"excerpt":"7 Common Web Application Security Threats-1\nMalicious actors and security experts are in an endless battle over data. While the former wants…","fields":{"slug":"/identity/7-web-app-sec-threats/"},"html":"<p><img src=\"/981de5eb581708ce407e4893bda068c3/7-Common-Web-Application-Security-Threats-1.webp\" alt=\"7 Common Web Application Security Threats-1\">\nMalicious actors and security experts are in an endless battle over data. While the former wants to steal it, the latter seeks to protect it. </p>\n<p>Each year, attackers develop inventive web application security threats to compromise sensitive data and access their targets' database. Consequently, security experts build on the exploited vulnerabilities and strengthen their systems through their learnings every year. </p>\n<p>The aggregate frequency and cost of data breaches seem to be growing exponentially. This cost is high (approx. <a href=\"https://www.ibm.com/security/data-breach\">US$8.64 million in the US in 2020</a>) because of developers' inability to incorporate the latest changes and updates into their code to overcome already detected vulnerabilities. Unintuitively, <a href=\"https://www.infopoint-security.de/medien/cenzic-vulnerability-report-2014.pdf\">96% of web apps</a> have some known defects and anomalies. </p>\n<p>To ensure adequate safety against web application security threats, businesses should incorporate security consideration in the applications' development phase. Unfortunately, most developers tend to hold it off until the end.</p>\n<h2 id=\"7-common-web-application-security-threats\" style=\"position:relative;\"><a href=\"#7-common-web-application-security-threats\" aria-label=\"7 common web application security threats 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>7 Common Web Application Security Threats</h2>\n<p><img src=\"/7a75c2878d0cfe1ab076cd143c27cb42/7-Common-Web-Application-Security-Threats-2.webp\" alt=\"7 Common Web Application Security Threats-2\"></p>\n<h3 id=\"1-injection-attacks\" style=\"position:relative;\"><a href=\"#1-injection-attacks\" aria-label=\"1 injection attacks 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. Injection Attacks</h3>\n<p>A web app that is vulnerable to injection attacks accepts untrusted data from an input field without any proper sanitation. By typing code into an input field, the attacker can trick the server into interpreting it as a system command and thereby act as the attacker intended. </p>\n<p>Some common injection attacks include SQL injections, Cross-Site Scripting, Email Header Injection, etc. These attacks could lead to unauthorized access to databases and exploitation of admin privileges.</p>\n<p><strong>How to prevent:</strong></p>\n<ul>\n<li>Keep untrusted inputs away from commands and queries.</li>\n<li>Use a safe Application Programming Interface (API) that avoids interpreters or uses parameterized interfaces.</li>\n<li>Filter and sanitize all inputs as per a whitelist. This prevents the use of malicious character combinations.</li>\n</ul>\n<h3 id=\"2-broken-authentication\" style=\"position:relative;\"><a href=\"#2-broken-authentication\" aria-label=\"2 broken 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>2. Broken Authentication</h3>\n<p>Broken authentication is an umbrella term given to vulnerabilities wherein authentication and session management tokens are inadequately implemented. </p>\n<p>This improper implementation allows hackers to make claims over a legitimate user’s identity, access their <strong>sensitive data</strong>, and potentially exploit the designated ID privileges.</p>\n<p><strong>How to prevent:</strong></p>\n<ul>\n<li>End sessions after a certain period of inactivity.</li>\n<li>Invalidate a session ID as soon as the session ends.</li>\n<li>Place limiters on the simplicity of passwords.</li>\n<li>Implement <a href=\"https://www.loginradius.com/blog/identity/2019/06/what-is-multi-factor-authentication/\">multi-factor authentication</a> (2FA/MFA).</li>\n</ul>\n<h3 id=\"3-cross-site-scripting-xss\" style=\"position:relative;\"><a href=\"#3-cross-site-scripting-xss\" aria-label=\"3 cross site scripting xss 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>3. Cross Site Scripting (XSS)</h3>\n<p>It is an injection-based client-side attack. At its core, this attack involves injecting malicious code in a website application to execute them in the victims’ browsers eventually. Any application that doesn’t validate untrusted data adequately is vulnerable to such attacks. </p>\n<p>Successful implementation results in theft of user session IDs, website defacing, and redirection to malicious sites (thereby allowing <a href=\"https://www.loginradius.com/blog/identity/phishing-for-identity/\">phishing attacks</a>).</p>\n<p><strong>How to prevent:</strong></p>\n<ul>\n<li>Encode all user-supplied data.</li>\n<li>Use auto-sanitization libraries such as <a href=\"https://owasp.org/www-project-antisamy/\">OWASP’s AntiSamy</a>.</li>\n<li>Whitelist inputs to disallow certain special character combinations.</li>\n</ul>\n<h3 id=\"4-insecure-direct-object-references-idor\" style=\"position:relative;\"><a href=\"#4-insecure-direct-object-references-idor\" aria-label=\"4 insecure direct object references idor 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>4. Insecure Direct Object References (IDOR)</h3>\n<p> <br>\nMostly through manipulation of the URL, an attacker gains access to database items belonging to other users. For instance, the reference to a database object is exposed in the URL. </p>\n<p>The vulnerability exists when someone can edit the URL to access other similar critical information (such as monthly salary slips) without additional authorization.</p>\n<p><strong>How to prevent:</strong></p>\n<ul>\n<li>Implement proper <a href=\"https://www.loginradius.com/blog/engineering/user-authentication-react-application/\">user authorization</a> checks at relevant stages of users’ web app journey.</li>\n<li>Customize error messages so that they don’t reveal critical information about the respective user.</li>\n<li>Try not to disclose reference to objects in the URL; use POST based information transmission over GET.</li>\n</ul>\n<h3 id=\"5-security-misconfigurations\" style=\"position:relative;\"><a href=\"#5-security-misconfigurations\" aria-label=\"5 security misconfigurations 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>5. Security Misconfigurations</h3>\n<p> <br>\nAccording to <a href=\"https://owasp.org/www-project-top-ten/\">OWASP top 10 2017</a>, this is the most common web application security threats found across web applications. This vulnerability exists because developers and administrators “forget” to change some default settings such as default passwords, usernames, reference IDs, error messages, etc.</p>\n<p>Given how easy it is to detect and exploit default settings that were initially placed to accommodate a simple <a href=\"https://www.loginradius.com/customer-experience-solutions/\">user experience</a>, the implications of such a vulnerability can be vast once the website is live: from admin privileges to complete database access.</p>\n<p><a href=\"https://www.loginradius.com/resource/understanding-credential-stuffing-attacks-whitepaper\"><img src=\"/0211bcf38d1a0a60f9930324cfba56e0/credential-stuffing.webp\" alt=\"credential-stuffing\"></a></p>\n<p><strong>How to prevent:</strong></p>\n<ul>\n<li>Frequently maintain and update all web application components**: **firewalls, operating systems, servers, databases, extensions, etc.</li>\n<li>Make sure to change default configurations.</li>\n<li>Make time for regular penetration tests (though this applies to every vulnerability that a web app could have).</li>\n</ul>\n<h3 id=\"6-unvalidated-redirects-and-forwards\" style=\"position:relative;\"><a href=\"#6-unvalidated-redirects-and-forwards\" aria-label=\"6 unvalidated redirects and forwards 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>6. Unvalidated Redirects and Forwards</h3>\n<p>Pretty much every website redirects a user to other web pages. When the credibility of this redirection is not assessed, the website leaves itself vulnerable to such URL based attacks. </p>\n<p>A malicious actor can redirect users to phishing sites or sites containing malware. Phishers search for this vulnerability extensively since it makes it easier for them to gain user trust.</p>\n<p><strong>How to prevent:</strong></p>\n<ul>\n<li>Avoid redirection where possible.</li>\n<li>Give the destination parameters a mapping value rather than the actual URL. Let the server-side code translate the mapping value to the actual URL.</li>\n</ul>\n<h3 id=\"7-missing-function-level-access-control\" style=\"position:relative;\"><a href=\"#7-missing-function-level-access-control\" aria-label=\"7 missing function level access control 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>7. Missing Function Level Access Control</h3>\n<p> <br>\nThe seventh web application security threats in this list is mostly similar to IDOR. The core differentiating factor between the two is that IDOR tends to give the attacker access to information in the database. </p>\n<p>In contrast, Missing_ Function Level Access Control _allows the attacker access to special functions and features that should not be available to any typical user. </p>\n<p>Like, IDOR, access to these functions can be gained through URL manipulation as well.</p>\n<p><strong>How to prevent:</strong></p>\n<ul>\n<li>Implement adequate authorization measures at relevant stages of user web app use.</li>\n<li>Deny all access to set features and functions unless attempted by a pre-approved (admin) user.</li>\n<li>Allow for a flexible shift in grant and rejection of access to feature privileges in your code. Hence, allowing a practical and secure shift in privilege access when needed.</li>\n</ul>\n<h2 id=\"how-loginradius-helps-in-securing-web-applications-for-businesses-while-providing-a-seamless-experience\" style=\"position:relative;\"><a href=\"#how-loginradius-helps-in-securing-web-applications-for-businesses-while-providing-a-seamless-experience\" aria-label=\"how loginradius helps in securing web applications for businesses while providing a seamless experience 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 Loginradius Helps in Securing Web Applications for Businesses While Providing a Seamless Experience</h2>\n<p><img src=\"/de66e71af008df22e76e4ae3d1ab5060/7-Common-Web-Application-Security-Threats-3.webp\" alt=\"7 Common Web Application Security Threats-3\"></p>\n<p> <br>\nDespite the multitude of solutions available to each vulnerability, it is hardly easy to produce your own code to secure a site against web application security threats. Managing an extensive portfolio can be unscalable. </p>\n<p>This is probably why it is best to rely on dedicated virtual security firms with dedicated years of research into incorporating security as a governing factor in writing scalable codes.</p>\n<p>LoginRadius protects consumer identity through a multilevel security web app environment. The APIs use OpenID Connect (OAuth 2.0 protocol). Also, applications on LoginRadius are hosted by Microsoft Azure and AWS. </p>\n<p>The <a href=\"https://www.loginradius.com/blog/identity/2019/06/customer-identity-and-access-management/\">CIAM platform</a> also ensures that it is updated with the latest government regulations and compliances of respective regions. The cloud directory protects sensitive consumer data while allowing and managing consumer consent for data collection and use.</p>\n<p>Among other features, LoginRadius offers:</p>\n<ul>\n<li>End-to-end SSL encryption for data in transit acts as protection against unauthorised access.</li>\n<li>Automated security monitoring systems to warn admins to take actions against unwarranted activity.</li>\n<li>One-way hashing of passwords allows for added user security: even from database admins.</li>\n<li>Flexible multi-factor authentication shuns the risk of being exposed to a multitude of attacks.</li>\n<li><a href=\"https://www.loginradius.com/single-sign-on/\">SSO solutions</a> for quick access to multiple web properties with a single set of credentials. </li>\n</ul>\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>We recommend using this list of top 7 web application threats and vulnerabilities to find a sound security base for your web apps. Developers can build on these vulnerabilities and learn from previous exploits of other entities to create a more secure application.</p>\n<p><a href=\"https://www.loginradius.com/contact-us?utm_source=blog&#x26;utm_medium=web&#x26;utm_campaign=7-web-app-sec-threats\"><img src=\"/8fce571f703a5970dbb1359a2fe0e51a/book-a-demo-loginradius.webp\" alt=\"book-a-free-demo-loginradius\"></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":"January 29, 2021","updated_date":null,"description":"To ensure adequate safety against web application security threats, businesses should incorporate security consideration in the applications' development phase. Unfortunately, most developers tend to hold it off until the end.","title":"7 Common Web Application Security Threats","tags":["security"],"pinned":null,"coverImage":{"childImageSharp":{"fluid":{"aspectRatio":1.408450704225352,"src":"/static/352ac81926b9a109f2ae55cd0233ce55/176df/7-Common-Web-Application-Security-Threats-cover.webp","srcSet":"/static/352ac81926b9a109f2ae55cd0233ce55/61e93/7-Common-Web-Application-Security-Threats-cover.webp 200w,\n/static/352ac81926b9a109f2ae55cd0233ce55/1f5c5/7-Common-Web-Application-Security-Threats-cover.webp 400w,\n/static/352ac81926b9a109f2ae55cd0233ce55/176df/7-Common-Web-Application-Security-Threats-cover.webp 767w","sizes":"(max-width: 767px) 100vw, 767px"}}},"author":{"id":"Rakesh Soni","github":"oyesoni","avatar":"rakesh-soni.webp"}}}},{"node":{"excerpt":"Innovations in the user identity management space have been a trend in the past couple of years. Most of these developments across business…","fields":{"slug":"/identity/identity-management-in-cloud-computing/"},"html":"<p>Innovations in the user identity management space have been a trend in the past couple of years. Most of these developments across business and technology fronts have been around identity management in cloud computing, enabling the authentication and authorization processes right in the cloud.</p>\n<p>The primary goal of identity management in cloud computing is dealing with personal identity information so that a user’s access to data, computer resources, applications, and services is controlled accurately. </p>\n<h2 id=\"what-is-cloud-identity-management\" style=\"position:relative;\"><a href=\"#what-is-cloud-identity-management\" aria-label=\"what is cloud identity management 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 Cloud Identity Management</h2>\n<p><img src=\"/aefa9ae1f2e03bc937426ec7a6b48c7c/identity-management-in-cloud-computing-2.webp\" alt=\"identity-management-in-cloud-computing2\"></p>\n<p>Identity management in cloud computing is the subsequent step of identity and access management (IAM) solutions. However, it is a lot more than merely a straightforward web app single sign-on (SSO) solution. This next generation of IAM solution is a holistic move of the identity provider right to the cloud. </p>\n<p>Known as Directory-as-a-Service (DaaS), this particular service is the advanced version of the conventional and on-premises solutions, including Lightweight Directory Access Protocol (LDAP) as well as Microsoft Active Directory (AD).</p>\n<h2 id=\"features-of-a-modern-cloud-identity-management-solution\" style=\"position:relative;\"><a href=\"#features-of-a-modern-cloud-identity-management-solution\" aria-label=\"features of a modern cloud identity management solution 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>Features of a Modern Cloud Identity Management Solution</h2>\n<p>The following are a few advantages of identity management in cloud computing:</p>\n<ul>\n<li><strong>It offers a consistent access control interface:</strong> Applicable for all cloud platform services; Cloud IAM solutions provide a clean and single access control interface. </li>\n<li><strong>It offers</strong> s<strong>uperior security levels:</strong> If needed, we can easily define increased security levels for crucial applications.</li>\n<li><strong>It lets businesses access resources at diverse levels:</strong> Businesses can<a href=\"https://www.loginradius.com/role-management/\"> define roles and grant permissions to explicit users</a> for accessing resources at diverse granularity levels.</li>\n</ul>\n<h2 id=\"why-do-you-need-cloud-iam\" style=\"position:relative;\"><a href=\"#why-do-you-need-cloud-iam\" aria-label=\"why do you need cloud iam 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>Why Do You Need Cloud IAM</h2>\n<p>Identity management in cloud computing incorporates all categories of user-base who can operate in diverse scenarios and with specific devices. </p>\n<p>A modern cloud Identity and Access Management (IAM) solution helps to:</p>\n<ul>\n<li>Connect professionals, employees, IT applications, and devices securely either on-premise or the cloud and through involved networks.</li>\n<li>It makes it easy to share the network abilities with the entire grid of users who were precisely connected with it.</li>\n<li>It offers zero management overhead, enhanced security levels, and easy management of diverse users with directory service in a SaaS solution.</li>\n<li>It is utterly known that cloud-based services are enabled, configured, and hosted by external providers. This scenario may also get the least hassle, either for users or clients. As a result, many organizations can enhance their productivity with cloud IAM.</li>\n<li>SaaS protocol is created and used as a hub for connecting with all virtual networks of distributors, suppliers, and partners.</li>\n<li>Business users can deal with all services and programs in one place with cloud services, and Identity management can be enabled with a click on a single dashboard.</li>\n<li>Easily connect your cloud servers, which are virtually hosted at Google Cloud, AWS, or elsewhere right next to your current LDAP or AD user store.</li>\n<li>Widen and extend your present LDAP or AD directory right to the cloud.</li>\n<li>Deal with Linux, Windows, and Mac desktops, laptops, and servers established at different locations.</li>\n<li>Connect different users to diverse applications that use LDAP or <a href=\"https://www.loginradius.com/single-sign-on/\">SAML-based authentication</a>.</li>\n<li>Effortlessly handle user access controls to WiFi networks securely by using a cloud RADIUS service.</li>\n<li>Enable GPO-like functionalities across diverse Windows, Mac, and Linux devices.</li>\n<li>Facilitate both system-based as well as application-level multi-factor authentications (2FA).</li>\n</ul>\n<p>These abilities help build a platform that connects users to virtually all IT resources through any provider, protocol, platform, or location. </p>\n<p><a href=\"https://www.loginradius.com/resource/cloud-security-system-sase-whitepaper\"><img src=\"/fa88a9e70426c2aaf7daf7d4265e1351/Future-proof-your-security.webp\" alt=\"Future-proof-your-security\"></a></p>\n<p>IT admins know that legacy identity management systems (in most cases) struggle when they are matched to cloud services and the likes of AWS. </p>\n<p>So, the newest approach to identity management in cloud computing extends your current directory to the cloud with a commanding, easy-to-use SaaS-based solution.</p>\n<h2 id=\"introducing-loginradius-cloud-iam---implemented-across-markets-by-industry-leaders\" style=\"position:relative;\"><a href=\"#introducing-loginradius-cloud-iam---implemented-across-markets-by-industry-leaders\" aria-label=\"introducing loginradius cloud iam   implemented across markets by industry leaders 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>Introducing Loginradius Cloud IAM - Implemented Across Markets by Industry Leaders</h2>\n<p><img src=\"/b6d77143b4a401e97742edb5eb26a8cc/identity-management-in-cloud-computing-3.webp\" alt=\"identity-management-in-cloud-computing3\"></p>\n<p>LoginRadius enables businesses to provide an enhanced consumer experience and protects the managed identities. Utilizing the <a href=\"https://www.loginradius.com/\">CIAM platform</a>, organizations can offer a streamlined login process, registration, password setup, along with safeguarding consumer accounts and complying with precise data privacy regulations.</p>\n<p>LoginRadius enables this by providing open-source SDKs, integrations with more than 150 third-party applications, pre-designed and personalized login interfaces, and superior security products such as RBA, <a href=\"https://www.loginradius.com/blog/identity/2019/06/what-is-multi-factor-authentication/\">MFA</a>, and Advanced Password Policies. More than 3,000 businesses appreciate the platform with monthly reachability of 1.17 billion users globally.</p>\n<p>Compared to conventional deployments with on-premise servers, LoginRadius facilitates everything for its customers, including upgrades, maintenance, data and infrastructure management, security, compliance, and complete privacy with 24/7 technical support.</p>\n<p>The LoginRadius identity platform increases the value of businesses by integrating with hundreds of third-party tools. The cloud directory offers everything an engineering team requires to manage consumer data. It enables you to tailor the abilities as needed. However, the platform is API driven, meaning it is easily accessible by developers.</p>\n<p>Further, when consumer data is completely locked away across silos, businesses will face multiple challenges. LoginRadius offers integrations to take apart data silos and the challenges that come with them.</p>\n<p>The cloud identity platform completely <a href=\"https://www.loginradius.com/compliances/#:~:text=The%20LoginRadius%20Identity%20Platform%20is%20designed%20to%20handle%20consent%20management,helps%20you%20meet%20GDPR%20requirements.\">complies with precise privacy regulations</a> and makes things simpler by giving consumer control when the data is entirely centralized. </p>\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>Identity management in cloud computing is highly critical to your organization. It can persuade the productivity of your employees and the <a href=\"https://www.loginradius.com/blog/identity/2020/06/consumer-data-privacy-security/\">security of your organization</a>. It can also have immense control over what technology solutions you select.</p>\n<p>However, IAM solutions have to be supple across identity management and access control in cloud computing to match the current complexities of the computing environment. </p>\n<p>If you are locked into some conventional platforms or service providers because of your active directory ad service, explore a vendor-neutral cloud identity management solution.</p>\n<p><a href=\"https://www.loginradius.com/contact-us?utm_source=blog&#x26;utm_medium=web&#x26;utm_campaign=identity-management-in-cloud-computing\"><img src=\"/8fce571f703a5970dbb1359a2fe0e51a/book-a-demo-loginradius.webp\" alt=\"book-a-free-demo-loginradius\"></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":"January 29, 2021","updated_date":null,"description":"Identity management in cloud computing is the subsequent step of identity and access management (IAM) solutions. However, it is a lot more than merely a straightforward web app single sign-on (SSO) solution. This next generation of IAM solution is a holistic move of the identity provider right to the cloud. ","title":"Identity Management in Cloud Computing","tags":["cloud computing","digital identity management","cx"],"pinned":null,"coverImage":{"childImageSharp":{"fluid":{"aspectRatio":1.408450704225352,"src":"/static/8ff84dc6e792bb7859169cfabb25d471/176df/identity-management-in-cloud-computing-cover.webp","srcSet":"/static/8ff84dc6e792bb7859169cfabb25d471/61e93/identity-management-in-cloud-computing-cover.webp 200w,\n/static/8ff84dc6e792bb7859169cfabb25d471/1f5c5/identity-management-in-cloud-computing-cover.webp 400w,\n/static/8ff84dc6e792bb7859169cfabb25d471/176df/identity-management-in-cloud-computing-cover.webp 767w","sizes":"(max-width: 767px) 100vw, 767px"}}},"author":{"id":"Rakesh Soni","github":"oyesoni","avatar":"rakesh-soni.webp"}}}},{"node":{"excerpt":"What is IAM What-is-IAM-1 Identity and Access Management (IAM) is a core discipline for any enterprise IT, as it is inseparably linked to…","fields":{"slug":"/identity/what-is-iam/"},"html":"<h1 id=\"what-is-iam\" style=\"position:relative;\"><a href=\"#what-is-iam\" aria-label=\"what is iam 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 IAM</h1>\n<p><img src=\"/f99359ee37dd2681187f5375fa71742a/What-is-IAM-1.webp\" alt=\"What-is-IAM-1\"></p>\n<p>Identity and Access Management (IAM) is a core discipline for any enterprise IT, as it is inseparably linked to the security and sustainability of companies. </p>\n<p>When more and more businesses storing their confidential data electronically, it is important to ensure that data remains secure.</p>\n<p>\"Users,\" \"roles,\" \"access\" might be some of the terms you have heard concerning identity and access management. So, let's break it down.</p>\n<ul>\n<li><strong>Identity</strong>: Identity implies how you are represented and digitally documented online, sometimes through social login, work email address, or personal email ID. </li>\n<li><strong>Access</strong>: Access refers to determining that the right user can access the right resource securely inside a network, at the right time.</li>\n</ul>\n<p>This is majorly what an ideal identity and access management strive to provide. </p>\n<h2 id=\"what-is-identity-and-access-management-in-cybersecurity\" style=\"position:relative;\"><a href=\"#what-is-identity-and-access-management-in-cybersecurity\" aria-label=\"what is identity and access management in cybersecurity 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 Identity and Access Management in Cybersecurity</h2>\n<p>Identity and Access Management in cybersecurity refers to the security framework and disciplines for managing digital identities. It regulates the responsibilities and access privileges associated with individual consumers and the conditions in which such privileges are allowed or denied.</p>\n<p>In simpler terms, IAM encompasses:</p>\n<ul>\n<li>The provisioning and de-provisioning of identities in the IAM system.</li>\n<li>Securing and authenticating identities.</li>\n<li>Authorizing access to resources or performing certain actions.</li>\n<li>Incorporating the correct levels of protection and access for sensitive data. </li>\n</ul>\n<p>IAM includes tools like two-factor authentication, multi-factor authentication, single sign-on, and privileged access management. These tools can store identity and profile data safely. </p>\n<p>They also comply with <a href=\"https://www.loginradius.com/blog/identity/2020/07/data-governance-best-practices/\">data governance</a> functions to ensure that only appropriate and relevant information is being shared. </p>\n<p>Information technology (IT) administrators can restrict user access to sensitive data within their organizations by putting an IAM <a rel=\"nofollow\" href=\"https://www.softwareworld.co/best-identity-management-software/\"> security framework </a> in place.</p>\n<h3 id=\"what-are-the-key-iam-terms\" style=\"position:relative;\"><a href=\"#what-are-the-key-iam-terms\" aria-label=\"what are the key iam terms 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 Are the Key IAM Terms</h3>\n<p>Here are some of the key terminologies that you will encounter while processing identity and access management. </p>\n<ul>\n<li><strong>Access management</strong>: It refers to the processes and tools used to control and monitor network access for both on-premises and cloud-based systems.</li>\n<li><strong>Authentication</strong>– It is the first in the login process in which users enter their credentials to verify their identity.</li>\n<li><strong>Authorization</strong>– After authentication, the system now determines whether the authenticated user has permission to perform the action they have requested.</li>\n<li><strong>De-provisioning</strong>- It is the process of removing an identity from an ID repository and terminating access privileges.</li>\n<li><strong>Entity</strong>- The identification that has been used to authorize an entry. Usually, this comes either from a task grouping or an individual user account.</li>\n<li><strong>Identity Analytics</strong> – They are repositories that capture logging activities for authentication and authorization. </li>\n<li><strong>Managed Policy</strong> - It is a set of rules that an IAM system follows to track which users, organizations, and positions have access to which services.</li>\n<li><strong>Multi-Factor Authentication</strong> - It verifies consumer identities by adding (compulsory or optional) additional layers of security to the authentication process, usually in the form of numeric or alphanumeric codes. </li>\n<li><strong>Principal</strong>: The source that demands permission to access a resource. It can be a human being or an automated system. </li>\n<li><strong>Privileged account management</strong>:  It refers to managing and auditing accounts and data access based on consumers' allowed privileges. </li>\n<li><strong>Risk-Based Authentication</strong> - It is an advanced authentication method that uses real-time intelligence to verify a consumer based on certain risk scores. They usually include factors like login device, consumer identity, geolocation, geo velocity, number of failed login attempts, and more. </li>\n<li><strong>Single Sign-On</strong> - It allows consumers to log in to multiple independent applications with a single set of credentials, eliminating the need for multiple usernames and passwords.</li>\n<li><strong>User Provisioning</strong> – It is the process of creating new enterprise accounts for users and assigning them <a href=\"https://www.loginradius.com/provisioning/\">access privileges</a>.</li>\n</ul>\n<h2 id=\"how-iam-works\" style=\"position:relative;\"><a href=\"#how-iam-works\" aria-label=\"how iam works 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 IAM Works</h2>\n<p><img src=\"/65604ca81b1a159aa26d5f688f5045b3/What-is-IAM-3.webp\" alt=\"What is IAM-3\"></p>\n<p>Identity and access management systems perform three main tasks viz. identification, authentication, and authorization. In other words, IAM functions to provide the right people access to devices, hardware, software applications, or any IT tool to perform a specific task. </p>\n<p>All IAM includes the following core components:</p>\n<ul>\n<li>A database that includes the identities and access rights of users.</li>\n<li>IAM tools to provision, monitor, change and remove access privileges.</li>\n<li>A framework for auditing login and access history.</li>\n</ul>\n<p>The list of access rights must be up-to-date all the time with the entry of new users or the change of roles of current users. In an enterprise, the responsibilities of identity and access management typically come under IT or departments that handle data processing and cybersecurity.</p>\n<h3 id=\"the-key-functionalities-of-an-iam\" style=\"position:relative;\"><a href=\"#the-key-functionalities-of-an-iam\" aria-label=\"the key functionalities of an iam 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 key functionalities of an IAM</h3>\n<ul>\n<li><strong>It manages identities</strong>: IAM creates, modifies, and deletes users. It also integrates with one or more other directories and synchronizes with them.</li>\n<li><strong>It provisions/provisions users</strong>: Once a user seeks permission to enter a system, IAM specifies which resource the user has access to and what level of access (like editor or viewer) based on their roles in the organization. On the contrary, when a user leaves the organization, IAM deprovisions from all the systems they have access to. After all, an ex-employee still having access to an organization's resources can have serious security implications. </li>\n<li><strong>It authenticates users</strong>: IAM authenticates users using tools like multi-factor authentication and adaptive authentication when they request access.</li>\n<li><strong>It authorizes users</strong>: After authenticating, IAM authorizes access to specific apps and resources based on predefined provisioning.</li>\n<li><strong>It provides report</strong>: IAM provides reports to help organizations identify possible cybersecurity threats, and strengthen their safety processes under global compliances. </li>\n<li><strong>It offers single sign-on</strong>: IAM allows consumers to access any connected web properties with a single identity. SSO adds security to the process of authentication and makes it even easier and faster to access resources. </li>\n</ul>\n<h2 id=\"designing-a-modern-iam-program-for-your-enterprise\" style=\"position:relative;\"><a href=\"#designing-a-modern-iam-program-for-your-enterprise\" aria-label=\"designing a modern iam program for your enterprise 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>Designing a Modern IAM Program for Your Enterprise</h2>\n<p>Here are the best practices to enable a smooth and seamless integration of a modern IAM program. </p>\n<h3 id=\"define-your-iam-vision\" style=\"position:relative;\"><a href=\"#define-your-iam-vision\" aria-label=\"define your iam vision 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>Define your IAM vision</h3>\n<p>Your IAM should be a combination of modern technologies and business processes. You need to understand your current IT and network infrastructure and build your future capabilities around it. </p>\n<p>Later, incorporate authorization, privileges, policies, and other constraints to ensure secure access into your web properties. </p>\n<h3 id=\"a-strong-foundation-is-a-must\" style=\"position:relative;\"><a href=\"#a-strong-foundation-is-a-must\" aria-label=\"a strong foundation is a must 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 strong foundation is a must.</h3>\n<p>This includes a thorough assessment of the capabilities of the IAM product and its sync with organizational IT. An efficient risk evaluation should ideally cover:</p>\n<ul>\n<li>An understanding of what third-party apps are currently in use.</li>\n<li>What are your technological forte and limitations?</li>\n<li>Should you build or buy your IAM solution? </li>\n</ul>\n<h3 id=\"stage-wise-implementation\" style=\"position:relative;\"><a href=\"#stage-wise-implementation\" aria-label=\"stage wise implementation 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>Stage-wise implementation.</h3>\n<p>An IAM program is usually implemented based on the two practices mentioned above. However, to avoid any complications, most IAM experts recommend a stage-wise implementation process.</p>\n<h3 id=\"conduct-a-stakeholder-awareness-program\" style=\"position:relative;\"><a href=\"#conduct-a-stakeholder-awareness-program\" aria-label=\"conduct a stakeholder awareness program 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>Conduct a stakeholder awareness program.</h3>\n<p>Your stakeholder awareness program should cover detailed training about your product abilities, scalability standards, and what technologies you are using. However, more than anyone, train your IT teams as they should most definitely know about your IAM's core capabilities.</p>\n<h3 id=\"identity-should-be-your-core-security-parameter\" style=\"position:relative;\"><a href=\"#identity-should-be-your-core-security-parameter\" aria-label=\"identity should be your core security parameter 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 should be your core security parameter.</h3>\n<p>Organizations should move from the conventional focus of securing a network to securing identity. Centralize security controls around the identities of users and facilities.</p>\n<h3 id=\"enable-multi-factor-authentication-mfa\" style=\"position:relative;\"><a href=\"#enable-multi-factor-authentication-mfa\" aria-label=\"enable multi factor authentication mfa 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>Enable multi-factor authentication (MFA).</h3>\n<p><a href=\"https://www.loginradius.com/blog/identity/2019/06/what-is-multi-factor-authentication/#:~:text=10%20min%20read,And%20that&#x27;s%20the%20catch!\">MFA</a> is a crucial part of identity and access management. After all, it adds multiple security layers to user identities before allowing access to an application or database. Therefore, ensure that you have enabled MFA for all users and consumers, including IT admins and C-suite executives. </p>\n<h3 id=\"implement-single-sign-on-sso\" style=\"position:relative;\"><a href=\"#implement-single-sign-on-sso\" aria-label=\"implement single sign on sso 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>Implement Single Sign-On (SSO).</h3>\n<p>Establish SSO for all your web properties (devices, apps, and services) so consumers can use the same set of credentials to access multiple resources. </p>\n<h3 id=\"enforce-a-zero-trust-policy\" style=\"position:relative;\"><a href=\"#enforce-a-zero-trust-policy\" aria-label=\"enforce a zero trust policy 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>Enforce a zero-trust policy.</h3>\n<p>Zero Trust is a holistic approach to network security where consumer identities are strictly verified, regardless of whether they are located inside or outside the network perimeter. However, it is only effective when you track and verify the access rights and privileges of consumers on an ongoing basis. </p>\n<h3 id=\"implement-a-strong-password-policy\" style=\"position:relative;\"><a href=\"#implement-a-strong-password-policy\" aria-label=\"implement a strong password policy 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>Implement a strong password policy.</h3>\n<p>Enforce a strong password policy for both employees and your consumers. Make sure they are updating passwords regularly and aren't using sequential and repetitive characters.</p>\n<h3 id=\"secure-all-privileged-accounts\" style=\"position:relative;\"><a href=\"#secure-all-privileged-accounts\" aria-label=\"secure all privileged accounts 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>Secure all privileged accounts.</h3>\n<p>A good way to protect your critical business asset is to secure all privileged accounts. For starters, limit the number of users who have access to those accounts.</p>\n<h3 id=\"conduct-access-audits-from-time-to-time\" style=\"position:relative;\"><a href=\"#conduct-access-audits-from-time-to-time\" aria-label=\"conduct access audits from time to 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>Conduct access audits from time to time.</h3>\n<p>Regularly conduct access audits to ensure that whatever access you have granted is still required. You can offer additional access or revoke consumer access based on your audit report.</p>\n<h3 id=\"favor-passwordless-login\" style=\"position:relative;\"><a href=\"#favor-passwordless-login\" aria-label=\"favor passwordless login 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>Favor passwordless login.</h3>\n<p><a href=\"https://www.loginradius.com/blog/identity/2019/10/passwordless-authentication-the-future-of-identity-and-security/\">Passwordless login</a> simplifies and streamlines the authentication process by swapping traditional passwords with more secure factors. These extra-security methods may include a magic link, fingerprint, PIN, or a secret token delivered via email or text message. </p>\n<h2 id=\"benefits-of-identity-and-access-management\" style=\"position:relative;\"><a href=\"#benefits-of-identity-and-access-management\" aria-label=\"benefits of identity and access management 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>Benefits of Identity and Access Management</h2>\n<h3 id=\"it-reduces-security-risk\" style=\"position:relative;\"><a href=\"#it-reduces-security-risk\" aria-label=\"it reduces security risk 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>It reduces security risk.</h3>\n<p>Organizations can use identity and access management solutions to detect unauthorized access privileges, validations, or policy violations under a single system. You can also ensure that your organization meets necessary regulatory and audit requirements.</p>\n<h3 id=\"it-is-easy-to-use\" style=\"position:relative;\"><a href=\"#it-is-easy-to-use\" aria-label=\"it is easy to use 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>It is easy to use.</h3>\n<p>With IAM, it is easier to provision and manage access to end-users and system administrators. It also simplifies and secures the process of <a href=\"https://www.loginradius.com/authentication/\">registration and authentication</a>. </p>\n<h3 id=\"it-reduces-it-costs\" style=\"position:relative;\"><a href=\"#it-reduces-it-costs\" aria-label=\"it reduces it costs 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>It reduces IT costs.</h3>\n<p>Using IAM can lower operation costs to quite an extent. For example, with federated identity, organizations can integrate third-party services into their system. Similarly, with cloud IAM organizations need not buy or maintain on-premise infrastructure.</p>\n<h3 id=\"it-improves-user-experience\" style=\"position:relative;\"><a href=\"#it-improves-user-experience\" aria-label=\"it improves user experience 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>It improves user experience.</h3>\n<p>SSO removes the need for users to recall and enter multiple passwords. Gone are the days of trying to remember dozens of password variations. With SSO, every time consumers switch to a new connected device, they can enjoy automatic logins.</p>\n<h3 id=\"it-enhances-security-profiles\" style=\"position:relative;\"><a href=\"#it-enhances-security-profiles\" aria-label=\"it enhances security profiles 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>It enhances security profiles.</h3>\n<p>Modern IAM systems use <a href=\"https://www.loginradius.com/single-sign-on/\">SSO</a> with additional levels of protection. A majority of these systems use Security Assertion Markup Language (SAML) 2.0 that can authenticate and authorize users based on the access level indicated in their directory profiles. </p>\n<p>A few other benefits of identity and access management system include:</p>\n<ul>\n<li>It enables secure, low-friction access through seamless authentication to different web properties. </li>\n<li>It demonstrates an extreme degree of scalability by anticipating potential surges and dips in consumer registrations and activities. </li>\n<li>It provides a unified experience by utilizing consolidated reports and analytics of user demographics, social registration and login data, revenue activities, and more. </li>\n<li>It adheres to privacy regulations for protecting data in transit and at rest.</li>\n<li>It keeps user data protected at all times by developing flexible schemas to get the most out of a system. </li>\n</ul>\n<h2 id=\"how-iam-and-compliance-are-related-to-each-other\" style=\"position:relative;\"><a href=\"#how-iam-and-compliance-are-related-to-each-other\" aria-label=\"how iam and compliance are related to each other 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 IAM and Compliance Are Related to Each Other</h2>\n<p>Consumer data centricity is crucial to the success of any business today. Organizations should securely collect, manage, analyze, and protect their data. However, the method of capturing and safely storing user data can be difficult. </p>\n<p>Many companies keep hundreds of separate data silos to get the job done. Fortunately, an identity and access management solution can help organizations break down these silos and store data into a unified database that provides a consistent view of the client across the business ecosystem. </p>\n<p>Consumers want more control over their data at the same time. They want the nod on how brands use their data, they also wish to know precisely what they agreed to while using the product or service. An IAM solution offers trust and transparency to consumers by helping organizations ensure compliance with local and global regulations. </p>\n<p>Speaking of regulations, many are industry-specific, such as the Health Insurance Portability and Accountability Act (HIPAA) for healthcare organizations. Others apply more broadly, such as the Payment Card Industry Data Security Standard (PCI DSS) that must be adopted by any organization that collects debit and credit card information.</p>\n<p>The most disruptive regulations in recent years are the ones related to ensuring consumer privacy, such as the General Data Protection Regulation (GDPR) and the California Consumer Privacy Act (CCPA). </p>\n<p>The following are a few of the <a href=\"https://www.loginradius.com/blog/identity/2020/03/how-loginradius-helps-enterprises-stay-ccpa-compliant-in-2020/\">major security assurance programs</a> identity solutions adhere to: </p>\n<ul>\n<li>OpenID - End-user identity verification supported by OAuth 2.0 protocol</li>\n<li>PCI DSS - Administered standard for payment transactions</li>\n<li>ISO 27001:2013 - Information security management system</li>\n<li>ISO 27017:2015 - Information security for cloud services</li>\n<li>AICPA SOC 2 (Type II) - System-level controls for Trust Services Criteria - security, availability, process integrity, confidentiality, and privacy </li>\n<li>ISAE 3000 - International attestation standard for assurance over non-financial information </li>\n<li>NIST Cybersecurity Framework - Standardized security framework to manage and reduce cybersecurity risk.  </li>\n<li>CSA CCM Level 1, Level 2 - STAR Self-Assessment, STAR Certification, STAR Attestation, and C-STAR Assessment.</li>\n<li>CIS Critical Security Controls Global standards for internet security</li>\n<li>US Privacy Shield Complaint resolution for EEA citizens</li>\n<li>ISO/IEC 27018:2019 - PII Protection</li>\n</ul>\n<h2 id=\"the-future-of-iam-in-the-post-covid-digital-era\" style=\"position:relative;\"><a href=\"#the-future-of-iam-in-the-post-covid-digital-era\" aria-label=\"the future of iam in the post covid digital era 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 Future of IAM in the Post-COVID Digital Era</h2>\n<p>We live in the age of ever-growing cybersecurity threats. Organizations cannot afford to undermine the value of managing identities inside or across their systems. An IAM solution ensures that all identities are tracked, updated, and maintained throughout the users' lifecycle. </p>\n<p>Although 2020 has been a year-long roller coaster with the pandemic hitting hard, there's one thing that happened for sure. Digital transformation has progressed at an unparalleled pace, and identity and access management (IAM) is a major part of that evolution. </p>\n<p><a href=\"https://www.loginradius.com/resource/digital-identity-future-whitepaper\"><img src=\"/c9b0653e443507f8b80a23cfc044a091/future-of-digital-identity.webp\" alt=\"future-of-digital-identity\"></a></p>\n<p>Let's look at some of the most changing developments in the IAM market anticipated in 2021.</p>\n<h3 id=\"user-managed-access-uma-will-reign-supreme-in-2021\" style=\"position:relative;\"><a href=\"#user-managed-access-uma-will-reign-supreme-in-2021\" aria-label=\"user managed access uma will reign supreme in 2021 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 managed access (UMA) will reign supreme in 2021.</h3>\n<p>With more and more services migrating to the digital front, users are expecting amazing experiences online. To keep up with these demands, as more organisations continue to adopt the delegation model, digital interactions will need to include more than one identity. </p>\n<p>In 2021, conventional authentication and MFA controls will take over solutions that include a central management framework for organizing digital resources that reside in many places. </p>\n<h3 id=\"2021-will-be-the-year-of-zero-login-methods\" style=\"position:relative;\"><a href=\"#2021-will-be-the-year-of-zero-login-methods\" aria-label=\"2021 will be the year of zero login methods 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>2021 will be the year of zero login methods.</h3>\n<p>Now that passwordless authentication (such as biometrics)  has witnessed abundant adoption, we can see a shift to a \"zero login\" mechanism that reduces user friction. </p>\n<p>Since, there will be no credentials to remember, MFA will take the backseat. Zero login will allow consumers to use variables such as fingerprints, keyboard typing habits, the way the phone/device is kept, and other markers to verify identification in the background while the user enjoys a frictionless experience. </p>\n<h3 id=\"it-will-infuse-access-governance-to-protect-workforce-cybersecurity\" style=\"position:relative;\"><a href=\"#it-will-infuse-access-governance-to-protect-workforce-cybersecurity\" aria-label=\"it will infuse access governance to protect workforce cybersecurity 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>IT will infuse access governance to protect workforce cybersecurity.</h3>\n<p>The threat landscape is rapidly changing, courtesy, the increasing pressure on conventional identity governance and administration (IGA) solutions. In addition to rising compliance risks, business IT environments are becoming more complex every year. </p>\n<p>In 2020, we will witness AI being increasingly employed to enable an autonomous approach to identity. AI-infused authentication and authorization solutions will be integrated with existing IGA solutions. </p>\n<p>And when that happens, it will be easier for enterprises to capture and analyze all identity data and provide insight into various risk levels. </p>\n<h2 id=\"how-loginradius-iam-solution-can-accommodate-your-enterprise-requirements\" style=\"position:relative;\"><a href=\"#how-loginradius-iam-solution-can-accommodate-your-enterprise-requirements\" aria-label=\"how loginradius iam solution can accommodate your enterprise requirements 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 LoginRadius IAM Solution Can Accommodate Your Enterprise Requirements</h2>\n<p><img src=\"/a7ce9d2b5cce02b79c895a6d88c43797/What-is-IAM-4.webp\" alt=\"What-is-IAM-4\"></p>\n<p>With the <a href=\"https://www.loginradius.com/\">right IAM provider</a>, organizations can enjoy enormous time-saving, efficiency-building, and security-boosting benefits, irrespective of where they operate. </p>\n<p>LoginRadius' extensive experience in the identity and access management market will help you build the right process for your enterprise. </p>\n<p>LoginRadius offers you the following tools to help you build secure, seamless experiences for your consumers and workforce.</p>\n<ul>\n<li>\n<p><strong>Single Sign-On</strong>: LoginRadius SSO provides your users with a single identity to access all of your web assets, mobile applications, and third-party systems. </p>\n<p>As your users navigate from one property to the next, you can recognize who they are, and document and access their activities in a central profile.</p>\n</li>\n<li>\n<p><strong>Multi-factor authentication</strong>: MFA verifies identities by adding additional layers of security to the authentication process. By requiring at least an extra step to verify identities, MFA ensures that the right consumer has the right access to your network. </p>\n<p>It lifts off the burden of stolen or lost passwords on consumers and makes it harder for criminals to get into their accounts. </p>\n<p>Additional forms of MFA by LoginRadius include security questions, biometric verification, automated phone calls, Google Authenticator, and social login. </p>\n</li>\n<li>\n<p><strong>Federated SSO</strong>: <a href=\"https://www.loginradius.com/federated-sso/\">Federated SSO</a> allows users to gain access to multiple organizations' web applications using one digital identity. </p>\n<p>LoginRadius supports standard SSO protocols like SAML, JWT, OAuth 2.0, OpenID Connect (OIDC), and Web Services Federation. The IAM platform offers a simple dashboard to manage all configurations required for these protocols.</p>\n</li>\n<li><strong>User management</strong>: LoginRadius offers complete user management features, including: </li>\n<li>Authorization: To validate the access rights of users.</li>\n<li>Provisioning: To create user accounts.</li>\n<li>Deprovisioning: To block, or delete user accounts.</li>\n<li>Account Management: To disable user accounts, and grant, or restrict access.</li>\n<li>Password Management: To trigger the password reset option for user accounts.</li>\n<li><strong>Compliance with privacy regulations</strong>: The LoginRadius Identity Platform handles consent management by ensuring continued compliance with all major privacy regulations, including the GDPR of the EU and the CCPA of California. </li>\n</ul>\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>Powerful identity and access management solutions offer the right tools to ensure users can engage with enterprises at any time, from any device, securely. Organizations will need to rethink their business and operating models. </p>\n<p>There is a huge demand to invest in new digital methods of communication.  And prioritizing <a href=\"https://www.loginradius.com/blog/identity/2020/06/consumer-data-privacy-security/\">digital security</a> will go a long way. </p>\n<p><a href=\"https://www.loginradius.com/contact-us?utm_source=blog&#x26;utm_medium=web&#x26;utm_campaign=what-is-iam\"><img src=\"/8fce571f703a5970dbb1359a2fe0e51a/book-a-demo-loginradius.webp\" alt=\"book-a-demo-loginradius\"></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":"January 29, 2021","updated_date":null,"description":"Identity and Access Management in cybersecurity refers to the security framework and disciplines for managing digital identities. It regulates the responsibilities and access privileges associated with individual consumers and the conditions in which such privileges are allowed or denied.","title":"What is Identity and Access Management (IAM)?","tags":["customer-experience"],"pinned":null,"coverImage":{"childImageSharp":{"fluid":{"aspectRatio":1.408450704225352,"src":"/static/776ccabef13cf14119f06e705f8a1b7c/c0524/What-is-IAM-Cover.webp","srcSet":"/static/776ccabef13cf14119f06e705f8a1b7c/61e93/What-is-IAM-Cover.webp 200w,\n/static/776ccabef13cf14119f06e705f8a1b7c/1f5c5/What-is-IAM-Cover.webp 400w,\n/static/776ccabef13cf14119f06e705f8a1b7c/c0524/What-is-IAM-Cover.webp 769w","sizes":"(max-width: 769px) 100vw, 769px"}}},"author":{"id":"Rakesh Soni","github":"oyesoni","avatar":"rakesh-soni.webp"}}}}]},"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.webp"}}}},"pageContext":{"limit":6,"skip":618,"currentPage":104,"type":"///","numPages":164,"pinned":"ee8a4479-3471-53b1-bf62-d0d8dc3faaeb"}},"staticQueryHashes":["1171199041","1384082988","2100481360","23180105","528864852"]}