Tapatybės serveris

IdentityServer Nemokamas SSO sprendimas

Kryžminės platformos SSO sistema naudojant „OpenID Connect“ ir „OAuth 2“

Vienkartinis ženklas ant sistemos, skirtos sukurti prieigos valdymo sprendimus šiuolaikinėms žiniatinklio programoms ir API. Supaprastinkite autentifikavimo valdymą centralizuodami į vieną vietą.

Apžvalga

„IdentityServer“ yra atvirojo kodo sistema, kuri naudoja „OpenID Connect“ ir „OAuth 2.0“, kad būtų pasiektas vienas ženklas, veikia kaip vienas autentifikavimo ir autorizacijos serveris kelioms programoms. „IdentityServer“ palaiko ir pilną .NET Framework (4.5.x) ir .NET Core (tai yra kryžminė platforma). „IdentityServer 4“ naudojasi .NET Core pranašumais ir gali būti įdiegtas naudojant „Docker“ „Linux“ sistemose. Tai seka „Open ID Connect“ ir „OAuth 2.0“ specifikacijas ir palaiko įvairius klientus, tokius kaip mobilusis, žiniatinklis ir SPA. Tai duomenų bazė AGNOSTIC, kad galėtumėte naudoti bet kurį pasirinktą galinę dalį. Jis veikia kaip autentifikavimo serveris, kuris leis vartotojams prisijungti ir suteiks JWT nešiklio prieigos raktą, kuris gali būti naudojamas norint pasiekti apsaugotus išteklius iš SPA ar mobiliosios programos. Jis gali būti naudojamas teikiant autentifikavimą daugiapakopėms programoms, esančioms atskiruose domenuose. Jis pasiekia programą SSO naudojant OIDC (tai yra autentifikavimo sluoksnis OATH2 viršuje).

Sistemos reikalavimai


  • ASP.NET CORE 3.0
  • IIS / Docker

Funkcijos


  • Autentifikavimas kaip paslauga: -Vienkartinis prisijungimas /atsijungimas
  • API prieigos kontrolė
  • Palaiko federalines tapatybes („Google“, „Facebook“ ir kt.).
  • UI pritaikymas
  • Keli srautai (numanoma, autorizacijos kodas ir tt).
  • API leidimas
  • Pretenzijų teikėjas

diegimas

Įdiekite tiesiogiai iš „Nuget“

Galite įdiegti tiesiogiai iš „Nuget“ naudodami šią komandą:

    Install-Package IdentityServer4 -Version 4.0.4

Įdiegti „IdentityServer4“ šablonus

    dotnet new -i IdentityServer4.Templates  

Pridėkite „Quickui“ failus ir ASP.NET tapatybę (pasirenkama)

    dotnet new is4aspid --force  

Atnaujinti „ConfigureServices“ () metodą „Startup.cs“, kaip nurodyta toliau:

    services.AddControllersWithViews();  

Taip pat atnaujinkite „Configure ()“ metodą „Startup.cs“:

    app.UseRouting();  
       
     app.UseIdentityServer();  
     app.UseAuthorization();   
     app.UseEndpoints(endpoints =>  
     {  
     endpoints.MapControllerRoute(  
     name: "default",  
     pattern: "{controller=Home}/{action=Index}/{id?}");  
     });  

Sukurkite ir vykdykite projektą Naršykite „/.well-žinoma/openid-configuration“, kad įsitikintumėte, jog „Discovery Endpoints“ veikia ir veikia.

Bėgimas Docker

  1. Sukurkite tuščią ASP.NET pagrindinį projektą (patikrinkite „Įgalinti„ Docker “palaikymą“)
  2. Įsitikinkite, kad projekto failas nukreiptas į „Linux OS Linux“
  3. Pakeiskite „Docker“ failą, kaip nurodyta toliau:
        FROM microsoft/dotnet:2.2-runtime AS base  
        WORKDIR /app  
        EXPOSE 80  
        EXPOSE 443  
           
        FROM microsoft/dotnet:2.2-sdk AS build  
        WORKDIR /src  
        COPY \[“JrTech.Identity.Web/JrTech.Identity.Web.csproj“, “JrTech.Identity.Web/”\]  
        RUN dotnet restore “JrTech.Identity.Web/JrTech.Identity.Web.csproj“  
        COPY . .  
        WORKDIR “/src/JrTech.Identity.Web”  
        RUN dotnet build “JrTech.Identity.Web.csproj” -c Release -o /app  
           
        FROM build AS publish  
        RUN dotnet publish “JrTech.Identity.Web.csproj” -c Release -o /app  
           
        FROM base AS final  
        WORKDIR /app  
        COPY –from=publish /app .  
        ENTRYPOINT \[“dotnet”, “JrTech.Identity.Web.dll”\]  
  • Pridėkite „IdentityServer 4“, paleisdami šią komandą:
    dotnet add package IdentityServer4
 Latviski