## 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

### Configuring AdminUI

- -Configuring via Environment Variables
- -Running AdminUI On a Different Port
- -Running AdminUI On a Different Path
- -Using Nuget package
- -Using Zips
- -Using Docker
- -Example appsettings.json:

AdminUI configuration is set using environment variables and appsettings.json. The structure of AdminUIs settings is defined in AdminUI Settings.

### Configuring via Environment Variables

Environment variables may be set in many different way depending on you deployment strategy, this could be via any cloud hosting platform, docker compose files, etc... Examples of this can be

Note: Environments variables are nested with either __ (Linux environments) or : (Windows environments). E.g: `DataProtection__Persistence__Type` or `DataProtection:Persistence:Type`

## Running AdminUI On a Different Port

If you need to configure the ports for the website you can add the following section to your appsettings.json file:

      "Kestrel": {
        "Endpoints": {
          "Http": {
            //Your new Url Here
            "Url": "http://localhost:5020"
          }
        }
      }

If you would like to see all possible config options for the Kestrel property you can find them here.

## Running AdminUI On a Different Path

If you are not running AdminUI from the root URL (e.g., using a path like https://generalweb/myadminui), an additional step is required. This is necessary because the index.html file, from which the SPA starts running, has a default reference to the root of the URL:

    <base href="/">

This refers to an HTML path, so adding a full stop before the slash will not work in all the cases. Instead, you need to update the href with the AdminUI path. The specific steps for this vary depending on how you deploy AdminUI:

### Using Nuget package

You need to include the `AdminUiPath` property in your csproj file. This property will overwrite the base href after building the index.html file. Using the example mentioned earlier (https://generalweb/myadminui), the configuration would follow this schema:

    <Project>
      <PropertyGroup>
          <AdminUiPath>/myadminui/</AdminUiPath>
      </PropertyGroup>
    </Project>

Remember to include a slash at the end of the path. This has to be done from the csproj (build pipeline) as the Nuget AdminUI will replace the html files on build.

### Using Zips

In this case, manually change the path in the index.html file located in the wwwroot folder of your AdminUI. Do not confuse it with the parent wwwroot that holds the AdminUI folder and other apps. Following the example (https://generalweb/myadminui), the updated line should be:

    <base href="/myadminui/">

Remember to include a slash at the end of the path.

### Using Docker

In the AdminUI Dockerfile, include the following command changing "myadminui" with your own path:

    sed -i 's/<base href="\/">/<base href="\/myadminui\/">/' /wwwroot/admin/index.html

This has to be done from Docker as the Nuget AdminUI will replace the html files on build. Remember to include a slash at the end of the path. Also, notice the forward slashes are escaped with a backslash.

## Example appsettings.json:

Below is an example of what your appsettings.json may look like with the minimal required settings to get AdminUI running. If you require further configuration we have a detailed list of configuration settings.

    {
      "UiUrl": "http://localhost:5000",
      "AuthorityUrl": "https://localhost:5003",

      "AdminUIClientSecret": "dev",

      "DbProvider": "SqlServer",
      "IdentityConnectionString": "Server=localhost;User Id=AdminUI;Password=Password123!;Database=IdentityExpressDb;",
      "IdentityServerConnectionString": "Server=localhost;User Id=AdminUI;Password=Password123!;Database=IdentityExpressDb;",

      "LicenseKey": "*** Enter License Key Here ***"
    }

Previous Next