[ Полезный рекламный блок ]
Попробуйте свои силы в игре, где ваши навыки программирования на C# станут решающим фактором. Переходите по ссылке 🔰.
Аутентифікація – важливий аспект побудови безпечних веб-інтерфейсів API в ASP.NET Core. Ось покрокова інструкція з виконання аутентифікації в ASP.NET Core Web API:
1. Створення проекту ASP.NET Core Web API
Створіть новий проект ASP.NET Core Web API за допомогою Visual Studio або .NET CLI. Ви можете вибрати будь-який шаблон, наприклад, “ASP.NET Core Web API” або “ASP.NET Core Empty” і додати необхідні пакети NuGet для подальшої аутентифікації.
2. Виберіть метод аутентифікації.
ASP.NET Core підтримує різні методи аутентифікації, такі як JWT (JSON Web Tokens), OAuth, OpenID Connect та інші. Виберіть метод аутентифікації, який відповідає вашим вимогам.
3. Додайте пакети NuGet.
Встановіть пакети NuGet для обраного вами методу аутентифікації. Наприклад, якщо ви використовуєте JWT, ви можете встановити NuGet-пакет Microsoft.AspNetCore.Authentication.JwtBearer.
4. Налаштування аутентифікації.
Налаштуйте параметри аутентифікації у файлі Program.cs. Наприклад, якщо ви використовуєте JWT, ви можете налаштувати його таким чином:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
using Microsoft.AspNetCore.Authentication.JwtBearer; using Microsoft.Extensions.Configuration; using Microsoft.IdentityModel.Tokens; using System.Text; var builder = WebApplication.CreateBuilder(args); builder.Services.AddControllersWithViews(); // добавляем сервисы MVC builder.Services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme) .AddJwtBearer(options => { // Настройка JWT IConfigurationSection jwtConfig = builder.Configuration.GetSection("Jwt"); options.TokenValidationParameters = new TokenValidationParameters { ValidateIssuer = true, ValidateAudience = true, ValidateLifetime = true, ValidateIssuerSigningKey = true, ValidIssuer = jwtConfig["Issuer"], ValidAudience = jwtConfig["Audience"], IssuerSigningKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(jwtConfig["SecretKey"])) }; }); var app = builder.Build(); // устанавливаем сопоставление маршрутов с контроллерами app.MapControllerRoute( name: "default", pattern: "{controller=Home}/{action=Index}/{id?}"); app.Run(); |
5. Використовуйте аутентифікацію.
Захистіть кінцеві точки API, додавши атрибут [Authorize] до контролера або дії, що вимагає аутентифікації. Створіть папку Controllers і додайте в неї контролер HomeController, з таким вмістом:
1 2 3 4 5 6 7 8 9 10 11 |
[Authorize] [ApiController] [Route("api/[controller]")] public class HomeController : Controller { [HttpGet] public IActionResult Get() { return Content("You`re in!"); } } |
6. Генеруйте і перевіряйте токени (при використанні JWT).
Якщо ви використовуєте JWT, вам необхідно згенерувати і підтвердити токени у вашому API. Для цього ви можете використовувати такі бібліотеки, як System.IdentityModel.Tokens.Jwt. Ось приклад генерації токена JWT:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
public string GenerateJwtToken(string secretKey, string issuer, string audience, IEnumerable<Claim> claims, int expiresMinutes = 60) { var securityKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(secretKey)); var credentials = new SigningCredentials(securityKey, SecurityAlgorithms.HmacSha256); var token = new JwtSecurityToken( issuer: issuer, audience: audience, claims: claims, expires: DateTime.Now.AddMinutes(expiresMinutes), signingCredentials: credentials ); var tokenHandler = new JwtSecurityTokenHandler(); return tokenHandler.WriteToken(token); } |
А ось приклад перевірки токена JWT:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
public bool ValidateJwtToken(string token, TokenValidationParameters validationParameters) { var tokenHandler = new JwtSecurityTokenHandler(); try { ClaimsPrincipal claimsPrincipal = tokenHandler.ValidateToken(token, validationParameters, out SecurityToken validatedToken); return true; } catch { return false; } } |
7. Налаштування параметрів аутентифікації.
Ви можете налаштувати параметри автентифікації, такі як емітент, аудиторія, секретний ключ тощо, у файлі appsettings.json або будь-якому іншому джерелі конфігурації. Ось приклад:
1 2 3 4 5 6 7 |
{ "Jwt": { "Issuer": "https://example.com", "Audience": "https://example.com", "SecretKey": "your_secret_key_here" } } |
8. Тестування автентифікації.
Ви можете протестувати аутентифікацію вашого ASP.NET Core Web API за допомогою таких інструментів, як Postman або curl, включивши маркер у заголовок Authorization ваших запитів. Наприклад, для аутентифікації JWT ви можете включити маркер як маркер на пред’явника в заголовок Authorization таким чином:
1 |
Authorization: Bearer {your_token_here} |
Я сподіваюся, що вам сподобалося читати цю статтю, і вона виявилася легкою для розуміння. Будь ласка, дайте мені знати, якщо у вас є якісь коментарі або виправлення.
Так само вам може бути цікава попередня стаття – Як прочитати значення AppSettings з файлу .json в ASP.NET Core.
Ви хочете навчитися писати код мовою програмування C#?
Створювати різні інформаційні системи, що складаються з сайтів, мобільних клієнтів, десктопних додатків, телеграм-ботів тощо.
Переходьте до нас на сторінку Dijix і ознайомтеся з умовами навчання, ми спеціалізуємося тільки на індивідуальних заняттях, як для початківців, так і для просунутих програмістів. Ви можете взяти як одне заняття для опрацювання питання, що вас цікавить, так і кілька, для більш щільної роботи. Завдяки особистому кабінету, кожен студент підвищить якість свого навчання, у вашому розпорядженні:
- Доступ до пройденого матеріалу
- Тематичні статті
- Бібліотека книг
- Онлайн тестування
- Спілкування в закритих групах