Divisionz.Scaffold.WebApi.AccountService 1.0.0-rc814

Prefix Reserved
This is a prerelease version of Divisionz.Scaffold.WebApi.AccountService.
dotnet add package Divisionz.Scaffold.WebApi.AccountService --version 1.0.0-rc814
                    
NuGet\Install-Package Divisionz.Scaffold.WebApi.AccountService -Version 1.0.0-rc814
                    
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="Divisionz.Scaffold.WebApi.AccountService" Version="1.0.0-rc814" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Divisionz.Scaffold.WebApi.AccountService" Version="1.0.0-rc814" />
                    
Directory.Packages.props
<PackageReference Include="Divisionz.Scaffold.WebApi.AccountService" />
                    
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 Divisionz.Scaffold.WebApi.AccountService --version 1.0.0-rc814
                    
#r "nuget: Divisionz.Scaffold.WebApi.AccountService, 1.0.0-rc814"
                    
#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 Divisionz.Scaffold.WebApi.AccountService@1.0.0-rc814
                    
#: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=Divisionz.Scaffold.WebApi.AccountService&version=1.0.0-rc814&prerelease
                    
Install as a Cake Addin
#tool nuget:?package=Divisionz.Scaffold.WebApi.AccountService&version=1.0.0-rc814&prerelease
                    
Install as a Cake Tool

Divisionz.Scaffold.WebApi.AccountService

Account Service формирует JWT токен пользователя соотвествующий rfc7519. Для формирования подписи используется асимметричное шифрование RSA с алгоритмом RS512. Account Service может аутентифицировать пользователя следующим списком возможностей:

  • Пара логин, пароль. Это внутренний пользователи сервиса, которые может создавать администратор. Пароли, пользователи при этом хранятся в БД
  • LDAP аутентификация. Производится при помощи вызова метода Bind протокола LDAP. Логин и пароль пользователя при этом передаётся на сервер.
  • Windows SSO аутентификация. В этом случае используется схема Negotiate, котороя позволяет выбрать между клиенту выбрать между NTLM и Kerberos аутентификацией. В этом случае логин и пароль не передаётся в сторону AccountService. Адрес аккант сервиса должен быть в списке доверенных узлов корпоративной сети, в "Свойстве обозревателя". Для этой зоны должна быть включена опция "автоматическая передача данных пользователя".

В полезной нагрузке JWT токена присутствует claim с типом 'http://schemas.divisionz.ru/api/identity/claims/permissions' значением которого являются перечисленные через запятую разрешения. Например "CreateTask,DeleteTask".

Многие методы api других сервисов настроены на проверку наличия отдельных разрешений. При этом, по умолчанию, во время запуска сервиса происходит синхронизация пермишнов относящихся к этому сервису, что позволяет держать набор разрешений всегда корректным.

Для того чтобы AccountService выдал все необходимые разрешения пользователям необходимо создать следующие объекты:

  • Набор разрешений (PermissionSet) и с помощью PermissionSetPermissions наполнить его разрешениями. Это просто удобная группировка разрешений.
  • Создать Роли (Roles) и добавить к каждой роле набор разрешений (RolePermissionSet)
  • Создать Группы (Groups) и к каждой группе назначить Роль с помощью GroupRole

Т.о. алгоритм формирования пермишнов выглядит следующим образом:

  1. Определяются группы пользователя по следующим алгоритмам
    1. Для внутренних пользователей получаем группы, аналогично тому как это происходит в UserGroups
    2. Для внешинх пользователей аутентифицированных с помощью LDAP или Winodows SSO аутентификации отправляется серия запросов по протоколу LDAP в настроенные сервера
  2. По полученным группам в предыдущем пункте определяются роли, аналогично тому, как это происходит в ендпойнте GroupRole. Отдельно стоит обратить внимание на то, что для внешних пользователей необходимо обеспечить наличие таких же групп в самом AccountService
  3. По ролям определяются наборы разрешений
  4. По наборам разрешений уже можно получить сами разрешения
Product Compatible and additional computed target framework versions.
.NET net5.0 is compatible.  net5.0-windows was computed.  net6.0 is compatible.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 was computed.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  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
1.0.0-rc814 35 5/24/2026
1.0.0-rc813 36 5/23/2026
1.0.0-rc812 36 5/21/2026
1.0.0-rc811 44 5/16/2026
1.0.0-rc810 46 5/16/2026
1.0.0-rc809 51 4/14/2026
1.0.0-rc808 76 2/11/2026
1.0.0-rc807 69 2/8/2026
1.0.0-rc806 77 1/15/2026
1.0.0-rc805 74 1/13/2026
1.0.0-rc804 70 1/12/2026
1.0.0-rc803 73 1/11/2026
1.0.0-rc802 70 1/11/2026
1.0.0-rc801 71 1/10/2026
1.0.0-rc800 74 12/30/2025
1.0.0-rc799 79 12/30/2025
1.0.0-rc798 75 12/28/2025
1.0.0-rc797 197 10/8/2025
1.0.0-rc796 144 10/8/2025
1.0.0-rc795 156 9/30/2025
Loading failed