Nuuvify.CommonPack.Security
2.5.0
dotnet add package Nuuvify.CommonPack.Security --version 2.5.0
NuGet\Install-Package Nuuvify.CommonPack.Security -Version 2.5.0
<PackageReference Include="Nuuvify.CommonPack.Security" Version="2.5.0" />
<PackageVersion Include="Nuuvify.CommonPack.Security" Version="2.5.0" />
<PackageReference Include="Nuuvify.CommonPack.Security" />
paket add Nuuvify.CommonPack.Security --version 2.5.0
#r "nuget: Nuuvify.CommonPack.Security, 2.5.0"
#:package Nuuvify.CommonPack.Security@2.5.0
#addin nuget:?package=Nuuvify.CommonPack.Security&version=2.5.0
#tool nuget:?package=Nuuvify.CommonPack.Security&version=2.5.0
Nuuvify.CommonPack.Security
Biblioteca de segurança para aplicações ASP.NET Core que centraliza setup de autenticação, autorização e acesso às claims do usuário autenticado.
O pacote principal reúne utilitários para cenários com JWT e OpenID, além de contratos usados pelos pacotes complementares Nuuvify.CommonPack.Security.JwtCredentials e Nuuvify.CommonPack.Security.JwtStore.Ef.
O que o pacote oferece
- setup de autenticação JWT via
AddSecuritySetup - setup complementar para fluxos OpenID via
AddOpenIdSecuritySetup - handlers de autorização para políticas e validação por claims
- helper
IUserAuthenticatedpara leitura do usuário autenticado, claims e papéis - opções de token centralizadas em
JwtTokenOptions
Quando usar
Use este pacote quando a aplicação precisar:
- validar tokens JWT emitidos por uma autoridade conhecida
- configurar autenticação e autorização de forma padronizada no container de DI
- acessar claims e informações do usuário atual sem espalhar dependência de
HttpContext - integrar fluxos baseados em OpenID e transformação adicional de claims
Configuração JWT
O ponto de entrada principal para JWT é a extensão AddSecuritySetup.
using Nuuvify.CommonPack.Security.Jwt;
builder.Services.AddSecuritySetup(builder.Configuration);
Por padrão, o método lê a seção JwtTokenOptions, registra IUserAuthenticated, IHttpContextAccessor e configura JwtBearer com validação de emissor, audiência, chave de assinatura e expiração.
Exemplo de configuração
{
"JwtTokenOptions": {
"Issuer": "nuuvify-auth",
"Audience": "nuuvify-api",
"SecretKey": "uma-chave-com-pelo-menos-32-caracteres-seguros"
}
}
Configuração OpenID
Para cenários OpenID, o pacote expõe AddOpenIdSecuritySetup, que registra os componentes necessários para autorização, transformação de claims e acesso ao usuário autenticado.
using Nuuvify.CommonPack.Security.JwtOpenId;
builder.Services.AddOpenIdSecuritySetup(builder.Configuration);
Esse setup complementa a infraestrutura de autenticação já existente na aplicação e adiciona os serviços auxiliares usados pelos handlers do pacote.
Acesso ao usuário autenticado
O contrato IUserAuthenticated permite consultar o usuário atual, autenticação, claims e papéis sem espalhar leitura direta de HttpContext.
Exemplos comuns:
- verificar se o usuário está autenticado
- recuperar o login atual
- ler uma claim específica
- verificar pertença a papel ou grupo
JwtTokenOptions
JwtTokenOptions centraliza as opções usadas na validação e emissão de tokens. Entre os campos mais relevantes estão:
IssuerAudienceSecretKeyNotBeforeValidForExpiration
O pacote exige chave simétrica válida e trata tempo de expiração com ClockSkew zerado no setup JWT padrão.
Observações de segurança
- mantenha
SecretKeyfora do código-fonte e prefira secret manager, vault ou configuração segura do ambiente - trate mudanças em emissor, audiência, claims obrigatórias e expiração como mudanças de contrato para consumidores
- não enfraqueça validações de token sem teste explícito e análise de impacto
- evite expor detalhes sensíveis de autenticação em logs e mensagens de erro
Pacotes relacionados
Nuuvify.CommonPack.Security.JwtCredentials: suporte complementar para credenciais JWTNuuvify.CommonPack.Security.JwtStore.Ef: persistência de dados de JWT com Entity Framework
Validação recomendada ao alterar este pacote
- cenários de token válido e inválido
- expiração e audiência incorreta
- claims esperadas e autorização negada
- ausência de vazamento de segredo ou detalhe sensível
| 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.AspNetCore.Authorization (>= 8.0.11)
- Microsoft.Extensions.Caching.SqlServer (>= 8.0.11)
- Microsoft.Extensions.Options.ConfigurationExtensions (>= 8.0.0)
- Nuuvify.CommonPack.Security.Abstraction (>= 2.5.0)
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.5.0 | 48 | 6/6/2026 |
| 2.5.0-preview.26060610 | 32 | 6/6/2026 |
| 2.5.0-preview.26060310 | 39 | 6/3/2026 |
| 2.4.0 | 242 | 4/17/2026 |
| 2.4.0-preview.26060604 | 43 | 6/6/2026 |
| 2.4.0-preview.26060305 | 29 | 6/3/2026 |
| 2.4.0-preview.26041709 | 60 | 4/17/2026 |
| 2.3.0 | 477 | 4/14/2026 |
| 2.3.0-preview.26041705 | 63 | 4/17/2026 |
| 2.3.0-preview.26041302 | 81 | 4/13/2026 |
| 2.3.0-preview.26040903 | 70 | 4/9/2026 |
| 2.3.0-preview.26033108 | 67 | 4/1/2026 |
| 2.2.0 | 1,581 | 11/3/2025 |
| 2.2.0-preview.25110102 | 129 | 11/1/2025 |
| 2.2.0-preview.25103002 | 190 | 10/30/2025 |
| 2.2.0-preview.25102906 | 197 | 10/29/2025 |
| 2.1.0 | 412 | 10/21/2025 |
| 2.1.0-preview.25102003 | 185 | 10/20/2025 |
| 2.0.0 | 6,933 | 2/11/2025 |
# Changelog - Nuuvify.CommonPack.Security
Todas as mudanças notáveis deste pacote serão documentadas neste arquivo.
O formato é baseado em [Keep a Changelog](https://keepachangelog.com/pt-br/1.0.0/),
e este projeto adere ao [Semantic Versioning](https://semver.org/lang/pt-BR/spec/v2.0.0.html).
## [Não Lançado]
### Adicionado
### Alterado
### Corrigido
### Removido
### Segurança
## [Sem versão registrada] - 2026-05-29
### Adicionado
- Estrutura inicial do changelog padronizada para este pacote.