![]() |
VOOZH | about |
dotnet add package Tisa.Authorization --version 2026.9.10.321
NuGet\Install-Package Tisa.Authorization -Version 2026.9.10.321
<PackageReference Include="Tisa.Authorization" Version="2026.9.10.321" />
<PackageVersion Include="Tisa.Authorization" Version="2026.9.10.321" />Directory.Packages.props
<PackageReference Include="Tisa.Authorization" />Project file
paket add Tisa.Authorization --version 2026.9.10.321
#r "nuget: Tisa.Authorization, 2026.9.10.321"
#:package Tisa.Authorization@2026.9.10.321
#addin nuget:?package=Tisa.Authorization&version=2026.9.10.321Install as a Cake Addin
#tool nuget:?package=Tisa.Authorization&version=2026.9.10.321Install as a Cake Tool
Библиотека авторизации для .NET приложений, разработанная компанией ТИСА. Предоставляет гибкую и расширяемую систему авторизации на основе разрешений (permissions) и ролей для ASP.NET Core приложений.
dotnet add package Tisa.Authorization
Для регистрации сервисов авторизации используйте метод расширения:
using Microsoft.Extensions.DependencyInjection;
using Tisa.Authorization;
public class Startup
{
public void ConfigureServices(IServiceCollection services)
{
services.AddAuthorization();
// Регистрация провайдера политик авторизации
services.AddSingleton<IAuthorizationPolicyProvider, PermissionAuthorizationPolicyProvider>();
// Регистрация обработчика разрешений
services.AddSingleton<IAuthorizationHandler, PermissionAuthorizationHandler>();
// Регистрация провайдеров (опционально)
services.AddTransient<IClientClaimsProvider, ClaimsProvider>();
services.AddTransient<IRoleProvider, RoleProvider>();
}
}
Используйте атрибут HasPermissionAttribute для защиты действий контроллера:
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using Tisa.Authorization.Attributes;
using Tisa.Authorization.Abstractions;
[ApiController]
[Route("api/[controller]")]
public class UsersController : ControllerBase
{
[HttpGet]
[HasPermission(Permission.UserRead)]
public IActionResult GetUsers()
{
return Ok();
}
}
Также можно использовать стандартный атрибут Authorize с именем разрешения:
[Authorize(Policy = "UserRead")]
public IActionResult GetUsers()
{
return Ok();
}
Библиотека предоставляет enum Permission для определения разрешений:
using Tisa.Authorization.Abstractions;
// Доступные разрешения:
// - Permission.None - отсутствие полномочий
// - Permission.UserRead - чтение пользователя
// - Permission.AccessEverything - абсолютный доступ
Система ролей основана на классе Role:
using Tisa.Authorization.Abstractions;
// Стандартные роли:
// - Role.User - пользовательская роль (имеет Permission.UserRead)
// - Role.Administrator - административная роль (имеет Permission.AccessEverything)
// Получение роли по имени
var role = Role.FromName("User").Value;
var permissions = role.GetPermissions();
Для работы с клиентами и генерации claims используйте IClientClaimsProvider:
using Tisa.Authorization.Abstractions;
using Tisa.Authorization.Models;
using System.Security.Claims;
public class MyService
{
private readonly IClientClaimsProvider _claimsProvider;
public MyService(IClientClaimsProvider claimsProvider)
{
_claimsProvider = claimsProvider;
}
public IEnumerable<Claim> GetClaims(Client client)
{
return _claimsProvider.GetClaimsForClient(client);
}
}
Модель Client представляет клиента приложения:
using Tisa.Authorization.Models;
var client = new Client
{
Token = "client-token",
Name = "Client Name"
};
client.AddRole("User");
client.AddRole("Administrator");
Для работы с JWT токенами реализуйте интерфейс IJwtProvider:
using Tisa.Authorization.Abstractions;
using Tisa.Authorization.Models;
public class MyJwtProvider : IJwtProvider
{
public AccessTokens GetAccessTokens(Client client)
{
// Реализация генерации токенов
return new AccessTokens();
}
}
Abstractions/ - Базовые интерфейсы и абстрактные классы (Permission, Role, IJwtProvider, IRoleProvider, IClientClaimsProvider)Attributes/ - Атрибуты для декларативной авторизации (HasPermissionAttribute)Filters/ - Фильтры для авторизации (зарезервировано)Handlers/ - Обработчики авторизации (PermissionAuthorizationHandler)Models/ - Модели данных (Client, AccessTokens, ClientTokenResponse)Providers/ - Провайдеры авторизации (PermissionAuthorizationPolicyProvider, ClaimsProvider, RoleProvider)Requirements/ - Требования авторизации (PermissionRequirement)Провайдер политик авторизации, который динамически создает политики на основе имен разрешений. Если политика с указанным именем не найдена, создается новая политика с требованием PermissionRequirement.
Обработчик авторизации, который проверяет наличие необходимого разрешения у пользователя. Разрешения извлекаются из claims типа CustomClientClaimTypes.Permissions.
Атрибут для декларативной авторизации действий контроллера на основе enum Permission.
Библиотека использует следующие типы claims (определены в CustomClientClaimTypes):
FullName - полное имя клиентаIsSetupComplete - флаг завершения настройкиPermissions - список разрешений клиентаОпределены константы схем аутентификации в классе AuthScheme:
ApiKey - передача токена в заголовке запросаToken - передача токена в параметре запросаMIT License
По вопросам поддержки и сообщений об ошибках: support@tisn.ru
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net8.0 net8.0 is compatible. net8.0-android net8.0-android was computed. net8.0-browser net8.0-browser was computed. net8.0-ios net8.0-ios was computed. net8.0-maccatalyst net8.0-maccatalyst was computed. net8.0-macos net8.0-macos was computed. net8.0-tvos net8.0-tvos was computed. net8.0-windows net8.0-windows was computed. net9.0 net9.0 is compatible. net9.0-android net9.0-android was computed. net9.0-browser net9.0-browser was computed. net9.0-ios net9.0-ios was computed. net9.0-maccatalyst net9.0-maccatalyst was computed. net9.0-macos net9.0-macos was computed. net9.0-tvos net9.0-tvos was computed. net9.0-windows net9.0-windows was computed. net10.0 net10.0 is compatible. net10.0-android net10.0-android was computed. net10.0-browser net10.0-browser was computed. net10.0-ios net10.0-ios was computed. net10.0-maccatalyst net10.0-maccatalyst was computed. net10.0-macos net10.0-macos was computed. net10.0-tvos net10.0-tvos was computed. net10.0-windows net10.0-windows was computed. |
Showing the top 2 NuGet packages that depend on Tisa.Authorization:
| Package | Downloads |
|---|---|
|
Tisa.XrmApp
Базовые классы и компоненты приложений ТИСА для работы с использованием NetCore. |
|
|
Tisa.BpmApp
Базовые классы и компоненты приложений ТИСА для работы с использованием NetCore на платформе BPMSoft. |
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated | |
|---|---|---|---|
| 2026.9.10.321 | 162 | 3/21/2026 | |
| 2026.9.10.316 | 176 | 3/16/2026 | |
| 2026.9.10.313 | 148 | 3/13/2026 | |
| 2026.9.10.310 | 139 | 3/8/2026 | |
| 2026.9.10.300 | 139 | 3/4/2026 | |
| 2025.9.10.1120 | 426 | 11/17/2025 | |
| 2025.9.9.1111 | 341 | 11/12/2025 | |
| 2025.9.9.1105 | 248 | 10/30/2025 | |
| 2025.9.9.1101 | 363 | 10/28/2025 | 2025.9.9.1101 is deprecated because it has critical bugs. |
| 2025.9.9.1100 | 249 | 10/28/2025 | |
| 2025.9.9.410 | 305 | 4/9/2025 | |
| 2025.9.9.400 | 384 | 4/8/2025 | 2025.9.9.400 is deprecated because it is no longer maintained and has critical bugs. |