diff --git a/internal/lkgateway/web/templates/part_accounts.html b/internal/lkgateway/web/templates/part_accounts.html index 0228365..5c748d3 100644 --- a/internal/lkgateway/web/templates/part_accounts.html +++ b/internal/lkgateway/web/templates/part_accounts.html @@ -82,6 +82,38 @@ {{if $D}}{{$bu = $D.BindUser}}{{$pw = ""}}{{if $D.HasPassword}}{{$pw = "введён"}}{{end}}{{$fs = $D.Form.Server}}{{$fd = $D.Form.Domain}}{{$adv = $D.Form.Adv}}{{end}}
Введите учётную запись домена и пароль — домен и его контроллеры bj найдёт сам. Прав администратора домена не нужно; лучше отдельная служебная запись (например svc-bj): bj хранит её пароль, чтобы искать сотрудников.
+bj читает AD обычной доменной учётной записью: проверяет пароль пользователя и его группы. Прав администратора домена ей не нужно — читать каталог могут все пользователи домена. Создаёт запись администратор домена:
+svc-bj.bj-admins, bj-operators, bj-risk, bj-viewers — по ним bj назначит роли (группы можно переназначить после подключения).svc-bj@{{with $A.ADDomain}}{{.}}{{else}}ваш-домен{{end}} и пароль — «Подключить».# Bridge&Join: служебная учётная запись для чтения AD и группы ролей
+Import-Module ActiveDirectory
+$dom = Get-ADDomain # домен {{with $A.ADDomain}}{{.}}{{else}}ваш-домен{{end}}
+$name = "svc-bj"
+$ou = $dom.UsersContainer # или своё OU, например "OU=Service Accounts,$($dom.DistinguishedName)"
+$pwd = Read-Host "Пароль для $name (длинный, случайный)" -AsSecureString
+New-ADUser -Name $name -SamAccountName $name -UserPrincipalName "$name@$($dom.DNSRoot)" `
+ -Path $ou -AccountPassword $pwd -Enabled $true `
+ -PasswordNeverExpires $true -CannotChangePassword $true `
+ -Description "Bridge&Join: чтение AD для входа пользователей (без прав администратора)"
+# Группы, по которым bj назначает роли
+@{ "bj-admins" = "администраторы bj"; "bj-operators" = "операторы депозитария";
+ "bj-risk" = "риск-менеджеры (НПР)"; "bj-viewers" = "наблюдатели" }.GetEnumerator() | ForEach-Object {
+ if (-not (Get-ADGroup -Filter "Name -eq '$($_.Key)'")) {
+ New-ADGroup -Name $_.Key -GroupScope Global -GroupCategory Security -Path $ou -Description "Bridge&Join: $($_.Value)"
+ }
+}
+Write-Host "Готово. В bj: учётная запись $name@$($dom.DNSRoot)"
+ Без модуля ActiveDirectory (cmd от администратора домена, * — запросит пароль):
dsadd user "CN=svc-bj,CN=Users,{{with $A.ADBaseDN}}{{.}}{{else}}DC=corp,DC=example,DC=ru{{end}}" -samid svc-bj -upn svc-bj@{{with $A.ADDomain}}{{.}}{{else}}ваш-домен{{end}} -pwd * -pwdneverexpires yes -canchpwd no -desc "Bridge&Join: чтение AD"+
Рекомендуем: запретить этой записи интерактивный вход и вход по RDP (групповая политика «Запретить локальный вход», «Запретить вход через службу удалённых рабочих столов») — она нужна только для чтения каталога. Пароль bj хранит у себя; при смене пароля в AD обновите его здесь.
+