RhbkSdk 8.2.7
dotnet add package RhbkSdk --version 8.2.7
NuGet\Install-Package RhbkSdk -Version 8.2.7
<PackageReference Include="RhbkSdk" Version="8.2.7" />
<PackageVersion Include="RhbkSdk" Version="8.2.7" />
<PackageReference Include="RhbkSdk" />
paket add RhbkSdk --version 8.2.7
#r "nuget: RhbkSdk, 8.2.7"
#:package RhbkSdk@8.2.7
#addin nuget:?package=RhbkSdk&version=8.2.7
#tool nuget:?package=RhbkSdk&version=8.2.7
RhbkSdk
O RhbkSdk é um SDK para .NET 8 que facilita a integração com a API RHBK (Keycloak), oferecendo uma camada de abstração moderna com suporte a grupos, papéis, autenticação e gerenciamento de usuários.
📦 Injeção de Dependência
Registre o SDK no seu Program.cs
:
using RhbkSdk.Extensions;
builder.AddRhbkClient("https://seu.keycloak.url", ServiceLifetime.Scoped);
⚙️ Configuração por appsettings
Recomendado usar a classe RhbkConfiguration
:
"RhbkConfiguration": {
"Realm": "meu-realm",
"ClientId": "client-id",
"ClientSecret": "segredo",
"KeycloakBaseUrl": "https://keycloak.meuservidor.com",
"RedirectUri": "https://meusite/callback"
}
E carregar no startup:
builder.Services.Configure<RhbkConfiguration>(
builder.Configuration.GetSection(RhbkConfiguration.ConfigurationSection));
📘 Como Usar
Você injeta a interface IRhbkClient
diretamente:
public class MeuServico
{
private readonly IRhbkClient _rhbkClient;
public MeuServico(IRhbkClient rhbkClient)
{
_rhbkClient = rhbkClient;
}
public async Task<IList<UserResponse>> BuscarUsuarios()
{
var token = await _rhbkClient.GetTokenAsync("realm", new GetTokenRequestBody { ... });
var usuarios = await _rhbkClient.GetUsersAsync(token.Data?.AccessToken!, "realm");
return usuarios.Data ?? [];
}
}
🧪 Retorno Padrão
Todas as chamadas assíncronas retornam:
DefaultResponseBody<T>
Esse objeto inclui:
StatusCode
: código HTTP da operaçãoData
: resultado da chamada, que pode ser nulo
📂 Models disponíveis
Access
ClientResponse
GroupResponse
UserResponse
RoleResponse
RoleGroupMapping
GetTokenResponseBody
GroupCreateRequestBody
ClientRoleRequestBody
GroupRoleManagementRequestBody
RhbkConfiguration
✅ Funcionalidades
🔐 Autenticação
GetTokenAsync
GetLoginUrl
GetLogoutUrl
GetLoginProviderUrl
👥 Grupos
- Criar grupos e subgrupos
- Buscar todos os grupos ou subgrupos
- Buscar membros
- Adicionar/remover papéis de grupos
- Deletar grupos
🧑💼 Usuários
- Listar usuários
- Adicionar usuário a grupo
- Remover usuário de grupo
🧩 Clientes
- Buscar cliente por nome
- Gerenciar papéis do cliente
🔗 Dependências
- Refit — cliente HTTP declarativo
- Microsoft.Extensions.DependencyInjection.Abstractions
- Microsoft.Extensions.Configuration
🚀 CI/CD Automatizado
Este projeto possui pipeline com GitHub Actions que:
- Compila
- Empacota o
.nupkg
- Publica automaticamente no NuGet
Como publicar:
- Altere a versão no
csproj
(se necessário) - Faça o commit
- Crie e envie uma tag:
git tag v8.0.2
git push origin v8.0.2
O pacote será publicado com a versão v8.0.2
.
📝 Licença
Distribuído sob a licença MIT.
Consulte o arquivo LICENSE.txt para mais detalhes.
👨💻 Autor
Desenvolvido por Wallace Vidal de Figueiredo Fortuna
GitHub - wallacevff
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.Extensions.Configuration (>= 10.0.0-preview.4.25258.110)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 8.0.2)
- Refit (>= 8.0.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.