Keycloak.AuthServices.Authentication
2.6.1
Prefix Reserved
dotnet add package Keycloak.AuthServices.Authentication --version 2.6.1
NuGet\Install-Package Keycloak.AuthServices.Authentication -Version 2.6.1
<PackageReference Include="Keycloak.AuthServices.Authentication" Version="2.6.1" />
<PackageVersion Include="Keycloak.AuthServices.Authentication" Version="2.6.1" />
<PackageReference Include="Keycloak.AuthServices.Authentication" />
paket add Keycloak.AuthServices.Authentication --version 2.6.1
#r "nuget: Keycloak.AuthServices.Authentication, 2.6.1"
#addin nuget:?package=Keycloak.AuthServices.Authentication&version=2.6.1
#tool nuget:?package=Keycloak.AuthServices.Authentication&version=2.6.1
Keycloak.AuthServices
🔐 Easy Authentication and Authorization with Keycloak in .NET.
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.cs
using Keycloak.AuthServices.Authentication;
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddKeycloakWebApiAuthentication(builder.Configuration);
builder.Services.AddAuthorization();
var app = builder.Build();
app.UseAuthentication();
app.UseAuthorization();
app.MapGet("/", () => "Hello World!").RequireAuthorization();
app.Run();
In this example, configuration is based on appsettings.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
With Keycloak.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.
var builder = WebApplication.CreateBuilder(args);
var host = builder.Host;
var configuration = builder.Configuration;
var services = 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);
var app = builder.Build();
app.UseAuthentication();
app.UseAuthorization();
app.MapGet("/hello", () => "[]")
.RequireAuthorization("AdminAndUser");
app.Run();
Example - Invoke Admin API
var services = new ServiceCollection();
services.AddKeycloakAdminHttpClient(new KeycloakAdminClientOptions
{
AuthServerUrl = "http://localhost:8080/",
Realm = "master",
Resource = "admin-api",
});
var sp = services.BuildServiceProvider();
var client = sp.GetRequiredService<IKeycloakRealmClient>();
var realm = await client.GetRealmAsync("Test");
Build and Development
dotnet cake --target build
dotnet cake --target test
dotnet pack -o ./Artefacts
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net8.0
- Microsoft.AspNetCore.Authentication.JwtBearer (>= 8.0.11)
- Microsoft.AspNetCore.Authentication.OpenIdConnect (>= 8.0.11)
- Microsoft.Extensions.Configuration.Abstractions (>= 9.0.0)
- Microsoft.Extensions.Configuration.Json (>= 9.0.0)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 9.0.0)
- Microsoft.IdentityModel.Protocols.OpenIdConnect (>= 8.2.1)
NuGet packages (17)
Showing the top 5 NuGet packages that depend on Keycloak.AuthServices.Authentication:
Package | Downloads |
---|---|
Gathrr.Framework.Infrastructure
Package Description |
|
Feijuca.Auth
Feijuca.Auth simplifies Keycloak integration for user management and multi-tenancy. It features TokenManager for centralized API calls to manage users and auth services for handling multiple tenants using Keycloak realms. Check the documentation for more details! |
|
MicroEthos.Common.Endpoints
Package Description |
|
Manjalabs.Library
Package Description |
|
Wcz.Layout
Package Description |
GitHub repositories (1)
Showing the top 1 popular GitHub repositories that depend on Keycloak.AuthServices.Authentication:
Repository | Stars |
---|---|
mehmetozkaya/EshopModularMonoliths
Modular Monoliths on .NET used ASP.NET Web API, Docker, PostgreSQL, Redis, RabbitMQ, Keycloak, Seq, MassTransit, Entity Framework Core, CQRS, MediatR, DDD, Vertical Slice Architecture and Outbox pattern implementation with using latest features of .NET 8 and C# 12
|
Version | Downloads | Last Updated |
---|---|---|
2.6.1 | 64,792 | 3/13/2025 |
2.6.0 | 157,004 | 11/30/2024 |
2.5.3 | 281,299 | 8/19/2024 |
2.5.2 | 166,985 | 6/15/2024 |
2.5.1 | 20,460 | 6/11/2024 |
2.5.0 | 18,613 | 6/2/2024 |
2.4.1 | 27,526 | 5/16/2024 |
2.4.0 | 3,749 | 5/12/2024 |
2.3.0 | 655 | 5/10/2024 |
2.3.0-pre-1 | 131 | 5/9/2024 |
2.2.1 | 1,244 | 5/9/2024 |
2.2.0 | 1,280 | 5/8/2024 |
2.1.0 | 5,042 | 5/7/2024 |
2.0.0 | 5,988 | 5/5/2024 |
2.0.0-pre-4 | 154 | 5/4/2024 |
2.0.0-pre-3 | 220 | 4/26/2024 |
2.0.0-pre-2 | 143 | 4/25/2024 |
2.0.0-pre-1 | 401 | 4/24/2024 |
1.6.0 | 418,634 | 10/25/2023 |
1.5.2 | 312,922 | 5/27/2023 |
1.5.1 | 186,558 | 1/17/2023 |
1.5.0 | 706 | 1/17/2023 |
1.4.1 | 5,057 | 1/12/2023 |
1.4.0 | 5,532 | 1/4/2023 |
1.3.0 | 4,791 | 12/28/2022 |
1.2.1 | 95,375 | 9/22/2022 |
1.2.0 | 6,801 | 8/24/2022 |
1.1.0 | 13,318 | 1/30/2022 |
1.0.5 | 180 | 1/29/2022 |
1.0.4 | 3,404 | 1/28/2022 |
1.0.3 | 149 | 1/28/2022 |
1.0.2 | 151 | 1/23/2022 |
1.0.1 | 738 | 1/19/2022 |
1.0.0 | 12,412 | 1/19/2022 |
The release notes are available at https://github.com/NikiforovAll/keycloak-authorization-services-dotnet/releases