Divisionz.Scaffold.WebApi.AccountService
1.0.0-rc806
Prefix Reserved
dotnet add package Divisionz.Scaffold.WebApi.AccountService --version 1.0.0-rc806
NuGet\Install-Package Divisionz.Scaffold.WebApi.AccountService -Version 1.0.0-rc806
<PackageReference Include="Divisionz.Scaffold.WebApi.AccountService" Version="1.0.0-rc806" />
<PackageVersion Include="Divisionz.Scaffold.WebApi.AccountService" Version="1.0.0-rc806" />
<PackageReference Include="Divisionz.Scaffold.WebApi.AccountService" />
paket add Divisionz.Scaffold.WebApi.AccountService --version 1.0.0-rc806
#r "nuget: Divisionz.Scaffold.WebApi.AccountService, 1.0.0-rc806"
#:package Divisionz.Scaffold.WebApi.AccountService@1.0.0-rc806
#addin nuget:?package=Divisionz.Scaffold.WebApi.AccountService&version=1.0.0-rc806&prerelease
#tool nuget:?package=Divisionz.Scaffold.WebApi.AccountService&version=1.0.0-rc806&prerelease
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
Т.о. алгоритм формирования пермишнов выглядит следующим образом:
- Определяются группы пользователя по следующим алгоритмам
- Для внутренних пользователей получаем группы, аналогично тому как это происходит в UserGroups
- Для внешинх пользователей аутентифицированных с помощью LDAP или Winodows SSO аутентификации отправляется серия запросов по протоколу LDAP в настроенные сервера
- По полученным группам в предыдущем пункте определяются роли, аналогично тому, как это происходит в ендпойнте GroupRole. Отдельно стоит обратить внимание на то, что для внешних пользователей необходимо обеспечить наличие таких же групп в самом AccountService
- По ролям определяются наборы разрешений
- По наборам разрешений уже можно получить сами разрешения
| Product | Versions 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. |
-
net5.0
- Divisionz.Scaffold.DB.MSSQL (>= 1.0.0-rc806)
- Divisionz.Scaffold.DB.PostgreSQL (>= 1.0.0-rc806)
- Divisionz.Scaffold.WebApi.AccountService.Bootstrap (>= 1.0.0-rc806)
- Divisionz.Scaffold.WebApi.AccountService.Model (>= 1.0.0-rc806)
- Divisionz.Scaffold.WebApi.Bootstrap (>= 1.0.0-rc806)
- Divisionz.Scaffold.WebApi.Swagger (>= 1.0.0-rc806)
- Divisionz.Scaffold.WebApi.System (>= 1.0.0-rc806)
- Divisionz.Scaffold.WebApi.System.Model (>= 1.0.0-rc806)
- MailKit (>= 4.8.0)
- Microsoft.AspNetCore.Server.Kestrel.Core (>= 2.3.6)
- Microsoft.Windows.Compatibility (>= 5.0.2)
-
net6.0
- Divisionz.Scaffold.DB.MSSQL (>= 1.0.0-rc806)
- Divisionz.Scaffold.DB.PostgreSQL (>= 1.0.0-rc806)
- Divisionz.Scaffold.WebApi.AccountService.Bootstrap (>= 1.0.0-rc806)
- Divisionz.Scaffold.WebApi.AccountService.Model (>= 1.0.0-rc806)
- Divisionz.Scaffold.WebApi.Bootstrap (>= 1.0.0-rc806)
- Divisionz.Scaffold.WebApi.Swagger (>= 1.0.0-rc806)
- Divisionz.Scaffold.WebApi.System (>= 1.0.0-rc806)
- Divisionz.Scaffold.WebApi.System.Model (>= 1.0.0-rc806)
- MailKit (>= 4.8.0)
- Microsoft.AspNetCore.Server.Kestrel.Core (>= 2.3.6)
- Microsoft.Windows.Compatibility (>= 6.0.7)
-
net8.0
- Divisionz.Scaffold.DB.MSSQL (>= 1.0.0-rc806)
- Divisionz.Scaffold.DB.PostgreSQL (>= 1.0.0-rc806)
- Divisionz.Scaffold.WebApi.AccountService.Bootstrap (>= 1.0.0-rc806)
- Divisionz.Scaffold.WebApi.AccountService.Model (>= 1.0.0-rc806)
- Divisionz.Scaffold.WebApi.Bootstrap (>= 1.0.0-rc806)
- Divisionz.Scaffold.WebApi.Swagger (>= 1.0.0-rc806)
- Divisionz.Scaffold.WebApi.System (>= 1.0.0-rc806)
- Divisionz.Scaffold.WebApi.System.Model (>= 1.0.0-rc806)
- MailKit (>= 4.8.0)
- Microsoft.AspNetCore.Server.Kestrel.Core (>= 2.3.6)
- Microsoft.Windows.Compatibility (>= 8.0.0)
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 |