## Documentation

- About
- Read First
  - What is IdentityServer
  - Installation Scenarios
- Migrations
- Bootstrapping
- Configuration & Integration
  - AdminUI Settings
  - Configuring AdminUI
  - Configuring AdminUI (NuGet)
  - Integrating with Identity Server
  - Integrating with Identity Server Custom Schema
  - Integrating with Quickstarts
  - Enabling Logging
- Installation
  - Installer
  - IIS
  - Azure
    - Install in Azure
    - Create Azure Web App
  - Docker
  - NuGet
- Custom Database Connections
- Custom Identity Store
  - Overview
  - Partial Implementation
  - Full Implementation
  - Tenancy With Entity Framework
  - NoSql Implementation (MongoDB)
- Custom CSP
- Users
  - Searching for Users
  - Adding Users
  - Editing Users
  - Deleting Users
  - Merge Users
  - Set User Password
  - Session Management
  - User Reports
  - Bulk User Import
- Roles
  - Creating Roles
  - Managing Roles
  - Managing Users in a Role
  - Managing Role Claims
- Claim Types
- Clients
  - Searching for Clients
  - Adding Clients
  - Adding a SAML Client
  - Adding a WS-Fed Client
  - Editing Clients
  - Deleting Clients
  - Clone Client
- Import and Export
  - Exporting Clients
  - Importing Clients
  - Importing Client Configuration with Secrets
  - Importing SAML Clients with Certificates
  - Import and Export Via the API
- Dynamic Authentication Providers
  - What is Dynamic Authentication
  - Enabling or disabling Dynamic Authentication
  - Add a Dynamic Provider
    - First Steps
    - Adding OIDC Provider
    - Adding SAML Provider
  - Edit a Dynamic Provider
    - Accessing edit view
    - Editing a OIDC Provider
    - Editing a SAML Provider
  - Deleting a Provider
  - Searching for Provider
- Resources
  - Searching for Resources
  - Creating Resources
  - Editing resources
- Webhooks
  - Webhooks
  - Endpoint Configuration
- User Settings Endpoints
- Access Policy
- Keys
- Auditing
- FAQs
- Troubleshooting
  - Unable to start AdminUI
  - Unable to contact IdentityServer
  - Unable to contact API
  - Unable to log in

### Integrating with Quickstarts

- -Update Packages
- -Required Packages
- -Registration & Usage Changes

After using the IdentityServer Quickstarts to evaluate the framework, it is then possible to integrate AdminUI for production use.

Note: Quickstarts built using the ASP.NET Core Identity Visual Studio templates are not recommended for production, due to their fragility and abuse of anti-patterns.

## Update Packages

When using the code from the samples repository, ensure all packages are up-to-date (excluding pre-releases).

## Required Packages

AdminUI uses a custom ASP.NET Core Identity schema. This schema extends from the ASP.NET Core Identity Entity Framework defaults, which means any existing registration, password reset or login functionality will continue to work with the AdminUI user store.

This schema is available on nuget using the `IdentityExpress.Identity` package.

Use the following command to install using the nuget package manager console:

    install-package IdentityExpress.Identity

## Registration & Usage Changes

Some base entities with AdminUI/IdentityServer specifics need to be updated:

1. Delete `Models\ApplicationUser.cs`
2. Replace all usages of `ApplicationUser` with `IdentityExpressUser`
3. Replace all usages of `IdentityRole` with `IdentityExpressRole`
4. Delete `Data\ApplicationDbContext.cs`
5. Replace `.AddEntityFrameworkStores<IdentityExpressDbContext>()` with `.AddUserStore<IdentityExpressUserStore>().AddRoleStore<IdentityExpressRoleStore>()`
6. Add `.AddIdentityExpressUserClaimsPrincipalFactory()` to ensure user data is correctly transformed into claims
7. Delete any ASP.NET Core Identity migrations, AdminUI must be in charge of the user store migrations

The ASP.NET Core DI registrations should now look similar to this:

    services.AddDbContext<IdentityExpressDbContext>(options => options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));
    services.AddIdentity<IdentityExpressUser, IdentityExpressRole>()
        .AddUserStore<IdentityExpressUserStore>()
        .AddRoleStore<IdentityExpressRoleStore>()
        .AddIdentityExpressUserClaimsPrincipalFactory()
        .AddDefaultTokenProviders();

Previous Next