IdentityServer 無料のSSOソリューション
OpenID ConnectとOAuth2を使用したクロスプラットフォームSSOフレームワーク
最新のWebアプリケーションとAPI用のアクセス制御ソリューションを構築するためのシングルサインオンフレームワーク。 1つの場所に集中することにより、認証管理を簡素化します。
概要
IdentityServerは、OpenID ConnectとOAuth 2.0を使用して単一サインオンを実現するオープンソースフレームワークであり、複数のアプリケーションの単一認証および認証サーバーとして機能します。 IdentityServerは、完全な.NETフレームワーク(4.5.x)と.NETコア(クロスプラットフォーム)の両方をサポートしています。 IdentityServer 4は.NET Coreの利点を取り、Linux SystemsのDockerを使用して展開できます。 Open ID ConnectおよびOAuth 2.0の仕様に従い、モバイル、Web、スパなどの幅広いクライアントをサポートします。データベースが不可知論されるため、選択したバックエンドを使用できます。ユーザーがサインインできる認証サーバーとして機能し、SPAまたはモバイルアプリから保護されたリソースにアクセスするために使用できるJWTベアラートークンを提供します。別々のドメインでホストされたマルチテナントアプリの認証を提供するために使用できます。 OIDCを使用してAPP SSOを実現します(OAUTH2の上に認証レイヤーです)。
特徴
- サービスとしての認証:
- シングルサインオン /サインアウト -APIのアクセス制御
- フェデレーションされたアイデンティティ(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?}");
});
プロジェクトを構築して実行します 「/.well-known/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”\]
*次のコマンドを実行して、IDSERVER 4を追加します。
dotnet add package IdentityServer4