Skip to content

Generated Client - Kiota preview ​

This KeycloakAdminApiClient was generated using the Kiota library.

NOTE

Kiota is a powerful command line tool developed by Microsoft that simplifies the process of generating API clients for calling any OpenAPI-described API. See OpenAPI Support for more details.

Getting Started ​

bash
dotnet add package Keycloak.AuthServices.Sdk.Kiota
csharp
/// <summary>
/// Adds <see cref="KeycloakAdminApiClient"/> for Keycloak Admin API.
/// </summary>
/// <returns>The IHttpClientBuilder for further configuration.</returns>
public static IHttpClientBuilder AddKeycloakAdminHttpClient(
    this IServiceCollection services,
    IConfiguration configuration,
    Action<HttpClient>? configureClient = default,
    string keycloakClientSectionName = KeycloakAdminClientOptions.Section
);

TIP

Kiota supports partial client generation, you can generate only the functionality you need. In this case, you can use source code of this library as an example.

Example ​

This is an example of how to use KeycloakAdminApiClient together with Access Token Management.

cs
var options = configuration.GetKeycloakOptions<KeycloakAdminClientOptions>()!;
options.AuthServerUrl = this.BaseAddress;

services.AddDistributedMemoryCache();
services
    .AddClientCredentialsTokenManagement()
    .AddClient(
        tokenClientName,
        client =>
        {
            client.ClientId = ClientId.Parse(options.Resource);
            client.ClientSecret = ClientSecret.Parse(options.Credentials.Secret);
            client.TokenEndpoint = new Uri(options.KeycloakTokenEndpoint);
        }
    );

services
    .AddKeycloakAdminHttpClient(options)
    .AddClientCredentialsTokenHandler(tokenClientName);

var sp = services.BuildServiceProvider();
var client = sp.GetRequiredService<KeycloakAdminApiClient>();

var realmName = "Test";
var realm = await client.Admin.Realms[realmName].GetAsync();

realm.Should().NotBeNull();
realm!.Realm.Should().Be(realmName);