{{/* Учётные записи: добавить сотрудника (роль плиткой, логин, пароль) и сотрудники из домена (подключение, поиск сотрудников и групп, доступ группам). Общий блок шага мастера «Учётные записи» и раздела Настройка → Пользователи. Вход: withRet <куда вернуться после сохранения>. */}} {{define "accountsAdd"}}{{$U := .D.Users}}

Кого добавить

{{range $r := $U.Roles}} {{end}}
{{if $U.Modules}}
Дополнительно к роли:{{range $U.Modules}}{{end}}
{{end}}

Пароль передайте сотруднику лично; сменить его можно позже: Настройка → Пользователи → «Изменить».

{{end}} {{define "accountsAD"}} {{$A := $.D.Settings.Auth}}{{$D := adDraft}}{{$on := and $A.ADEnabled $A.ADBindUser}}
Сотрудники из домена (Active Directory) — необязательно {{if $on}}
Домен {{$A.ADDomain}} подключёнконтроллер {{$A.ADServerHost}} · служебная запись {{$A.ADBindUser}}{{if $A.ADCAPEM}} · сертификат контроллера проверяется{{end}}
{{if $A.ADGroups}}
Группы домена с доступом в bj — их сотрудники входят без отдельной учётной записи:
{{range $A.ADGroups}}
{{.Name}} → {{roleTitle .Role}}
{{end}}
{{end}} {{end}}
{{if and $A.ADEnabled $A.ADBindUser}}Другой домен или учётная запись{{else}}Подключить домен{{end}} {{/* пароль в страницу не попадает никогда — только пометка, что он есть */}} {{$bu := $A.ADBindUser}}{{$pw := ""}}{{if $A.ADBindPassword}}{{$pw = "задан"}}{{end}}{{$fs := ""}}{{$fd := ""}}{{$adv := false}} {{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

bj читает AD обычной доменной учётной записью: проверяет пароль пользователя и его группы. Прав администратора домена ей не нужно — читать каталог могут все пользователи домена. Создаёт запись администратор домена:

  1. На контроллере домена (или компьютере с RSAT) откройте PowerShell от имени администратора домена.
  2. Скопируйте и выполните скрипт ниже — он спросит пароль для svc-bj.
  3. Добавьте сотрудников в группы bj-admins, bj-operators, bj-risk, bj-viewers — по ним bj назначит роли (группы можно переназначить после подключения).
  4. Здесь введите 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 обновите его здесь.

Расширенные настройки — если домен не найдётся сам

Пусто — bj ищет сам. Контроллер можно указать именем (bj попробует LDAPS 636, затем LDAP 389 со StartTLS) или адресом со схемой: ldaps://dc1.corp.example.ru:636.

{{if $D}}

Не подключено: {{$D.Err}}{{if not $D.Cert}} Поправьте и нажмите «Подключить» ещё раз — введённое сохранено.{{end}}

{{template "adTrustCard" (withRet $D $.Ret)}}{{end}}
{{end}}