身份服务器

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。

系统要求


-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  

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

探索

您可能会发现以下链接相关:

使用免费和开源软件自动化业务运营

 简体中文