Nuuvify.CommonPack.Security 2.8.0-preview.39

This is a prerelease version of Nuuvify.CommonPack.Security.
There is a newer version of this package available.
See the version list below for details.
dotnet add package Nuuvify.CommonPack.Security --version 2.8.0-preview.39
                    
NuGet\Install-Package Nuuvify.CommonPack.Security -Version 2.8.0-preview.39
                    
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="Nuuvify.CommonPack.Security" Version="2.8.0-preview.39" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Nuuvify.CommonPack.Security" Version="2.8.0-preview.39" />
                    
Directory.Packages.props
<PackageReference Include="Nuuvify.CommonPack.Security" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Nuuvify.CommonPack.Security --version 2.8.0-preview.39
                    
#r "nuget: Nuuvify.CommonPack.Security, 2.8.0-preview.39"
                    
#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.
#:package Nuuvify.CommonPack.Security@2.8.0-preview.39
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Nuuvify.CommonPack.Security&version=2.8.0-preview.39&prerelease
                    
Install as a Cake Addin
#tool nuget:?package=Nuuvify.CommonPack.Security&version=2.8.0-preview.39&prerelease
                    
Install as a Cake Tool

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 IUserAuthenticated para 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:

  • Issuer
  • Audience
  • SecretKey
  • NotBefore
  • ValidFor
  • Expiration

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

NuGet packages (1)

Showing the top 1 NuGet packages that depend on Nuuvify.CommonPack.Security:

Package Downloads
Nuuvify.CommonPack.Middleware

Middlewares e filtros customizados, deve ser baixado no projeto IoC. HandlingHeadersMiddleware - Inclui a versco da aplicacco e do assembly no header da request, tambcm loga o conteudo da request. GlobalHandleException - Captura e loga as exceptions de forma global. ValidateModelAttribute - Retorna os erros da ModelState de forma padronizada

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
2.9.0-preview.43 29 8/23/2026
2.8.0 140 8/11/2026
2.8.0-preview.42 40 8/23/2026
2.8.0-preview.39 59 8/7/2026
2.7.0 339 7/25/2026
2.7.0-preview.26072428 55 7/25/2026
2.7.0-preview.26072419 61 7/25/2026
2.7.0-preview.26072416 49 7/25/2026
2.7.0-preview.26072413 56 7/25/2026
2.7.0-preview.26072410 61 7/24/2026
2.7.0-preview.26072406 53 7/24/2026
2.7.0-preview.26072302 108 7/23/2026
2.5.4 364 6/26/2026
2.5.3 119 6/25/2026
2.5.2 225 6/24/2026
2.5.2-preview.26062502 73 6/25/2026
2.5.2-preview.26062402 78 6/24/2026
2.5.1 390 6/14/2026
2.5.1-preview.26061404 73 6/14/2026
2.5.0 466 6/6/2026
Loading failed

# 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.