This is an Administrator Panel for IdentityServer4. It's available in 2 versions: Light and Full. See below the differences.
The new version, written in ASP.NET Core 3.0, changed a lot. So before upgrade read differences between light and full version. If have the past version, don't worry. It's the same project at all. But splited repo's.
If you know the differences between Light and Full. Check the installation instructions below. If wanna understand, check more here atPresentation section.
Go to this repo and follow instructions there.
You will need to create a Client and API resources in your IdentityServer4. At the end of this section there are some shortcuts.
- Download/Clone or Fork this repository.
- Open
environment.ts
and change settings for you SSO.For more details check angular-oauth2-oidcexport const environment = { production: false, IssuerUri: "http://localhost:5000", ResourceServer: "http://localhost:5002/", RequireHttps: false, Uri: "http://localhost:4300", defaultTheme: "E", version: "3.0.0" };
- Open
docker-compose.yml
and change Api Settings:# ############################# # # Management API - Light # ############################# jpproject-light-api: image: jpproject-light-api build: context: . dockerfile: api-light.dockerfile environment: ASPNETCORE_ENVIRONMENT: "Development" CUSTOMCONNSTR_SSOConnection: "<you database connstring>" ApplicationSettings:Authority: "<you sso uri>" ApplicationSettings:DatabaseType: SqlServer # Choose one: SqlServer | MySql | Postgre | Sqlite ApplicationSettings:RequireHttpsMetadata: 'false' ApplicationSettings:ApiName: "<api name>" ApplicationSettings:ApiSecret: "<your api secret>"
- Build compose by:
docker-compose up
Shortcuts:
You must have these 2 configurations at you IdentityServer4
Client configuration
/*
* JP Project ID4 Admin Client
*/
new Client
{
ClientId = "IS4-Admin",
ClientName = "IS4-Admin",
ClientUri = "http://localhost:4300",
AllowedGrantTypes = GrantTypes.Code,
AllowAccessTokensViaBrowser = false,
RequireConsent = true,
RequirePkce = true,
AllowPlainTextPkce = false,
RequireClientSecret = false,
RedirectUris = new[] {
"http://localhost:4300/login-callback",
"http://localhost:4300/silent-refresh.html"
},
AllowedCorsOrigins = { "http://localhost:4300" },
LogoUri = "https://jpproject.azurewebsites.net/sso/images/brand/logo.png",
PostLogoutRedirectUris = {"http://localhost:4300",},
AllowedScopes =
{
IdentityServerConstants.StandardScopes.OpenId,
IdentityServerConstants.StandardScopes.Profile,
IdentityServerConstants.StandardScopes.Email,
"jp_api.is4",
"role"
}
},
Api resource configuration
new ApiResource
{
Name = "jp_api",
DisplayName = "JP API",
Description = "OAuth2 Server Management Api",
ApiSecrets = { new Secret(":}sFUz}Pjc]K4yiW>vDjM,+:tq=U989dxw=Vy*ViKrP+bjNbWC3B3&kE23Z=%#Jr".Sha256()) },
UserClaims =
{
IdentityServerConstants.StandardScopes.OpenId,
IdentityServerConstants.StandardScopes.Profile,
IdentityServerConstants.StandardScopes.Email,
"is4-rights",
"username",
"roles"
},
Scopes =
{
new Scope()
{
Name = "jp_api.is4",
DisplayName = "OAuth2 Server",
Description = "Manage mode to IS4",
Required = true
}
}
}
Identity Resource:
new IdentityResource("role", new List<string>(){"roles"}),
JP Project Admin Panel is an administrative panel for IdentityServer4. You can manage Clients, Api Resources, Identity Resources and so on. There are 2 versions.
The full version is for those who don't have an IdentityServer up and running. So you can download the JP Project SSO and with this admin panel you will be able to manage Users and IdentityServer4.
Go to this repo instead
For those who already have an IdentityServer4. This panel has features to manage an existing IdentityServer4 database.
Here some screenshots
Check our full demo online.
Check it now at Admin Panel.
You can check also SSO and Profile Manager
New users are readonly
Check below how it was developed.
Written in ASP.NET Core and Angular 8. The main goal of project is to be a Management Ecosystem for IdentityServer4. Helping Startup's and Organization to Speed Up the Setup of User Management. Helping teams and entrepreneurs to achieve the company's primary purpose: Maximize shareholder value.
- Angular 8
- Rich UI interface
- ASP.NET Core 3.0
- ASP.NET WebApi Core
- MySql Ready
- Sql Ready
- Postgree Ready
- SQLite Ready
- Entity Framework Core
- .NET Core Native DI
- AutoMapper
- FluentValidator
- MediatR
- Swagger UI
- High customizable
- Translation for 7 different languages
- Architecture with responsibility separation concerns, SOLID and Clean Code
- Domain Driven Design (Layers and Domain Model Pattern)
- Domain Events
- Domain Notification
- CQRS (Imediate Consistency)
- Event Sourcing
- Unit of Work
- Repository and Generic Repository
Do you love it? give us a Star!
Jp Project is built against ASP.NET Core 3.0.
- Install the latest .NET Core 2.2 SDK
src/JpProject.AdminUi.sln
Contains the API
For UI's use VSCode.
- AdminUI -> Inside VSCode open folder
rootFolder/src/Frontend/Jp.AdminUI
, then terminal andnpm install && npm start
Wait for ng to complete his proccess then go to http://localhost:4300!
Any doubts? Go to docs
Wanna start? please Read the docs
Thank you all!
We'll love it! Please Read the docs
If you need help building or running your Jp Project platform There are several ways we can help you out.
- Menu translation
- Email support for full version
- Email configuration settings (SMTP / Password) for full version
- ASP.NET Core 3.0 support
- Separated repositories, for better management. Improving tests, integration tests. And to support more scenarios.
Breaking change: Argon2 password hashing. Be careful before update. If you are using the old version all users must need to update their passwords.
- Bug fixes:
- Tooltip for admin-ui
- Argon2 Password Hasher
- Show version at footer
Check Changelog.md for a complete list of changes.
- Code coverage
- UI for Device codes
- CI with SonarCloud
- E-mail template management
- Blob service management
Jp Project is Open Source software and is released under the MIT license. This license allow the use of Jp Project in free and commercial applications and libraries without restrictions.