Escolar Documentos
Profissional Documentos
Cultura Documentos
Criação e preparação
inicial do projeto
1. Abrir o Visual Studio;
2. Selecionar no GET
STARTED a opção
CREATE A NEW PROJECT;
3. Em CREATE A NEW
PROJECT o projeto do
tipo BLANK SOLUTION;
4. Nomear a nova
SOLUTION; (nomeie
como achar
conveniente);
5. Posicione o cursor sobre
a SOLUTION recém
criada, pressione o botão
do mouse direito e
selecione ADD no menu
de contexto;
6. No submenu selecionar
NEW PROJECT;
7. Selecione um projeto do
tipo ASP NET CORE WEB
APP (no caso de
dificuldades de
encontrar esse template
de projeto, digite na
caixa de busca) e
pressione NEXT;
8. Nomeie o projeto na
caixa PROJECT NAME. No
caso adotaremos aqui
DELFOS.JWT.SSO.API;
9. Pressione o botão NEXT
e vamos especificar as
características desejadas
nesse template de
projeto;
10. Na combo FRAMEWORK,
selecione a opção .NET
6.0 (Long-term Support);
11. Certifique-se que a check
box CONFIGURE FOR
HTTPS está selecionada;
12. As seguintes check boxes
devem ficar
DESMARCADAS:
ENABLE DOCKER;
DO NOT USE
TOP-LEVEL
STATEMENTS
13. Pressionar o botão
CREATE. Verifique o
SOLUTION EXPLORER
que deve apresentar a
configuração semelhante
a mostrada na segunda
figura a direita no painel
ao lado. Nesse projeto
será realizadas as
implementações;
14. Instalar os pacotes de
biblioteca que usaremos
na implementação.
Instalar os seguintes
pacotes:
Microsoft.AspNe
tCore.Authentica
tion.Jwt
Microsoft.Identit
yModel.Tokens
System.Identity
Model.Tokens.jw
t
15. Como estamos utilizando
a versão .Net 6.0 não
deveremos ter
problemas em usar a
última versão de cada
um dos pacotes. Além
dos pacotes citados no
item 15 instalar também
tipicamente os pacotes
do Entity Framework
para interação com uma
base de dados.
Ajustes no
appsettings.json
16. Abra o arquivo
appsettings.json;
17. Ao final da chave
"AllowedHosts": "*"
adicione uma vírgula (,)
e tecle ENTER ;
18. Na linha de baixo
adicione a chave:
"Jwt": {
"Key": "Dhf .....",
"Issuer": "https://....",
"Audience": "https:// ...."
}
Ajustando a
inicialização no
Program.cs
26. Logo em seguida a using Microsoft.AspNetCore.Authentication.JwtBearer;
using Microsoft.IdentityModel.Tokens;
inserção do bloco de using System.Text;
configuração do serviço
JWT, adicionar três var builder = WebApplication.CreateBuilder(args);
linhas de código:
// Add services to the container.
builder.Services.Ad builder.Services.AddAuthentication(JwtBearerDefaults.Authenticatio
dMvc(); .AddJwtBearer(options => {
builder.Services.Ad options.TokenValidationParameters = new TokenValidationPar
dControllers(); {
builder.Services.Ad ValidateIssuer = true,
dAuthorization(); ValidateAudience = true,
ValidateLifetime = true,
ValidateIssuerSigningKey = true,
ValidIssuer = builder.Configuration["Jwt:Issuer"],
27. Identifique na listagem ValidAudience = builder.Configuration["Jwt:Audience"],
do código do Program.cs IssuerSigningKey = new
SymmetricSecurityKey(Encoding.UTF8.GetBytes(builder.Configuration[
a linha de comando:
};
app.UseRouting();
});
28. Posicione o cursor ao builder.Services.AddMvc();
final dessa linha, builder.Services.AddControllers();
builder.Services.AddAuthorization();
pressione ENTER e builder.Services.AddRazorPages();
inserir a linha de
comando:
var app = builder.Build();
app.UseAuthenticati
// Configure the HTTP request pipeline.
on; if (!app.Environment.IsDevelopment())
{
29. O bloco de código deve app.UseExceptionHandler("/Error");
ficar semelhante a isso: // The default HSTS value is 30 days. You may want to change t
production scenarios, see https://aka.ms/aspnetcore-hsts.
app.UseHsts();
}
app.UseHttpsRedirection();
app.UseStaticFiles();
OBSERVAÇÃO IMPORTANTE: app.UseRouting();
Caso esteja utilizando .NET 5 app.UseAuthorization();
mudanças sutis devem ser app.UseAuthentication();
introduzidas. As linhas de app.MapRazorPages();
app.MapControllers();
ajuste do serviço JWT
devem ser inseridas no //app.UseEndpoints(endpoints =>
Startup.cs; //{
// endpoints.MapControllers();
// endpoints.MapRazorPages();
//});
app.Run();
Adicionando as
Controllers da API
40. No Solution Explorer,
selecionar o projeto com
o botão direito do mouse
e no menu de contexto
selecionar ADD New
FOLDER;
41. Nomeie a nova pasta a
ser criada como
CONTROLLERS;
42. Posicione o mouse sobre
a pasta CONTROLLERS e
com o botão direito
selecione a opção ADD >
ADD NEW ITEM. Na tela
que surge, ilustrado ao
lado selecione a caixa de
busca e digite API, em
seguida no painel a
esquerda selecione API
CONTROLLER – Empty e
na caixa NAME digite
LoginController.cs;
43. Abrindo a using DELFOS.JWT.SSO.API.Models;
using Microsoft.AspNetCore.Authorization;
LoginController.cs, o using Microsoft.AspNetCore.Mvc;
seguinte fragmento de using Microsoft.IdentityModel.Tokens;
código ao lado deve ser using System.IdentityModel.Tokens.Jwt;
implementado na classe: using System.Security.Claims;
using System.Text;
namespace DELFOS.JWT.SSO.API.Controllers
{
[Route("api/[controller]")]
[ApiController]
public class LoginController : ControllerBase
{
// injeção de dependencia com IConfiguration
public IConfiguration _config;
public LoginController(IConfiguration config)
{
_config = config;
}
/// <summary>
/// Implementa as ações executadas na chamada da controlle
/// </summary>
/// <returns></returns>
[AllowAnonymous]
[HttpPost]
public IActionResult Login([FromBody] UserLogin userLogin)
{
var user = Authenticate(userLogin);
if (user !=null)
{
var token = Generate(user);
return Ok(token);
}
return NotFound("Usuário não encontrado");
}
{"UserName":"José_Admin","Password":"MinhaSenha#01"}