IdentityServer 免费的SSO解决方案
使用OpenID Connect和Oauth 2的跨平台SSO框架2
框架上的单个符号,为现代Web应用程序和API构建访问控制解决方案。通过集中到一个地方来简化身份验证管理。
概述
IdentityServer是一个开源框架,使用OpenID Connect和OAuth 2.0实现单个登录,充当多个应用程序的单个身份验证和授权服务器。 IdentityServer支持完整的.NET框架(4.5.x)和.NET Core(这是跨平台)。 IdentityServer 4具有.NET Core的好处,并且可以在Linux系统上使用Docker部署。 它遵循Open ID Connect和OAuth 2.0规格,并支持移动,Web和Spas等广泛的客户。它是数据库不可知论,因此您可以使用您选择的任何后端。它充当身份验证服务器,它将允许用户登录并提供JWT携带者令牌,可用于从水疗中心或移动应用程序中访问受保护的资源。它可用于为在单独域上托管的多租户应用程序提供身份验证。它使用OIDC(是OAuth2顶部的身份验证层)实现应用SSO。
安装
直接从Nuget安装
您可以使用以下命令直接从Nuget安装:
Install-Package IdentityServer4 -Version 4.0.4
安装IdentityServer4模板
dotnet new -i IdentityServer4.Templates
添加QuickUI文件和ASP.NET身份(可选)
dotnet new is4aspid --force
startup.cs中的更新configureservices()方法如下:
services.AddControllersWithViews();
还在startup.cs中更新configure()方法:
app.UseRouting();
app.UseIdentityServer();
app.UseAuthorization();
app.UseEndpoints(endpoints =>
{
endpoints.MapControllerRoute(
name: "default",
pattern: "{controller=Home}/{action=Index}/{id?}");
});
建立和运行项目 浏览“ /.well-nown/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