Divisionz.Scaffold.WebApi.AccountService 1.0.0-rc806

Prefix Reserved
This is a prerelease version of Divisionz.Scaffold.WebApi.AccountService.
dotnet add package Divisionz.Scaffold.WebApi.AccountService --version 1.0.0-rc806
                    
NuGet\Install-Package Divisionz.Scaffold.WebApi.AccountService -Version 1.0.0-rc806
                    
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-rc806" />
                    
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-rc806" />
                    
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-rc806
                    
#r "nuget: Divisionz.Scaffold.WebApi.AccountService, 1.0.0-rc806"
                    
#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-rc806
                    
#: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-rc806&prerelease
                    
Install as a Cake Addin
#tool nuget:?package=Divisionz.Scaffold.WebApi.AccountService&version=1.0.0-rc806&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-rc806 0 1/15/2026
1.0.0-rc805 36 1/13/2026
1.0.0-rc804 40 1/12/2026
1.0.0-rc803 43 1/11/2026
1.0.0-rc802 39 1/11/2026
1.0.0-rc801 40 1/10/2026
1.0.0-rc800 48 12/30/2025
1.0.0-rc799 53 12/30/2025
1.0.0-rc798 49 12/28/2025
1.0.0-rc797 145 10/8/2025
1.0.0-rc796 125 10/8/2025
1.0.0-rc795 140 9/30/2025
1.0.0-rc794 266 9/18/2025
1.0.0-rc791 137 9/11/2025
1.0.0-rc790 140 9/1/2025
1.0.0-rc789 183 8/25/2025
1.0.0-rc786 214 8/6/2025
1.0.0-rc783 141 7/15/2025
1.0.0-rc781 133 7/7/2025
1.0.0-rc771 141 6/3/2025
1.0.0-rc770 163 6/2/2025
1.0.0-rc768 129 5/11/2025
1.0.0-rc767 126 5/11/2025
1.0.0-rc766 136 5/7/2025
1.0.0-rc765 155 5/6/2025
1.0.0-rc764 137 5/4/2025