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).
Функции
- Аутентификация как услуга: -Одиночный вход /подпись
- Контроль доступа для 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
- Создайте пустой основной проект ASP.NET (проверьте ‘Включить поддержку Docker»)
- Убедитесь, что файл проекта нацелена на Linux OS Linux
- Измените файл 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