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 위에 인증 계층).
특징
- 서비스로 인증 : -단일 사인온 /사인 아웃
- 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에서 달리기
- 빈 ASP.NET Core 프로젝트 작성 ( ‘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