Keycloak.Net.Authorization 1.0.2-rc0.2

This is a prerelease version of Keycloak.Net.Authorization.
There is a newer version of this package available.
See the version list below for details.
dotnet add package Keycloak.Net.Authorization --version 1.0.2-rc0.2
NuGet\Install-Package Keycloak.Net.Authorization -Version 1.0.2-rc0.2
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Keycloak.Net.Authorization" Version="1.0.2-rc0.2" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add Keycloak.Net.Authorization --version 1.0.2-rc0.2
#r "nuget: Keycloak.Net.Authorization, 1.0.2-rc0.2"
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install Keycloak.Net.Authorization as a Cake Addin
#addin nuget:?package=Keycloak.Net.Authorization&version=1.0.2-rc0.2&prerelease

// Install Keycloak.Net.Authorization as a Cake Tool
#tool nuget:?package=Keycloak.Net.Authorization&version=1.0.2-rc0.2&prerelease

Keycloak .Net Authorization

Build Build

Authentication and Authorization with Keycloak in .NET and ASP.NET Core. Secure your api with Keycloak UMA authorization and JWT bearer authentication.

Add the Keycloak.Net.Authorization nuget package to your project.

Api calls requires auhorization header with an JWT token from Keycloak.

POST https://yourapi/action HTTP/1.1
Auhorization: Bearer JwtTokenContent

How to use

Add to program.cs of your api

Add and configure Keycloak.Net.Authentication services - see README.md

using Keycloak.Net.Authentication;
using Keycloak.Net.Authorization;
new code πŸ‘†

.....
πŸ‘‡new code
builder.Services
  // Keycloak.Net.Authentication services 
  .AddKeyCloakAuthentication()
  .AddKeyCloakJwtBearerOptions("appsettings_section_name");
.....
app.UseAuthentication();
app.UseAuthorization();

Add and configure Keycloak.Net.Authorization

Configure using the Action<ClientConfiguration>

builder.Services
  // Keycloak.Net.Authentication services 
  .AddKeyCloakAuthentication()
  .AddKeyCloakJwtBearerOptions("appsettings_section_name");
  .AddUma(client =>
    {
        client.ClientId = "client-role";
    });
new code πŸ‘†
.....
πŸ‘‡new code 
app.UseUma();

app.UseAuthentication();
app.UseAuthorization();

Configure by appsettings.{Environment}.json

builder.Services
  // Keycloak.Net.Authentication services 
  .AddKeyCloakAuthentication()
  .AddKeyCloakJwtBearerOptions("Appsettings_Section_Name")
  .AddUma("Client_Section_Name);
new code πŸ‘†
.....

πŸ‘‡new code 
app.UseUma();

app.UseAuthentication();
app.UseAuthorization();

Add to your appsettings.{Environment}.json

{
 "Client_Section_Name": {
   "ClientId": "<CLIENT_NAME>"
}

Add to your endpoints

MinimalAPI

Via custom extenxion method

app.MapGet("api/example", () =>
    Results.Ok()
    .RequireUmaAuthorization(resource: "<<resource>>", scope: "<<scope>>");

Via Attribute

app.MapGet("api/example", [Permission(Resource = "<<resource>>", Scope = "<<scope>>")] () =>
    Results.Ok();

Via ASP.NET extension method. The policy string format is: Permission:<<resource>>,<<scope>>

app.MapGet("api/example", () =>
    Results.Ok()
    .RequireAuthorization("Permission:<<resource>>,<<scope>>");

Product 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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
2.0.0 97 2/20/2024
1.0.3 106 1/27/2024
1.0.2 83 1/24/2024
1.0.2-rc0.2 56 1/23/2024