All Projects β†’ brunohbrito β†’ Jpproject.identityserver4.sso

brunohbrito / Jpproject.identityserver4.sso

Licence: mit
πŸ”’ ASP.NET Core 3.1 Open Source SSO. Built within IdentityServer4 πŸ”‘

Projects that are alternatives of or similar to Jpproject.identityserver4.sso

Jpproject.identityserver4.adminui
πŸ”§ ASP.NET Core 3 & Angular 8 Administration Panel for πŸ’žIdentityServer4 and ASP.NET Core Identity
Stars: ✭ 717 (+140.6%)
Mutual labels:  asp-net-core, oauth2, openid-connect, sso, identityserver4
Identityserver4
OpenID Connect and OAuth 2.0 Framework for ASP.NET Core
Stars: ✭ 8,428 (+2728.19%)
Mutual labels:  oauth2, openid-connect, identityserver4
Angularaspnetcoreoauth
Sample project demonstrating user authentication and identity with Angular, Asp.Net Core and IdentityServer4
Stars: ✭ 268 (-10.07%)
Mutual labels:  oauth2, openid-connect, identityserver4
Hydra
OpenID Certifiedβ„’ OpenID Connect and OAuth Provider written in Go - cloud native, security-first, open source API security for your infrastructure. SDKs for any language. Compatible with MITREid.
Stars: ✭ 11,884 (+3887.92%)
Mutual labels:  oauth2, openid-connect, sso
Oxauth
OAuth 2.0 server and client; OpenID Connect Provider (OP) & UMA Authorization Server (AS)
Stars: ✭ 308 (+3.36%)
Mutual labels:  oauth2, openid-connect, sso
Identityserver4.samples
Samples for IdentityServer4
Stars: ✭ 1,002 (+236.24%)
Mutual labels:  oauth2, openid-connect, identityserver4
Identitybase
IdentityBase is a Universal Identity Platform for web, mobile and IoT built on top of IdentityServer.
Stars: ✭ 112 (-62.42%)
Mutual labels:  oauth2, openid-connect, identityserver4
Identityserver4.samples
Samples for IdentityServer4,use .net core 2.0
Stars: ✭ 561 (+88.26%)
Mutual labels:  oauth2, openid-connect, identityserver4
Oidc.example
OIDC (OpenID Connect) Example for http://openid.net/connect/
Stars: ✭ 190 (-36.24%)
Mutual labels:  oauth2, openid-connect, identityserver4
Nginx Sso
SSO authentication provider for the auth_request nginx module
Stars: ✭ 195 (-34.56%)
Mutual labels:  oauth2, openid-connect, sso
IdentityServer4.PhoneNumberAuth
Sample passwordless phone number authentication using OAuth in ASP.NET Core 2.2
Stars: ✭ 83 (-72.15%)
Mutual labels:  oauth2, asp-net-core, identityserver4
Cierge
πŸ—οΈ Passwordless OIDC authentication done right
Stars: ✭ 1,245 (+317.79%)
Mutual labels:  asp-net-core, oauth2, openid-connect
Zitadel
ZITADEL - Cloud Native Identity and Access Management
Stars: ✭ 105 (-64.77%)
Mutual labels:  oauth2, openid-connect, sso
Identityserver4 Example
Example IdentityServer 4 Implementation
Stars: ✭ 136 (-54.36%)
Mutual labels:  oauth2, openid-connect, identityserver4
Aspnetcoreid4external
external OpenID Connect Login to IdentityServer4 with AAD
Stars: ✭ 63 (-78.86%)
Mutual labels:  asp-net-core, oauth2, identityserver4
IdentityServerSample
Sample ASP.NET Core MVC and Angular apps and API using Identity Server 4
Stars: ✭ 25 (-91.61%)
Mutual labels:  oauth2, openid-connect, identityserver4
GoogleSignIn-iOS
Enables iOS and macOS apps to sign in with Google.
Stars: ✭ 198 (-33.56%)
Mutual labels:  oauth2, openid-connect
yii-auth-client
Yii Framework external authentication via OAuth and OpenID Extension
Stars: ✭ 20 (-93.29%)
Mutual labels:  oauth2, openid-connect
logto
πŸ§‘β€πŸš€ Logto helps you build the sign-in, auth, and user identity within minutes. We provide an OIDC-based identity service and the end-user experience with username, phone number, email, and social sign-in, with extendable multi-language support.
Stars: ✭ 3,421 (+1047.99%)
Mutual labels:  oauth2, openid-connect
Sitko.Core
Sitko.Core is a set of libraries to help build .NET Core applications fast
Stars: ✭ 46 (-84.56%)
Mutual labels:  asp-net-core, identityserver4

image

Build Status License Gitter

This is the full version of JP Project. It provide SSO and an Api where it's possible to manage both IdentityServer4 and ASP.NET Identity.

Installation

Windows users:

Linux users:

  • Download jpproject-docker.zip
  • Add 127.0.0.1 jpproject-sso entry to hosts file (/etc/hosts)
  • unzip and execute docker-compose up

Table of Contents

Presentation

The main goal of JP Project is to be a Management Ecosystem for IdentityServer4 and ASP.NET Identity. Helping Startup's and companies to Speed Up Microservices Environment. Providing tools for an OAuth 2.0 Server and User Management. It's highly modular and easy to change for .NET teams.

Built with IdentityServer4. An OpenID Connect and OAuth 2.0 framework for ASP.NET Core.

SSO Features:

  • Single Sign On
  • Register users
  • Recover password flow
  • MFA
  • Federation Gateway (Login by Google, Facebook.. etc)
  • Argon2 password hashing
  • CSP Headers
  • Event monitoring (For compliance scenarios)
  • Key Material Management
  • ASP.NET Core Dataprotection keys management

Admin UI is an administrative panel where it's possible to manage both OAuth2 Server and Identities.

From OAuth 2.0 panel it's possible to manage:

  • Clients
  • Identity Resources
  • Api Resources
  • Persisted Grants

For Identity panel it's possible to manage

  • Users
  • Roles
  • Events
  • Server Settings:
    • Create custom e-mail for Confirm Account and Forgot Password. It's also possible to configure E-mail settings and a blob Storage to store Users pictures (Azure Blob, AWS S3 and Filesystem).

It's open source and free. From community to community.

Screenshots

Admin UI

Login page

Consent page

Profile

How to start?

First you need to choose.

  • You need everything (Best choice)? JP Project provide a complete SSO with an Administration panel. Check it at SSO - Full Version. This version has some additional Tables:

    • Template - store e-mail template
    • Email - An instance of template with e-mail settings
    • GlobalSettings - It store settings like E-mail credentials, S3 / Azure Blob settings. Logo / Version settings
    • StoredEvent and EventDetails - Store everything that is happening in your SSO.
    • DataProtectionKeys and SecurityKeys - Special tables to store Key Material (JWK) and ASP.NET Dataprotection Keys
  • You already have an IdentityServer4 Up and running and don't wanna any changes to your current model. Only the admin panel? Go to Admin Panel - Light version

Already have an ASP.NET Identity?

These options above requires almost no code. If you already have an ASP.NET IdentitySystem it's possible to connect SSO to use your users, but requires some modifications:

  • Check Argon2 implementation at Startup.cs
  • You UserIdentity must implement IDomainUser (No additional fields will be added to your ASP.NET Identity)
    • All SSO fields are users claims
  • If your Users have custom fields, you can implement IIdentityFactory<TUser> and IRoleFactory<TUser>. These classes will help you in Register / Update user flow. It give you hability to intercept the request before add / update user or role to database.

Demo

Check our demo online.

We are online

Check it now at Admin Panel.

You can check also SSO and Profile Manager

New users are readonly

Wanna go production?

Check docs to see how to and some examples:

  • Azure App Service
  • Docker Swarm + Nginx in Linux.
  • Docker compose + nginx in linux
  • Make a PR and show how you have done your environment!

Technologies

Check below how it was developed.

Written in ASP.NET Core 3.1 and Angular 8.

  • Angular 8
  • Rich UI interface
  • ASP.NET Core 3.0
  • ASP.NET MVC Core
  • ASP.NET WebApi Core
  • ASP.NET Identity Core
  • Argon2 Password Hashing
  • MySql Ready
  • Sql Ready
  • Postgres Ready
  • SQLite Ready
  • Entity Framework Core
  • .NET Core Native DI
  • AutoMapper
  • FluentValidator
  • MediatR
  • Swagger UI
  • High customizable
  • Translation for 7 different languages

Architecture

It respect the IdentityServer4 base classes and was built in the same way, for better compatibility and minimize impacts for future versions.

Dependencies

  • Architecture with responsibility separation concerns, SOLID and Clean Code
  • Hexagonal architecture (Layers and Domain Model Pattern)
  • Domain Events
  • Domain Notification
  • CQRS (Imediate Consistency)
  • Event Sourcing
  • Unit of Work
  • Repository and Generic Repository

Key Material

The Cryptography Keys (JWKS) are stored within Database and auto refresh it every 90 days. It uses ECDSA using P-256 and SHA-256 (ES256) by default.

Data protection Keys (ASP.NET Core)

The dataprotection keys are stored with database, like Key Material.

Give a Star! ⭐

Do you love it? give us a Star!

Development Scenario

Jp Project is built against ASP.NET Core 3.1.

  • Install the latest .NET Core 3.10 SDK

src/JPProject.SSO.sln Contains SSO and API

For UI's use VSCode.

  • User Management -> Inside VSCode open folder rootFolder/src/Frontend/Jp.UserManagement, then terminal and npm install && npm start

Wait for ng to complete his proccess then go to http://localhost:5000!

Any doubts? Go to docs

Docs

Wanna start? please Read the docs

Contributors

Thank you all!

Contributing

We'll love it! Please Read the docs

Free

If you need help building or running your Jp Project platform There are several ways we can help you out.

3.2.0

  1. ASP.NET Identity - Now you can plug your running Identity to use SSO. It need to made some changes at you IdentityUser with more data, like Name, Url, Bio.
  2. Changes in Events - Now all events are attached at his Aggregate Roots. Now events are very strong source of analisys.
  3. Event search at Admin Panel
  4. OAuth 2.0 Best practices
    1. Jwa with Elliptic Curves
    2. Jwk using ECDSA using P-256 and SHA-256 (ES256) by default
    3. Changed how clients are created by default. Using Authorization Code with PKCE or Client Credentials only.
  5. Key Material management - Key material now available at Database. Now it's possible to Scale Horizontal without any "Unprocted ticket failed" error

3.0.1

  1. ASP.NET Core 3.0 support
  2. Separated repositories, for better management. Improving tests, integration tests. And to support more scenarios.

v1.4.5

Breaking change: Argon2 password hashing. Be careful before update. If you are using the old version all users must need to update their passwords.

  1. Bug fixes:
    1. Tooltip for admin-ui
  2. Argon2 Password Hasher
  3. Show version at footer

Check Changelog.md for a complete list of changes.

What comes next?

  • An easy way to insert Client, IdentityResources and Api Resources by JSON - Aiming teams who needs to take data from Staging to past it to production
  • Key Material Management from Admin UI
  • Code coverage
  • UI for Device codes
  • CI with SonarCloud

License

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.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].