@manhng

Welcome to my blog!

Identity Server 4 and SSO

March 30, 2022 13:12

1) Identity Server 4 and SSO (edit)

Duende Software

IdentityServer/IdentityServer4: OpenID Connect and OAuth 2.0 Framework for ASP.NET Core (github.com)

Identityserver4 - OpenID Connect and OAuth 2.0 Framework for ASP.NET Core

1.1) Skoruba.IdentityServer4.Admin

The administration for the IdentityServer4 and Asp.Net Core Identity

skoruba/IdentityServer4.Admin: The administration for the IdentityServer4 and Asp.Net Core Identity (github.com)

  • Skoruba.IdentityServer4.Admin
  • Skoruba.IdentityServer4.STS.Identity

Database:

  • SqlServer
  • MySql
  • PostgreSQL

Technical Stack:

  • ASP.NET Core
  • IdentityServer4.EntityFramework
  • ASP.NET Core Identity
  • XUnit
  • Fluent Assertions
  • Bogus
  • AutoMapper
  • Serilog

1.2) ASP.NET Core 3.1 Open Source SSO. Built within IdentityServer4

ASP.NET Core 3.1 Open Source SSO. Built within IdentityServer4

https://github.com/brunohbrito/JPProject.IdentityServer4.SSO

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 Core Identity.

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

2) ASP.NET Core Web API

2.1) Fullstack Hero

.NET Web API Boilerplate - fullstackhero

fullstackhero/dotnet-webapi-boilerplate: Clean Architecture Template for .NET 6.0 WebApi built with Multitenancy Support. (github.com)

Technical Stack:

  • Built on .NET 6.0
  • Follows Clean Architecture Principles
  • Domain Driven Design
  • Completely Documented at fullstackhero.net
  • Multi Tenancy Support with Finbuckle
    • Create Tenants with Multi Database / Shared Database Support
    • Activate / Deactivate Tenants on Demand
    • Upgrade Subscription of Tenants - Add More Validity Months to each tenant!
  •  Supports MySQL, MSSQL, Oracle & PostgreSQL!

2.2) ApiBoilerPlate

ApiBoilerPlate.AspNetCore - Visual Studio Marketplace

proudmonkey/ApiBoilerPlate: A simple yet organized project template for building ASP.NET Core APIs in .NET Core 3.1 (github.com)

Tools and Frameworks Used

3) Mobile Project

  • iOS: Eclipse, XCode and Objective-C, Swift, Xamarin, Unity
  • Android: Eclipse, Android SDK, Android Studio and Kotlin, Java and C++
  • Windows: Visual Studio and Windows Mobile, Windows Phone, Xamarin
  • Hybrid: Visual Studio Code and React Native, Flutter
  • Others: Apache Cordova, PhoneGap, Titanium, Ionic

4) Desktop Project

  • Windows Forms
  • WPF (XAML, MVVM)
  • Electron: Build cross-platform desktop apps with JavaScript, HTML, and CSS

5) Web Project

PMBOK Guide

  • Communications Management
  • Scope Management
  • Resource Management
  • Time Management
  • Risk Management
  • Quality Management

Software Development Models

  • Waterfall – mô hình thác nước
  • V-model – mô hình chữ V
  • Iterative – mô hình lặp – Mô hình Agile và quy trình Scrum

Type

  • Web Services
  • WCF HTTP Web Services
  • ASP.NET Web Forms
  • ASP.NET MVC 5 + jQuery, AdminLTE, Bootstrap, Calendar, DateTimePicker, Select2, DataTables, Moment.js, AutoNumeric.js
  • ASP.NET Core MVC + jQuery, AdminLTE, Bootstrap, Calendar, DateTimePicker, Select2, DataTables, Moment.js, AutoNumeric.js
  • ASP.NET Web API 2 + ReactJS
  • ASP.NET Core Web API + ReactJS
  • ASP.NET Core Web API + Angular
  • ASP.NET Core Web API + VueJS
  • ASP.NET Core MVC + Razor Pages
  • ASP.NET Core Blazor

Databases

  • Oracle
  • MS SQL Server
  • PostgreSQL
  • MySQL
  • Firebird
  • SQLite
  • MS Access
  • MS SQL Server Compact
  • MS SQL Server Express
  • MS SQL Server Express LocalDB
  • XML
  • JSON

Tools

  • Codemaid
  • DBeaver
  • Beyond Compare
  • Postman
  • Fiddler4
  • BareTail
  • Notepad++
  • cURL
  • Dapper
  • DbUp
  • PowerShell
  • IIS
  • CI/CD: Jenkins
  • Azure DevOps
  • Visio, Draw.io
  • Sonarqube
  • JetBrains ReSharper
  • OzCode
  • Clean Architecture
  • SOLID
  • Clean Code
  • TOP 10 OWASP

Methods

  • Monolithic Architecture
  • Service-Oriented Architecture (SOA)
  • Microservice Architecture
  • Serverless Architecture
  • Pair Programming
  • Object Oriented Programming (OOP)
  • Test Driven Development (TDD)
  • Domain Driven Design (DDD)
  • Mô hình Agile và quy trình Scrum

Security

  • ASP.NET Membership: ASP.NET Membership Provider
  • ASP.NET Simple Membership
  • ASP.NET Identity
  • Microsoft Identity
  • Identity Server 4 (OAuth2 and OpenID Connect)
    • IdentityServer4 and SSO
    • JWT Bearer and Refresh Token
    • Securing Microservices with IdentityServer4, OAuth2 and OpenID Connect fronted by Ocelot API Gateway
  • OpenIddict
  • Keycloak
  • Auth0
  • Duende IdentityServer / Identity Server 5
  • Top 10 OWASP

Source Code:

ASP.NET Core 3.1 API - JWT Authentication with Refresh Tokens | Jason Watmore's Blog

Token Based Authentication Using ASP.Net Web API, OWIN and Identity With Entity Framework (c-sharpcorner.com)

JWT Authentication And Authorization In .NET 6.0 With Identity Framework (c-sharpcorner.com)

How to Implement JWT Authentication in Web API Using .Net 6.0, Asp.Net Core (c-sharpcorner.com)

Source Code Cookie Authentication:

Cookie Authentication In ASP.NET Core (c-sharpcorner.com)

doanhnghiepvn/CookieAuthentication: Implement Cookie Authentication in ASP.NET Core without using Identity. (github.com)

Authentication And Authorization In ASP.NET Core MVC Using Cookie (c-sharpcorner.com)

doanhnghiepvn/CookieAuthenticationInAsp.NetCore: Authentication and Authorization in Asp.Net Core MVC using Cookie (github.com)

Secure Serverless Azure Functions Using JWT Auth And C# (.Net 6) (c-sharpcorner.com)

doanhnghiepvn/AzureFuntions_Auth_JWT: Secure Azure Functions using .Net 6.0 and JWT Tokens (github.com)

Article:

LocalStorage và Cookies – Chọn cái nào để lưu JWT Tokens hiệu quả và an toàn? – Duy PT Blog

Access Token thường là các JWT Tokens tồn tại trong một khoảng thời gian ngắn, được tạo ra từ phía server, và được server yêu cầu đính kèm trong mỗi Http Request để phía server xác thực người dùng.

Refresh Token thường là các chuỗi string đặc thù nào đó được lưu trong database của server, được sử dụng để tạo ra các Access Token mới mỗi khi chúng hết hạn.

https://blog.logrocket.com/jwt-authentication-best-practices/

In this JWT authentication tutorial, you’ll learn when to use JWT, why you shouldn’t use JWT for sessions, and how to store JWTs in cookies to prevent security issues. We’ll also go over some general JWT best practices.

Where to Store JWTs - Cookies vs HTML5 Web Storage | Stormpath

LocalStorage vs. Cookies: All You Need to Know About Storing JWT Tokens Securely in the Front-End - JavaScript inDepth

AngularJS - How to store a JWT token inside an HTTP only cookie? - Stack Overflow

Cookies vs. Tokens: The Definitive Guide - DZone Integration

Cross Site Scripting (XSS) and Cross-Site Request Forgery (XSRF or CSRF)

HTML5 Security - OWASP Cheat Sheet Series

Community OSS authentication options for ASP.NET Core | Microsoft Docs

OWASP Top Ten Web Application Security Risks | OWASP

Securing Microservices with IdentityServer4, OAuth2 and OpenID Connect fronted by Ocelot API Gateway | by Mehmet Özkaya | aspnetrun | Medium

Performance

  • Database design, Database query, Code (Best Practice), Deployment view, Infrastructure view, Hardware, Software
  • Cache in-memory in ASP.NET Core
  • Distributed Redis Caching In ASP.NET Core
  • HAProxy and Load Balancing
  • Cloud Computing Services
    • Microsoft Azure
    • Amazon Web Services (AWS)
    • Google Cloud Platform

New:

  • Kubernetes
  • Docker
  • AutoWrapper
  • FluentValidation
  • Fluent Assertions
  • FakeItEasy
  • Bogus
  • xUnit
  • Moq
  • Shouldly

Clean Architecture with ASP.NET Core 6.0

  • N-Layered Architecture
  • Onion Architecture
  • Hexagonal Architecture
  • Screaming Architecture
  • Clean Architecture

https://github.com/dotnet-architecture/eShopOnContainers

https://github.com/fullstackhero/dotnet-webapi-boilerplate 

https://github.com/jasontaylordev/CleanArchitecture

https://github.com/ardalis/CleanArchitecture

https://github.com/aspnetrun/run-aspnet-identityserver4

https://github.com/asc-lab/dotnetcore-microservices-poc

https://github.com/vietnam-devs/coolstore-microservices

https://github.com/EdwinVW/pitstop

https://github.com/madslundt/NetCoreMicroservicesSample

https://github.com/SteeltoeOSS/steeltoe

https://github.com/phongnguyend/Practical.CleanArchitecture

Best Practices:

JavaScript libraries:

1) Benchmark.js là một thư viện Javascript cung cấp khả năng so sánh hiệu năng của các javascript functions.

2) Velocity là một thư viện JavaScript được xây dựng để tạo animation nhanh. Tốc độ của Velocity khi hiển thị hoạt ảnh cực kỳ nhanh. Nó vượt trội hơn jQuery và thậm chí cả CSS.

3) SVG.js là một thư viện nhẹ để thao tác và tạo ảnh động cho SVG.

4) Vuejs là một thư viện mã nguồn mở miễn phí với kích thước nhỏ gọn giúp bạn xây dựng giao diện cho người dùng một cách nhanh chóng (đặc biệt là single page web application).

5) AngularJS giúp bạn có thể dễ dàng xây dựng ứng dụng web, mobile web, native mobile và native desktop.

6) jQuery là một thư viện mã nguồn mở nhỏ gọn, miễn phí cung cấp nhiều tính năng hữu ích dành cho phát triển website như là AJAX, thao tác với CSS, DOM, HTML một cách dễ dàng, xử lý sự kiện (event), hiệu ứng chuyển động...

7) Lodash giúp cho việc bạn xử lý các vấn đề liên quan tới Array, String, Number, Object... bằng ngôn ngữ lập trình Javascript một cách dễ dàng.

8) AnimeJS là thư viện giúp bạn có thể dễ dàng xây dựng hiệu ứng chuyển động nhanh chóng dành cho trang web bằng cách làm việc với các thuộc tính CSS, SVG, thuộc tính DOM, Javascript Object...

9) AOS giúp bạn tạo ra các hiệu ứng chuyển động cho các thành phần website khi người dùng scroll trang web.

10) Popper là một thư viện được viết bằng javascript với kích thước chỉ khoảng 3kB giúp bạn nâng cao tốc độ của website mà vẫn giữ được các chức năng mà một tooltip cần có.

11) Owl Carousel 2 là một thư viện mã nguồn mở giúp bạn xây dựng carousel một cách dễ dàng và có tính thẩm mỹ cao.

12) D3.js là một thư viện javascript được xây dựng cho việc trực quan hóa dữ liệu và hiển thị thông qua SVG, Canvas, HTML...

13) Chart.js giúp bạn tạo các biểu đồ đẹp mắt cho trang web của mình. Nó có rất nhiều biểu đồ khác nhau và cho phép chúng ta linh hoạt xử lý các dữ liệu truyền vào cho biểu đồ khi sử dụng thư viện. Ngoài ra nó cũng thường xuyên được cập nhật các phiên bản mới và được responsive trên nhiều màn hình thiết bị khác nhau.

14) SweetAlert là một thư viện mã nguồn mở giúp bạn xây dựng những thông báo cho trang web một cách nhanh chóng với tính thẩm mỹ cao và nhiều hiệu ứng chuyển động đẹp mắt.

15) Momentjs giúp bạn dễ dàng xử lý ngày giờ bằng Javascript một cách dễ dàng.

16) Video JS là trình phát video được xây dựng từ nền tảng Video HTML5 hỗ trợ cho nhiều định loại định dạng khác nhau như Youtube, Vimeo, streaming...

17) Highlight JS là một thư viện mã nguồn mở được xây dựng bằng Javascript giúp bạn làm nổi bật đoạn code ở trong trang web và có thể chạy trên cả trình duyệt cũng như trên máy chủ.

18) Fullpagejs giúp bạn tạo fullscreen scrolling dành cho website.

19) Print.js là một thư viện Javascript nhỏ gọn giúp bạn có thể in file trực tiếp ngay trên trang web mà không cần phải chuyển hướng hay sử dụng nhúng (embeds).

20) Math JS là một thư viện toán học mã nguồn mở, giúp bạn linh hoạt trong việc tính toán và xử lý với nhiều kiểu dữ liệu khác nhau như là numbers, big number (số lớn), complex number (số phức tạp), phân số, unit (đơn vị) và ma trận.

21) Validate JS là một thư viện mã nguồn mở cung cấp cho bạn cách thức để kiểm tra các đối tượng Javascript trong trang web. Mục tiêu chính của nó là thiết lập các validation dưới dạng JSON và có thể chia sẻ qua lại giữa trình duyệt và máy chủ. Nó cung cấp cho chúng ta rất nhiều các phương thức validate như là xác thực ngày tháng, email, format, kiểm tra loại của đối tượng...

42 Thư Viện Và Framework Javascript Hay Dành Cho Front-end Developer (niemvuilaptrinh.com)

Happy Coding!

Identity Server 4

August 24, 2020 17:14

Identity Server 4 (edit)

IdentityServer4 is an OpenID Connect and OAuth 2.0 Framework for ASP.NET Core

https://feras.blog/how-to-use-asp-net-identity-and-identityserver4-in-your-solution/

https://github.com/ferastaleb/ASP.NETIdentityWithIdentityServer4Sample

  • Identity Server 4.1 (IS4)
  • ASP.NET Core 3.1
  • OpenID Connect (OIDC)
  • SPA: React or Angular
  • MVC + API + CORS,...

https://medium.com/lankapura/angular-asp-net-core-authentication-with-identity-server-4-65db6b9f7c2a

https://medium.com/@piotrkarpaa/using-spa-react-angular-ui-with-identity-server-4-dc1f57e90b2c

.NET Core + SPA Templates with Identity Server 4

https://stackoverflow.com/questions/62209503/net-core-angular-spa-templates-with-identityserver

IDENTITYSERVER4, WEB API AND ANGULAR IN A SINGLE ASP.NET CORE PROJECT

https://damienbod.com/2016/10/01/identityserver4-webapi-and-angular2-in-a-single-asp-net-core-project/

Using Angular (4+) with ASP.NET Core and IdentityServer4

https://elanderson.net/category/identityserver/

https://github.com/elanderson/Angular-Core-IdentityServer

IdentityServer4 login through Angular 6 and OpenId Connect

https://github.com/brunohbrito/IdentityServer4AngularOIDC

IdentityServer4, .NET Core API, Angular Universal (SSR) Starter with cookie authentication, docker, nginx and rabbitmq support

https://github.com/DooMachine/MicroStarter

The Top 31 Identityserver4 Open Source Projects

https://awesomeopensource.com/projects/identityserver4

https://www.reddit.com/r/dotnet/comments/9ga4g8/template_for_web_api_identity_server_angular/

Categories

Recent posts