### Clone IdentityServer4.Admin Repository Source: https://github.com/skoruba/identityserver4.admin/blob/master/docs/Configure-Ubuntu-PostgreSQL-Tutorial.md Clones the IdentityServer4.Admin project from GitHub. ```bash git clone https://github.com/skoruba/IdentityServer4.Admin ``` -------------------------------- ### Install .NET Core 3.1 SDK on Ubuntu Source: https://github.com/skoruba/identityserver4.admin/blob/master/docs/Configure-Ubuntu-PostgreSQL-Tutorial.md Installs the .NET Core 3.1 SDK on Ubuntu 19.04 using Microsoft's package repository. ```bash wget -q https://packages.microsoft.com/config/ubuntu/19.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb sudo dpkg -i packages-microsoft-prod.deb sudo apt-get update sudo apt-get install apt-transport-https sudo apt-get update sudo apt-get install dotnet-sdk-3.1 ``` -------------------------------- ### PostgreSQL Connection String Source: https://github.com/skoruba/identityserver4.admin/blob/master/docs/Configure-Ubuntu-PostgreSQL-Tutorial.md Example connection string for PostgreSQL in appsettings.json. ```json Server=localhost; User Id=postgres; Database=is4admin; Port=5432; Password=postgres; SSL Mode=Prefer; Trust Server Certificate=true ``` -------------------------------- ### Install PostgreSQL on Ubuntu Source: https://github.com/skoruba/identityserver4.admin/blob/master/docs/Configure-Ubuntu-PostgreSQL-Tutorial.md Installs PostgreSQL and its contrib package on Ubuntu 18.04. ```bash sudo apt update sudo apt install postgresql postgresql-contrib ``` -------------------------------- ### Run STS and Admin Applications Source: https://github.com/skoruba/identityserver4.admin/blob/master/docs/Configure-Ubuntu-PostgreSQL-Tutorial.md Commands to run the STS and Admin applications with database seeding. ```bash # Run STS dotnet run # Run Admin with seeding dotnet run /seed ``` -------------------------------- ### Integration Testing Setup Source: https://github.com/skoruba/identityserver4.admin/blob/master/README.md Details the configuration of the `StartupTest` class used for integration tests, including the setup for an in-memory database, cookie authentication with a fake login URL, and middleware for testing authentication. ```markdown ## Tests - The solution contains unit and integration tests. Integration tests use StartupTest class which is pre-configured with: - `DbContext` contains setup for InMemory database - `Authentication` is setup for `CookieAuthentication` - with fake login url for testing purpose only - `AuthenticatedTestRequestMiddleware` - middleware for testing of authentication. ``` -------------------------------- ### Client Libraries: Install Dependencies Source: https://github.com/skoruba/identityserver4.admin/blob/master/README.md Installs Node.js dependencies for the client-side projects using npm, preparing them for bundling and minification. ```bash cd src/Skoruba.IdentityServer4.Admin npm install cd src/Skoruba.IdentityServer4.STS.Identity npm install ``` -------------------------------- ### Audit Logging Setup in Admin UI Source: https://github.com/skoruba/identityserver4.admin/blob/master/README.md C# code demonstrating the setup of Audit Logging in the Admin UI project, including configuration of sources, subject identifiers, and sinks. ```cs services.AddAuditLogging(options => { options.Source = auditLoggingConfiguration.Source; }) .AddDefaultHttpEventData(subjectOptions => { subjectOptions.SubjectIdentifierClaim = auditLoggingConfiguration.SubjectIdentifierClaim; subjectOptions.SubjectNameClaim = auditLoggingConfiguration.SubjectNameClaim; }, actionOptions => { actionOptions.IncludeFormVariables = auditLoggingConfiguration.IncludeFormVariables; }) .AddAuditSinks>(); // repository for library services.AddTransient, AuditLoggingRepository>(); // repository and service for admin services.AddTransient, AuditLogRepository>(); services.AddTransient>(); ``` -------------------------------- ### MkCert: Install Root Certificate Source: https://github.com/skoruba/identityserver4.admin/blob/master/README.md Installs the mkcert root certificate authority on the system, which is necessary for generating trusted local SSL certificates. Requires administrator privileges on Windows. ```bash cd shared/nginx/certs mkcert --install copy $env:LOCALAPPDATA\mkcert\rootCA.pem ./cacerts.pem copy $env:LOCALAPPDATA\mkcert\rootCA.pem ./cacerts.crt ``` -------------------------------- ### Register IdentityServer4 Stores with DbContexts Source: https://github.com/skoruba/identityserver4.admin/blob/master/docs/Configure-Administration.md An extension method defined in `StartupHelpers.cs` for registering DbContexts for IdentityServer4 stores. ```csharp AddIdentityServerStoresWithDbContexts(configuration); ``` -------------------------------- ### Docker Compose: Build and Run Source: https://github.com/skoruba/identityserver4.admin/blob/master/README.md Builds the Docker images defined in the docker-compose files and starts the services in detached mode, creating a running environment for the application. ```bash docker-compose build docker-compose up -d ``` -------------------------------- ### Install Skoruba IdentityServer4 Admin Template Source: https://github.com/skoruba/identityserver4.admin/blob/master/README.md Installs the dotnet new template for Skoruba.IdentityServer4.Admin version 2.1.0, which is compatible with IdentityServer4 version 4. Ensure you have the latest .NET 6 SDK installed. ```sh dotnet new -i Skoruba.IdentityServer4.Admin.Templates::2.1.0 ``` -------------------------------- ### Configure PostgreSQL Provider Type Source: https://github.com/skoruba/identityserver4.admin/blob/master/docs/Configure-Ubuntu-PostgreSQL-Tutorial.md Sets the database provider to PostgreSQL in appsettings.json. ```json "DatabaseProviderConfiguration": { "ProviderType": "PostgreSQL" } ``` -------------------------------- ### Configure Services for IdentityServer4 Management Source: https://github.com/skoruba/identityserver4.admin/blob/master/docs/Configure-Administration.md Registers all necessary dependencies, such as repositories and services, for managing IdentityServer4 configuration and operational stores. Requires injecting the relevant DbContexts. ```csharp services.AddAdminServices(); ``` -------------------------------- ### Configure MVC and Localization Source: https://github.com/skoruba/identityserver4.admin/blob/master/docs/Configure-Administration.md Registers MVC and Localization services. This extension method utilizes types for Asp.Net Core Identity for generic controllers, enabling internationalization and a robust MVC setup. ```csharp services.AddMvcWithLocalization(); ``` -------------------------------- ### Change PostgreSQL User Password Source: https://github.com/skoruba/identityserver4.admin/blob/master/docs/Configure-Ubuntu-PostgreSQL-Tutorial.md Changes the password for the 'postgres' user in PostgreSQL. ```bash sudo -u postgres psql ALTER USER postgres WITH PASSWORD 'postgres'; ``` -------------------------------- ### Configure DbContexts for Admin UI Source: https://github.com/skoruba/identityserver4.admin/blob/master/docs/Configure-Administration.md Registers DbContexts for the administration UI, including Identity, Logging, Configuration, and Persisted Grants. This helper method centralizes the DbContext setup for the entire administration solution. ```csharp services.AddDbContexts(HostingEnvironment, Configuration); ``` -------------------------------- ### Update appSettings.json for Azure Deployment Source: https://github.com/skoruba/identityserver4.admin/blob/master/docs/Configure-Azure-Deploy.md This JSON snippet shows the configuration section in `appSettings.json` that needs to be updated with Azure-specific URLs for the IdentityServer and Admin panel. These URLs are crucial for the application to function correctly in the Azure environment. ```json { "AdminConfiguration": { "IdentityAdminBaseUrl": "https://is4-admin.azurewebsites.net", "IdentityAdminRedirectUri": "https://is4-admin.azurewebsites.net/signin-oidc", "IdentityServerBaseUrl": "https://is4-sts.azurewebsites.net" } } ``` -------------------------------- ### Generate PFX Certificate using OpenSSL Source: https://github.com/skoruba/identityserver4.admin/blob/master/docs/Configure-Azure-Deploy.md This bash script demonstrates how to generate a PFX certificate using OpenSSL. It involves creating a private key, a certificate signing request, and then exporting them into a PFX file. This certificate is used for signing tokens in the IdentityServer. ```bash openssl genrsa 2048 > private.pem openssl req -x509 -new -key private.pem -out public.pem openssl pkcs12 -export -in public.pem -inkey private.pem -out mycert.pfx ``` -------------------------------- ### Configure Authorization Policies Source: https://github.com/skoruba/identityserver4.admin/blob/master/docs/Configure-Administration.md Sets up a base authorization policy for the entire Admin UI. This method is also a suitable place to register additional policies for extending authorization. ```csharp services.AddAuthorizationPolicies(); ``` -------------------------------- ### Configure Localization and MVC Source: https://github.com/skoruba/identityserver4.admin/blob/master/docs/Configure-Administration.md Registers MVC and Localization services. The same types used for Asp.Net Core Identity are injected into generic Controllers. ```csharp services.AddMvcWithLocalization, string, RoleDto, string, string, string, UserIdentity, UserIdentityRole, string, UserIdentityUserClaim, UserIdentityUserRole, UserIdentityUserLogin, UserIdentityRoleClaim, UserIdentityUserToken, UsersDto, string>, RolesDto, string>, UserRolesDto, string, string>, UserClaimsDto, UserProviderDto, UserProvidersDto, UserChangePasswordDto, RoleClaimsDto>(); ``` -------------------------------- ### Azure App Service Application Setting for Certificates Source: https://github.com/skoruba/identityserver4.admin/blob/master/docs/Configure-Azure-Deploy.md This entry describes the application setting to be configured in Azure App Service to load certificates. Setting `WEBSITE_LOAD_CERTIFICATES` to `*` allows the App Service to load all available certificates, including the PFX certificate uploaded for signing tokens. ```APIDOC Application Setting: Name: WEBSITE_LOAD_CERTIFICATES Value: * Description: This setting enables the Azure App Service to load all available certificates, which is necessary for the IdentityServer to access the uploaded PFX certificate for signing tokens. ``` -------------------------------- ### Configure Authentication for Admin UI Source: https://github.com/skoruba/identityserver4.admin/blob/master/docs/Configure-Administration.md Sets up authentication services for the administration UI, typically using OpenIdConnect middleware connected to IdentityServer4. For staging, cookie middleware is used for fake authentication. ```csharp services.AddAuthenticationServices(HostingEnvironment, rootConfiguration.AdminConfiguration); ``` -------------------------------- ### Audit Event Logging Example Source: https://github.com/skoruba/identityserver4.admin/blob/master/README.md Demonstrates how audit events are logged within the business logic layer. The `LogEventAsync` method is called with specific event types, such as `ClientDeletedEvent`. ```csharp await AuditEventLogger.LogEventAsync(new ClientDeletedEvent(client)); ``` -------------------------------- ### Configure Certificate for Signing Tokens Source: https://github.com/skoruba/identityserver4.admin/blob/master/docs/Configure-Azure-Deploy.md This JSON snippet shows the `CertificateConfiguration` section in `appsettings.json` that needs to be updated for using a certificate stored in Azure. It specifies whether to use a temporary key, the certificate store location, validity, and importantly, the thumbprint of the signing certificate obtained from Azure. ```json { "CertificateConfiguration": { "UseTemporarySigningKeyForDevelopment": false, "CertificateStoreLocation": "CurrentUser", "CertificateValidOnly": false, "UseSigningCertificateThumbprint": true, "SigningCertificateThumbprint": "" } } ``` -------------------------------- ### Configure IdentityServer4 and Asp.Net Core Identity for STS Source: https://github.com/skoruba/identityserver4.admin/blob/master/docs/Configure-Administration.md Registers Asp.Net Core Identity and IdentityServer4, including support for external providers like GitHub. This configuration is essential for the Security Token Service. ```csharp services.AddAuthenticationServices(Environment, Configuration, Logger); ``` -------------------------------- ### Configure DbContext for STS Identity Source: https://github.com/skoruba/identityserver4.admin/blob/master/docs/Configure-Administration.md Defines and registers the DbContext specifically for Asp.Net Core Identity within the Security Token Service (STS). ```csharp services.AddIdentityDbContext(Configuration); ``` -------------------------------- ### Configure Asp.Net Core Identity Services Source: https://github.com/skoruba/identityserver4.admin/blob/master/docs/Configure-Administration.md Registers all dependencies for managing Asp.Net Core Identity data. This is the primary location to modify the Identity model, such as changing the primary key type. ```csharp services.AddAdminAspNetIdentityServices, string, RoleDto, string, string, string, UserIdentity, UserIdentityRole, string, UserIdentityUserClaim, UserIdentityUserRole, UserIdentityUserLogin, UserIdentityRoleClaim, UserIdentityUserToken, UsersDto, string>, RolesDto, string>, UserRolesDto, string, string>, UserClaimsDto, UserProviderDto, UserProvidersDto, UserChangePasswordDto, RoleClaimsDto, UserClaimDto, RoleClaimDto>(); ``` -------------------------------- ### Project Template CLI Command Source: https://github.com/skoruba/identityserver4.admin/blob/master/README.md Demonstrates the command to create a project template using the .NET CLI for IdentityServer4 administration. ```bash dotnet new template ``` -------------------------------- ### Project Template CLI Command - IdentityServer4 Only Source: https://github.com/skoruba/identityserver4.admin/blob/master/README.md Demonstrates the command to create a project template using the .NET CLI for IdentityServer4 administration, specifically excluding Asp.Net Core Identity. ```bash dotnet new template ``` -------------------------------- ### Create New Skoruba IdentityServer4 Admin Project Source: https://github.com/skoruba/identityserver4.admin/blob/master/README.md Creates a new project using the Skoruba IdentityServer4 Admin template with specified parameters for project name, title, admin credentials, client ID, client secret, and Docker support. ```sh dotnet new skoruba.is4admin --name MyProject --title MyProject --adminemail "admin@example.com" --adminpassword "Pa$$word123" --adminrole MyRole --adminclientid MyClientId --adminclientsecret MyClientSecret --dockersupport true ``` -------------------------------- ### Project Template Options Source: https://github.com/skoruba/identityserver4.admin/blob/master/README.md Lists the available options for the `skoruba.is4admin` dotnet new template, including parameters for project name, admin credentials, UI title, admin role, client configuration, and Docker support. ```APIDOC --name: [string value] for project name --adminpassword: [string value] admin password --adminemail: [string value] admin email --title: [string value] for title and footer of the administration in UI --adminrole: [string value] for name of admin role, that is used to authorize the administration --adminclientid: [string value] for client name, that is used in the IdentityServer4 configuration for admin client --adminclientsecret: [string value] for client secret, that is used in the IdentityServer4 configuration for admin client --dockersupport: [boolean value] include docker support ``` -------------------------------- ### IdentityServer4 Admin Solution Structure Overview Source: https://github.com/skoruba/identityserver4.admin/blob/master/README.md Provides a high-level overview of the Skoruba IdentityServer4 Admin project's solution structure, detailing the purpose of each major project within the solution, including the STS, Admin UI API, Admin UI, and various business logic and entity framework layers. ```markdown Project: /skoruba/identityserver4.admin ## Overview ### Solution structure: - STS: - `Skoruba.IdentityServer4.STS.Identity` - project that contains the instance of IdentityServer4 and combine these samples - [Quickstart UI for the IdentityServer4 with Asp.Net Core Identity and EF Core storage](https://github.com/IdentityServer/IdentityServer4/tree/master/samples/Quickstarts/9_Combined_AspId_and_EFStorage) and [damienbod - IdentityServer4 and Identity template](https://github.com/damienbod/IdentityServer4AspNetCoreIdentityTemplate) - Admin UI Api: - `Skoruba.IdentityServer4.Admin.Api` - project with Api for managing data of IdentityServer4 and Asp.Net Core Identity, with swagger support as well - Admin UI: - `Skoruba.IdentityServer4.Admin.UI` - ASP.NET Core MVC application that contains Admin UI - `Skoruba.IdentityServer4.Admin` - ASP.NET Core MVC application that uses Admin UI package and it's only for application bootstrap - `Skoruba.IdentityServer4.Admin.BusinessLogic` - project that contains Dtos, Repositories, Services and Mappers for the IdentityServer4 - `Skoruba.IdentityServer4.Admin.BusinessLogic.Identity` - project that contains Dtos, Repositories, Services and Mappers for the Asp.Net Core Identity - `Skoruba.IdentityServer4.Admin.BusinessLogic.Shared` - project that contains shared Dtos and ExceptionHandling for the Business Logic layer of the IdentityServer4 and Asp.Net Core Identity - `Skoruba.IdentityServer4.Shared` - Shared common Identity DTOS for Admin UI, Admin UI Api and STS - `Skoruba.IdentityServer4.Shared.Configuration` - Shared common layer for Admin UI, Admin UI Api and STS - `Skoruba.IdentityServer4.Admin.EntityFramework` - EF Core data layer that contains Entities for the IdentityServer4 - `Skoruba.IdentityServer4.Admin.EntityFramework.Configuration` - EF Core data layer that contains configurations - `Skoruba.IdentityServer4.Admin.EntityFramework.Identity` - EF Core data layer that contains Repositories for the Asp.Net Core Identity - `Skoruba.IdentityServer4.Admin.EntityFramework.Extensions` - project that contains extensions related to EntityFramework - `Skoruba.IdentityServer4.Admin.EntityFramework.Shared` - project that contains DbContexts for the IdentityServer4, Logging and Asp.Net Core Identity, inluding shared Identity entities - `Skoruba.IdentityServer4.Admin.EntityFramework.SqlServer` - project that contains migrations for SqlServer - `Skoruba.IdentityServer4.Admin.EntityFramework.MySql` - project that contains migrations for MySql - `Skoruba.IdentityServer4.Admin.EntityFramework.PostgreSQL` - project that contains migrations for PostgreSQL - Tests: - `Skoruba.IdentityServer4.Admin.IntegrationTests` - xUnit project that contains the integration tests for AdminUI - `Skoruba.IdentityServer4.Admin.Api.IntegrationTests` - xUnit project that contains the integration tests for AdminUI Api - `Skoruba.IdentityServer4.Admin.UnitTests` - xUnit project that contains the unit tests for AdminUI - `Skoruba.IdentityServer4.STS.IntegrationTests` - xUnit project that contains the integration tests for STS ### The admininistration contains the following sections: ![Skoruba.IdentityServer4.Admin App](docs/Images/Skoruba.IdentityServer4.Admin-Solution.png) ``` -------------------------------- ### Seed Data Options Source: https://github.com/skoruba/identityserver4.admin/blob/master/README.md Describes methods for seeding the database with initial data, including uncommenting a line in Program.cs, using dotnet CLI, or configuring SeedConfiguration in appsettings.json. Mentions the location of client and user data files. ```csharp // In Program.cs -> Main, uncomment DbMigrationHelpers.EnsureSeedData(host) // Or use dotnet CLI: dotnet run /seed // Or via SeedConfiguration in appsettings.json // Clients and Resources: identityserverdata.json // Users: identitydata.json ``` -------------------------------- ### Database Connection Strings Source: https://github.com/skoruba/identityserver4.admin/blob/master/README.md Provides sample connection strings for PostgreSQL and MySQL databases used with Entity Framework Core. ```APIDOC PostgreSQL: Server=localhost;Port=5432;Database=IdentityServer4Admin;User Id=sa;Password=#; MySql: server=localhost;database=IdentityServer4Admin;user=root;password=# ``` -------------------------------- ### Cloning the Repository Source: https://github.com/skoruba/identityserver4.admin/blob/master/README.md Command to clone the Skoruba.IdentityServer4.Admin repository from GitHub. ```sh git clone https://github.com/skoruba/IdentityServer4.Admin ``` -------------------------------- ### Theme Support Source: https://github.com/skoruba/identityserver4.admin/blob/master/README.md Details the addition of support for themes, allowing customization of the administration UI. ```APIDOC Theme Support: Implemented ``` -------------------------------- ### MkCert: Generate Local Certificates Source: https://github.com/skoruba/identityserver4.admin/blob/master/README.md Generates SSL certificates for local development domains, including wildcard subdomains, in both .crt/.key and .pfx formats for use with Nginx. ```bash cd shared/nginx/certs mkcert -cert-file skoruba.local.crt -key-file skoruba.local.key skoruba.local *.skoruba.local mkcert -pkcs12 skoruba.local.pfx skoruba.local *.skoruba.local ``` -------------------------------- ### License Information Source: https://github.com/skoruba/identityserver4.admin/blob/master/README.md Provides information about the project's licensing. ```APIDOC License: Project License: MIT Dependency License: Apache License 2.0 (for IdentityServer4.Quickstart.UI) ``` -------------------------------- ### Serilog Logging Configuration Source: https://github.com/skoruba/identityserver4.admin/blob/master/README.md Configuration for Serilog logging, specifying minimum levels and various sinks like Console, File, MSSqlServer, and Seq. ```json { "Serilog": { "MinimumLevel": { "Default": "Error", "Override": { "Skoruba": "Information" } }, "WriteTo": [ { "Name": "Console" }, { "Name": "File", "Args": { "path": "log.txt", "rollingInterval": "Day" } }, { "Name": "MSSqlServer", "Args": { "connectionString": "...", "tableName": "Log", "columnOptionsSection": { "addStandardColumns": ["LogEvent"], "removeStandardColumns": ["Properties"] } } } ] } } ``` -------------------------------- ### all-contributors Specification Source: https://github.com/skoruba/identityserver4.admin/blob/master/README.md This snippet outlines the contribution guidelines for the project, based on the all-contributors specification. It details how contributions are recognized and documented. ```APIDOC Project: /skoruba/identityserver4.admin This project follows the [all-contributors](https://github.com/kentcdodds/all-contributors) specification. Contributions of any kind are welcome! Contact and Suggestion: I am happy to share my attempt of the implementation of the administration for IdentityServer4 and ASP.NET Core Identity. Any feedback is welcome - feel free to create an issue or send me an email - [jan@skoruba.com](mailto:jan@skoruba.com). Thank you :blush: Support and Donation 🕊️: If you like my work, you can support me by donation. 👍 Paypal https://www.paypal.me/skoruba Patreon https://www.patreon.com/skoruba ``` -------------------------------- ### Theme Configuration Source: https://github.com/skoruba/identityserver4.admin/blob/master/README.md Configures the UI theme for the IdentityServer4 Admin. Supports Bootswatch themes by name or a custom CSS URL. Custom themes override standard themes. Ensure CSP is configured for external resources. ```json { "AdminConfiguration": { "Theme": "united", "CustomThemeCss": null } } ``` -------------------------------- ### Resource Files for Localization Source: https://github.com/skoruba/identityserver4.admin/blob/master/README.md Explains that all labels and messages for localization are stored in `.resx` files located in the `/Resources` directory. It also provides links to external documentation for client, API resource, and identity resource label descriptions. ```markdown - All labels and messages are stored in the resources `.resx` - locatated in `/Resources` - Client label descriptions from - http://docs.identityserver.io/en/latest/reference/client.html - Api Resource label descriptions from - http://docs.identityserver.io/en/latest/reference/api_resource.html - Identity Resource label descriptions from - http://docs.identityserver.io/en/latest/reference/identity_resource.html ``` -------------------------------- ### Key Vault Integration for Signing Keys Source: https://github.com/skoruba/identityserver4.admin/blob/master/README.md Details the support for loading signing keys from Azure Key Vault, enhancing security for IdentityServer. ```APIDOC Azure Key Vault Signing Key Loading: Supported ``` -------------------------------- ### Docker Support Source: https://github.com/skoruba/identityserver4.admin/blob/master/README.md Indicates that the project includes Docker support, facilitating containerized deployment. ```APIDOC Docker Support: Implemented ``` -------------------------------- ### API and Swagger Configuration Source: https://github.com/skoruba/identityserver4.admin/blob/master/README.md Configures settings for the Admin API and Swagger UI. Includes the IdentityServer base URL, Swagger UI client ID, and API name. Swagger UI is typically available at `/swagger`. ```json { "AdminApiConfiguration": { "IdentityServerBaseUrl": "https://localhost:44310", "OidcSwaggerUIClientId": "skoruba_identity_admin_api_swaggerui", "OidcApiName": "skoruba_identity_admin_api" } } ``` -------------------------------- ### External Providers Configuration Source: https://github.com/skoruba/identityserver4.admin/blob/master/README.md Configures external authentication providers like GitHub and Azure AD. Requires client IDs, secrets, and tenant information. The `AddExternalProviders` method in `StartupHelpers.cs` handles integration. Supports extending with other providers from ASP.NET Core. ```json { "ExternalProvidersConfiguration": { "UseGitHubProvider": false, "GitHubClientId": "", "GitHubClientSecret": "", "UseAzureAdProvider": false, "AzureAdClientId": "", "AzureAdTenantId": "", "AzureInstance": "", "AzureAdSecret": "", "AzureAdCallbackPath": "", "AzureDomain": "" } } ``` -------------------------------- ### UI Extraction to NuGet Package Source: https://github.com/skoruba/identityserver4.admin/blob/master/README.md Highlights the feature of extracting the UI part of the administration into a separate NuGet package for reusability and modularity. ```APIDOC UI Extraction to NuGet Package: Implemented ``` -------------------------------- ### Gulp Build Tasks Source: https://github.com/skoruba/identityserver4.admin/blob/master/README.md Defines various Gulp tasks for managing front-end assets, including copying fonts, compiling and minifying CSS/SASS, bundling and minifying JavaScript, cleaning the output directory, and watching for file changes. ```javascript gulp fonts - copy fonts to the `dist` folder gulp styles - minify CSS, compile SASS to CSS gulp scripts - bundle and minify JS gulp clean - remove the `dist` folder gulp build - run the `styles` and `scripts` tasks gulp watch - watch all changes in all sass files ``` -------------------------------- ### Entity Framework Core: Add Migrations Source: https://github.com/skoruba/identityserver4.admin/blob/master/README.md Executes a PowerShell script to add new Entity Framework Core migrations to the project. Requires specifying the migration name and the database provider. ```powershell .\add-migrations.ps1 -migration DbInit -migrationProviderName SqlServer ``` -------------------------------- ### Swagger UI Endpoints Source: https://github.com/skoruba/identityserver4.admin/blob/master/README.md Provides an overview of the available API endpoints as exposed through Swagger UI. The image shows various operations related to IdentityServer administration. ```APIDOC Swagger UI Endpoints: (Image Preview: docs/Images/Admin-Swagger-UI.PNG) - The Swagger UI provides access to various API endpoints for managing IdentityServer. - Example endpoints might include operations for clients, users, scopes, and more. ``` -------------------------------- ### SendGrid Email Configuration Source: https://github.com/skoruba/identityserver4.admin/blob/master/README.md Configures email sending using SendGrid. Requires an API key, source email, and source name. ```json { "SendgridConfiguration": { "ApiKey": "", "SourceEmail": "", "SourceName": "" } } ``` -------------------------------- ### IdentityServer4 Version Update Source: https://github.com/skoruba/identityserver4.admin/blob/master/README.md Indicates the project has been updated to support IdentityServer4 version 4. ```APIDOC IdentityServer4 Version: Updated to 4.x ``` -------------------------------- ### IdentityServer4 Admin - Client Management Source: https://github.com/skoruba/identityserver4.admin/blob/master/README.md Manages client configurations within IdentityServer4. Supports various client types including Web Applications, SPAs, Native Applications, Machine/Robot clients, and TV/Limited-Input Devices. Includes actions for adding, updating, cloning, and removing clients, as well as managing associated entities like CORS origins, grant types, redirect URIs, scopes, and secrets. ```APIDOC Client Management: Actions: Add, Update, Clone, Remove Entities: - Client Cors Origins - Client Grant Types - Client IdP Restrictions - Client Post Logout Redirect Uris - Client Properties - Client Redirect Uris - Client Scopes - Client Secrets ``` -------------------------------- ### Database Provider Configuration Source: https://github.com/skoruba/identityserver4.admin/blob/master/README.md Configures the active database provider for Entity Framework Core by setting the 'ProviderType' in the appsettings.json file. ```json { "DatabaseProviderConfiguration": { "ProviderType": "SqlServer" } } ``` -------------------------------- ### SMTP Email Configuration Source: https://github.com/skoruba/identityserver4.admin/blob/master/README.md Configures email sending using SMTP. Requires sender details including 'From' address, host, login, and password. ```json { "SmtpConfiguration": { "From": "", "Host": "", "Login": "", "Password": "" } } ``` -------------------------------- ### User Registration Configuration Source: https://github.com/skoruba/identityserver4.admin/blob/master/README.md Configures whether user registration is enabled in the STS Identity project. Defaults to true. ```json { "RegisterConfiguration": { "Enabled": false } } ``` -------------------------------- ### DNS Configuration for Docker Host Source: https://github.com/skoruba/identityserver4.admin/blob/master/README.md Modifies the hosts file on Linux or Windows to resolve local domain names to the local machine, enabling proper functioning of services within Docker containers. ```custom 127.0.0.1 skoruba.local sts.skoruba.local admin.skoruba.local admin-api.skoruba.local ``` -------------------------------- ### IdentityServer4 Admin - Identity Resource Management Source: https://github.com/skoruba/identityserver4.admin/blob/master/README.md Manages identity resources for IdentityServer4. Supports adding, updating, and removing identity resources, along with their associated claims and properties. ```APIDOC Identity Resources Management: Actions: Add, Update, Remove Entities: - Identity Claims - Identity Properties ``` -------------------------------- ### Key Vault Integration for Data Protection Source: https://github.com/skoruba/identityserver4.admin/blob/master/README.md Details the support for protecting keys used by DataProtection from Azure Key Vault. ```APIDOC Azure Key Vault DataProtection Key Protection: Supported ``` -------------------------------- ### Azure Key Vault Configuration Source: https://github.com/skoruba/identityserver4.admin/blob/master/README.md Configuration settings for integrating with Azure Key Vault, including endpoint, client credentials, and usage for application secrets, data protection, and IdentityServer certificates. ```json { "AzureKeyVaultConfiguration": { "AzureKeyVaultEndpoint": "", "ClientId": "", "ClientSecret": "", "UseClientCredentials": true, "ReadConfigurationFromKeyVault": true, "DataProtectionKeyIdentifier": "", "IdentityServerCertificateName": "" } } ``` -------------------------------- ### Asp.Net Core Identity - User Management Source: https://github.com/skoruba/identityserver4.admin/blob/master/README.md Manages users within an Asp.Net Core Identity system. Supports adding, updating, and deleting users, as well as managing their associated roles, logins, and claims. ```APIDOC Asp.Net Core Identity User Management: Actions: Add, Update, Delete Entities: - User Roles - User Logins - User Claims ``` -------------------------------- ### IdentityServer4 Admin - API Resource Management Source: https://github.com/skoruba/identityserver4.admin/blob/master/README.md Manages API resources for IdentityServer4. Allows for the addition, updating, and removal of API resources and their associated properties, including claims, scopes, and secrets. ```APIDOC API Resources Management: Actions: Add, Update, Remove Entities: - Api Claims - Api Scopes - Api Scope Claims - Api Secrets - Api Properties ``` -------------------------------- ### Data Protection with Azure Key Vault Source: https://github.com/skoruba/identityserver4.admin/blob/master/README.md Configuration to enable Azure Key Vault for data protection, including the key identifier. ```json { "DataProtectionConfiguration": { "ProtectKeysWithAzureKeyVault": false }, "AzureKeyVaultConfiguration": { "DataProtectionKeyIdentifier": "" } } ``` -------------------------------- ### Content Security Policy (CSP) Trusted Domains Source: https://github.com/skoruba/identityserver4.admin/blob/master/README.md Configures trusted domains for Content Security Policy. This is necessary when using external resources like favicons or logos hosted on different domains to prevent CSP errors. ```json { "CspTrustedDomains": [ "google.com", "mydomain.com" ] } ``` -------------------------------- ### Asp.Net Core Identity - Role Management Source: https://github.com/skoruba/identityserver4.admin/blob/master/README.md Manages roles within an Asp.Net Core Identity system. Supports adding, updating, and deleting roles, as well as managing their associated claims. ```APIDOC Asp.Net Core Identity Role Management: Actions: Add, Update, Delete Entities: - Role Claims ``` -------------------------------- ### Login Resolution Policy Source: https://github.com/skoruba/identityserver4.admin/blob/master/README.md Configures the login resolution policy in the STS Identity project. Allows specifying whether to use 'Username' or 'Email' for user login. ```json { "LoginConfiguration": { "ResolutionPolicy": "Username" } } ``` ```json { "LoginConfiguration": { "ResolutionPolicy": "Email" } } ``` -------------------------------- ### Audit Logging Configuration Source: https://github.com/skoruba/identityserver4.admin/blob/master/README.md Configures audit logging for the IdentityServer4 Admin. Specifies the source, subject identifier claim, subject name claim, and whether to include form variables in the logs. Audit events are logged using `AuditEventLogger.LogEventAsync` and stored in the `dbo.AuditLog` table. ```json { "AuditLoggingConfiguration": { "Source": "IdentityServer.Admin.Web", "SubjectIdentifierClaim": "sub", "SubjectNameClaim": "name", "IncludeFormVariables": false } } ``` === COMPLETE CONTENT === This response contains all available snippets from this library. No additional content exists. Do not make further requests.