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
                    
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.5.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Nuuvify.CommonPack.Security" Version="2.5.0" />
                    
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.5.0
                    
#r "nuget: Nuuvify.CommonPack.Security, 2.5.0"
                    
#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.5.0
                    
#: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.5.0
                    
Install as a Cake Addin
#tool nuget:?package=Nuuvify.CommonPack.Security&version=2.5.0
                    
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

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