Identity Server

IdentityServer 무료 SSO 솔루션

OpenID Connect 및 Oauth 2를 사용한 크로스 플랫폼 SSO 프레임 워크

최신 웹 애플리케이션 및 API를위한 액세스 제어 솔루션을 구축하기위한 프레임 워크의 단일 사인. 한 곳으로 중앙 집중식으로 인증 관리를 단순화합니다.

개요

IdentityServer는 OpenID Connect 및 Oauth 2.0을 사용하여 단일 부호를 달성하고 여러 응용 프로그램의 단일 인증 및 인증 서버 역할을하는 오픈 소스 프레임 워크입니다. IdentityServer는 Full .NET Framework (4.5.x) 및 .NET Core (크로스 플랫폼)를 모두 지원합니다. IdentityServer 4는 .NET Core의 이점을 취하며 Linux 시스템에서 Docker를 사용하여 배포 할 수 있습니다. Open ID Connect 및 Oauth 2.0 사양을 따르며 모바일, 웹 및 스파와 같은 다양한 클라이언트를 지원합니다. 데이터베이스가 불가능하므로 선택한 백엔드를 사용할 수 있습니다. 사용자가 로그인 할 수있는 인증 서버 역할을하며 스파 또는 모바일 앱에서 보호 된 리소스에 액세스하는 데 사용할 수있는 JWT 베어러 토큰을 제공합니다. 별도의 도메인에서 호스팅되는 멀티 테넌트 앱에 대한 인증을 제공하는 데 사용할 수 있습니다. OIDC를 사용하여 APP SSO를 달성합니다 (OAUTH2 위에 인증 계층).

시스템 요구 사항


-ASP.NET Core 3.0 -IIS / Docker

특징


  • 서비스로 인증 : -단일 사인온 /사인 아웃
  • API에 대한 액세스 제어
  • 페더레이션 ID (Google, Facebook 등)를 지원합니다. -UI 사용자 정의
  • 다중 흐름 (암시 적, 인증 코드 등). -API 승인
  • 클레임 기반 제공자

설치

Nuget에서 직접 설치하십시오

다음 명령을 사용하여 Nuget에서 직접 설치할 수 있습니다.

    Install-Package IdentityServer4 -Version 4.0.4

IdentityServer4 템플릿을 설치하십시오

    dotnet new -i IdentityServer4.Templates  

QuickUi 파일 및 ASP.NET ID 추가 (선택 사항)

    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?}");  
     });  

프로젝트를 구축하고 실행하십시오 Discovery Endpoint가 UP가 진행되고 있는지 확인하려면“/.well-known/openid-configuration”을 찾아보십시오.

Docker에서 달리기

  1. 빈 ASP.NET Core 프로젝트 작성 ( ‘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
 한국인