Идентификационный сервер

IdentityServer Бесплатное решение SSO

Кросс -платформный SSO Framework с использованием OpenID Connect и OAuth 2

Единый знак на фреймворке для создания решений управления доступом для современных веб -приложений и API. Упростить управление аутентификацией, централизация в одно место.

Обзор

IdentityServer - это структура с открытым исходным кодом, которая использует OpenID Connect и OAuth 2.0 для достижения единого знака, действует как один сервер аутентификации и авторизации для нескольких приложений. IdentityServer поддерживает как Full .net Framework (4.5.x), так и .NET Core (которая является межплатформой). IdentityServer 4 принимает преимущества .NET Core и может быть развернут с помощью Docker в Linux Systems. Это следует за спецификациями Open ID Connect и OAuth 2.0 и поддерживает широкий спектр клиентов, таких как мобильные, Интернет и спа. Это агностика базы данных, поэтому вы можете использовать любой бэк-энд по вашему выбору. Он выступает в качестве сервера аутентификации, который позволит пользователям войти в систему и предоставляет токен для носителя JWT, который можно использовать для доступа к защищенным ресурсам из SPA или мобильного приложения. Его можно использовать для обеспечения аутентификации для мультитенантных приложений, размещенных в отдельных доменах. Он достигает приложения с использованием OIDC (который является аутентификационным слоем на вершине OAuth2).

Системные Требования


  • ASP.NET CORE 3.0
  • IIS / Docker

Функции


  • Аутентификация как услуга: -Одиночный вход /подпись
  • Контроль доступа для API
  • Поддерживает федеративные идентичности (Google, Facebook и т. Д.).
  • Пользовательская настройка
  • Многочисленные потоки (неявный, код авторизации и т. Д.).
  • API разрешение
  • Поставщик на основе претензий

Монтаж

Установите непосредственно из Nuget

Вы можете установить непосредственно из Nuget, используя следующую команду:

    Install-Package IdentityServer4 -Version 4.0.4

Установить шаблоны IdentityServer4

    dotnet new -i IdentityServer4.Templates  

Добавить файлы QuickUI и идентификацию ASP.NET (необязательно)

    dotnet new is4aspid --force  

Обновление метода configureservices () в startup.cs, как ниже:

    services.AddControllersWithViews();  

Также обновите метод configure () в startup.cs:

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

Создайте и запустите проект Просмотрите «/.well-known/openid-configuration», чтобы убедиться, что конечные точки Discovery работают.

работает в 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
 Русский