## 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
  - 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
- MCP
  - Overview
  - Default Server Prompt Instructions
- 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

### IIS

- -AdminUI Deployment
- -Prerequisites
- -Walkthrough
- -Configure a Database
- -Create IIS Websites
- -Website Configuration
- -AdminUI Configuration
- -Troubleshooting

This walkthrough will run through setting up AdminUI manually in IIS.

The IdentityExpress AdminUI site integrates with an IdentityServer installation for authentication and authorization

## AdminUI Deployment

AdminUI is deployed as an IIS Application that communicates with your IdentityServer application

## Prerequisites

Before beginning installation, please ensure that you have downloaded:

- Latest version of AdminUI
- .NetCore Windows Server Hosting Bundle
- .Net Framework 4.7.2
- Either `IdentityServer4` or `IdentityServer6 (Duende)`, a sample can be found here that is already integrated with our IdentityExpress.Identity schema.
- Either a `MySql` or `SqlServer` database set up

Note despite the name indicating the sample is using `IdentityServer4` it is actually using `IdentityServer6 (Duende)`.

## Walkthrough

If you already have a working IdentityServer installation up and running then this walkthrough is for you.

This walkthrough will take you through the entire IIS configuration process, resulting in a working environment for IdentityExpress AdminUI, with the UI and backend API running on the same machine and targeting an existing IdentityServer. This will also include migrating your user store to the AdminUI Identity Schema.

#### Configure a Database

AdminUI currently only supports MySql, PostgreSQL and SqlServer. This also includes SqlExpress.

Any used databases must accept remote connections, also ensure that your firewall allows connections on any used ports.

#### Create IIS Websites

Initially you will want to create an IIS Website pointing at the folder we have provided in the emails.

Once created you need to configure the application for run no managed code. You can do this by going to Application Pools -> [Website Name] -> Basic Settings -> Change .NET CLR Version to No Managed Code.

## Website Configuration

This section will show you how to configure AdminUI. Please note that in IIS environments variables are nested with `:`.

### AdminUI Configuration

Once you have a Website Setup, you will need to add some variables to the site in order to get it to run. The variables to be aware of are:

- `DbProvider` This sets the database type you are using. Supported types and their values are `SqlServer`, `MySql`, or `PostreSql`
- `IdentityConnectionString` The connection string for your Identity database (users)
- `IdentityServerConnectionString` The connection string for your IdentityServer database (clients, resources & grants).
- `AuthorityUrl` Url of the IdentityServer installation
- `UiUrl` Url of the AdminUI frontend (the idxui container)
- `RequireHttpsMetadata` Set to `true` or `false` if you want to ensure IdentityServer discovery endpoint uses TLS. Must be true for production
- `IdentityDatabaseToMigrateConnectionString` (optional) The connection string of your existing ASP.NET Core Identity Entity Framework database that will be migrated to the database used in `IdentityConnectionString` (this must not be equal to `IdentityConnectionString`).

For a full list of configuration settings, see Configuring AdminUI.

#### Migrations

Whether you are installing AdminUI for the first time or upgrading to the latest version of AdminUI, you will need to run some form of migrations to ensure your databases are inline with AdminUI, if you want AdminUI to handle all migrations you can navigate to the folder where your AdminUI site is and run the following command.

    dotnet IdentityExpress.Manager.UI.Duende.dll -migrate all

It will generate the databases for you using the connection strings configured in your AdminUI appsettings.json.

If you are planning on managing some of the database migrations yourself, or want more options when setting up your databases, then there are more fine tune migrations you can do, for more info see our full migration docs here

## Troubleshooting

If you're having issues, we recommend you first enable logging for the API site.

Previous Next