> For the complete documentation index, see [llms.txt](https://aptitude.gitbook.io/zaubercms/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://aptitude.gitbook.io/zaubercms/identity/overview.md).

# Overview

ZauberCMS uses EF Core identity for all authentication. You can read more about .Net Core Blazor authentication here

{% embed url="<https://learn.microsoft.com/en-us/aspnet/core/blazor/security/?view=aspnetcore-8.0>" %}

The main thing you need to understand with Identity in Blazor, is that all the account forms (Login, Register etc...) have to be rendered in static mode. They cannot use interactive server because they rely  on the `HttpContext` constantly being available, which is not always the case in Blazor.

Because of this the account pages use their own layout and are stand alone, but you can still customise them by creating your own layout

{% content-ref url="/pages/HNiOue85qJ45Kju3GhiG" %}
[Account Layout](/zaubercms/identity/account-layout.md)
{% endcontent-ref %}

Configuration

You can configure a lot of the Identity settings directly in the appSettings, under the Identity section

```json
"Identity": {
  "PasswordRequireDigit": true,
  "PasswordRequireLowercase": true,
  "PasswordRequireNonAlphanumeric": false,
  "PasswordRequireUppercase": true,
  "PasswordRequiredLength": 8,
  "PasswordRequiredUniqueChars": 1,
  "SignInRequireConfirmedAccount": false,
  "AccountLayout": "ZauberCMS.Components.Pages.BlankLayout",
  "ExternalProviders": {
    "Google": {
      "ClientId": "",
      "ClientSecret": ""
    },
    "Facebook": {
      "AppId": "",
      "AppSecret": ""
    },
    "Microsoft": {
      "ClientId": "",
      "ClientSecret": ""
    }
  }
},
```
