Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Authentication and Authorization with Keycloak and ASP.NET Core 🔐

License

NotificationsYou must be signed in to change notification settings

NikiforovAll/keycloak-authorization-services-dotnet

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DiscordBuildCodeQLNuGetcontributionswelcomeConventional CommitsLicense

🔐 Easy Authentication and Authorization with Keycloak in .NET.

PackageVersionDescription
Keycloak.AuthServices.AuthenticationNugetKeycloak Authentication JWT + OICD
Keycloak.AuthServices.AuthorizationNugetAuthorization Services. Use Keycloak as authorization server
Keycloak.AuthServices.SdkNugetHTTP API integration with Keycloak
Keycloak.AuthServices.Sdk.KiotaNugetHTTP API integration with Keycloak based on OpenAPI
Keycloak.AuthServices.OpenTelemetryNugetOpenTelemetry support
Keycloak.AuthServices.TemplatesNugetdotnet new templates

Documentation

For Developer Documentation see:https://nikiforovall.github.io/keycloak-authorization-services-dotnet

API Reference

See:https://nikiforovall.github.io/keycloak-authorization-services-dotnet-docs

Getting Started

Install packages:

dotnet add package Keycloak.AuthServices.Authentication
// Program.csusingKeycloak.AuthServices.Authentication;varbuilder=WebApplication.CreateBuilder(args);builder.Services.AddKeycloakWebApiAuthentication(builder.Configuration);builder.Services.AddAuthorization();varapp=builder.Build();app.UseAuthentication();app.UseAuthorization();app.MapGet("/",()=>"Hello World!").RequireAuthorization();app.Run();

In this example, configuration is based onappsettings.json.

//appsettings.json{"Keycloak": {"realm":"Test","auth-server-url":"http://localhost:8080/","ssl-required":"none","resource":"test-client","verify-token-audience":false,"credentials": {"secret":""        },"confidential-port":0    }}

Example - Add Authorization

WithKeycloak.AuthServices.Authorization, you can implement role-based authorization in your application. This package allows you to define policies based on roles. Also, you can use Keycloak as Authorization Server. It is a powerful way to organize and apply authorization polices centrally.

varbuilder=WebApplication.CreateBuilder(args);varhost=builder.Host;varconfiguration=builder.Configuration;varservices=builder.Services;services.AddKeycloakWebApiAuthentication(configuration);services.AddAuthorization(options=>{options.AddPolicy("AdminAndUser", builder=>{builder.RequireRealmRoles("User")// Realm role is fetched from token.RequireResourceRoles("Admin");// Resource/Client role is fetched from token});}).AddKeycloakAuthorization(configuration);varapp=builder.Build();app.UseAuthentication();app.UseAuthorization();app.MapGet("/hello",()=>"[]").RequireAuthorization("AdminAndUser");app.Run();

Example - Invoke Admin API

varservices=newServiceCollection();services.AddKeycloakAdminHttpClient(newKeycloakAdminClientOptions{AuthServerUrl="http://localhost:8080/",Realm="master",Resource="admin-api",});varsp=services.BuildServiceProvider();varclient=sp.GetRequiredService<IKeycloakRealmClient>();varrealm=awaitclient.GetRealmAsync("Test");

Build and Development

dotnet cake --target build

dotnet cake --target test

dotnet pack -o ./Artefacts


[8]ページ先頭

©2009-2025 Movatter.jp