سرور هویتی

IdentityServer راه حل رایگان SSO

Cross Platform SSO Framework با استفاده از OpenID Connect و OAuth 2

علامت واحد در چارچوب برای ایجاد راه حل های کنترل دسترسی برای برنامه های وب و API های مدرن. مدیریت احراز هویت را با تمرکز در یک مکان ساده کنید.

بررسی اجمالی

IdentityServer یک چارچوب منبع باز است که از OpenID Connect و OAUTH 2.0 برای دستیابی به علامت واحد استفاده می کند ، به عنوان یک سرور احراز هویت و مجوز واحد برای چندین برنامه عمل می کند. IdentityServer از هر دو چارچوب کامل .NET (4.5.x) و .NET Core (که سیستم عامل متقاطع است) پشتیبانی می کند. IdentityServer 4 از مزایای هسته دات نت استفاده می کند و می تواند با استفاده از Docker در سیستم های لینوکس مستقر شود. این مشخصات Open ID Connect و OAUTH 2.0 را دنبال می کند و از طیف گسترده ای از مشتریانی مانند موبایل ، وب و اسپا پشتیبانی می کند. این پایگاه داده Agnostic است ، بنابراین می توانید از هر نوع انتخابی خود استفاده کنید. این به عنوان یک سرور احراز هویت عمل می کند که به کاربران امکان ورود به سیستم را می دهد و یک نشانه تحمل JWT را فراهم می کند که می تواند برای دسترسی به منابع محافظت شده از یک برنامه آبگرم یا برنامه تلفن همراه استفاده شود. می توان از آن برای ارائه تأیید اعتبار برای برنامه های چند مستاجر ، که در حوزه های جداگانه میزبان هستند استفاده شود. این برنامه با استفاده از OIDC (که یک لایه احراز هویت در بالای OAuth2 است) به برنامه SSO می رسد.

الزامات سیستم


  • Asp.net Core 3.0
  • iis / docker

امکانات


  • احراز هویت به عنوان سرویس: -تک ثبت نام /ثبت نام
  • کنترل دسترسی به API
  • از هویت های فدرال (Google ، Facebook و غیره) پشتیبانی می کند.
  • سفارشی سازی UI
  • چندین جریان (ضمنی ، کد مجوز و غیره).
  • مجوز API
  • ارائه دهنده مبتنی بر ادعا

نصب و راه اندازی

مستقیم از Nuget نصب کنید

با استفاده از دستور زیر می توانید مستقیماً از NUGET نصب کنید:

    Install-Package IdentityServer4 -Version 4.0.4

الگوهای IdentityServer4 را نصب کنید

    dotnet new -i IdentityServer4.Templates  

فایلهای QuickUi و هویت ASP.NET را اضافه کنید (اختیاری)

    dotnet new is4aspid --force  

روش به روزرسانی ConfiguresRevice () در Startup.cs را به شرح زیر:

    services.AddControllersWithViews();  

همچنین روش پیکربندی () را در Startup.cs به روز کنید:

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

پروژه را بسازید و اجرا کنید برای اطمینان از اینکه نقاط پایانی Discovery به پایان رسیده و در حال اجرا است ، “/.well-known/openid-configuration” را مرور کنید.

در حال اجرا در Docker

  1. یک پروژه اصلی ASP.NET را ایجاد کنید (بررسی کنید ‘پشتیبانی Docker را فعال کنید")
  2. اطمینان حاصل کنید که پرونده پروژه Linux OS Linux را هدف قرار می دهد
  3. پرونده Docker را به شرح زیر اصلاح کنید:
        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”\]  
  • با اجرای دستور زیر IdentityServer 4 را اضافه کنید:
    dotnet add package IdentityServer4
 فارسی