Поделиться через


Делегирование доступа к командлету PowerShell AD FS пользователям, не являющихся администраторами

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

С помощью Just Enough Administration (JEA) клиенты теперь могут делегировать разрешения для определенных командлетов различным группам сотрудников.

Хороший пример этого варианта использования позволяет сотрудникам службы технической поддержки запрашивать состояние блокировки учетной записи AD FS и сбрасывать состояние блокировки учетной записи в AD FS после проверки пользователя. В этом случае командлеты, которые необходимо делегировать, следующие:

  • Get-ADFSAccountActivity
  • Set-ADFSAccountActivity
  • Reset-ADFSAccountLockout

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

Создание необходимых групп, необходимых для предоставления пользователям разрешений

  1. Создайте групповую управляемую учетную запись службы. Учетная запись gMSA используется для предоставления пользователю JEA доступа к сетевым ресурсам в качестве других компьютеров или веб-служб. Он предоставляет удостоверение домена, которое можно использовать для проверки подлинности ресурсов на любом компьютере в домене. Учетной записи gMSA предоставляются необходимые права администратора на следующем этапе настройки. В этом примере мы вызываем учетную запись gMSAContoso.
  2. Создайте группу Active Directory, которую можно заполнить пользователями, которым необходимо предоставить права на делегированные команды. В этом примере персонал службы технической поддержки предоставляет разрешения на чтение, обновление и сброс состояния блокировки AD FS. Мы ссылаемся на эту группу во всем примере как JEAContoso.

Установка учетной записи gMSA на сервере AD FS

Создайте учетную запись службы с правами администратора на серверы AD FS. Это можно выполнить на контроллере домена или удаленно, если установлен пакет AD RSAT. Учетная запись службы должна быть создана в том же лесу, что и сервер AD FS.

Измените значения примеров в соответствии с конфигурацией вашей фермы.

 # This command should only be run if this is the first time gMSA accounts are enabled in the forest
Add-KdsRootKey -EffectiveTime ((get-date).addhours(-10)) 

# Run this on every node that you want to have JEA configured on
$adfsServer = Get-ADComputer server01.contoso.com

# Run targeted at domain controller
$serviceaccount = New-ADServiceAccount gMSAcontoso -DNSHostName <FQDN of the domain containing the KDS key> -PrincipalsAllowedToRetrieveManagedPassword $adfsServer –passthru

# Run this on every node
Add-ADComputerServiceAccount -Identity server01.contoso.com -ServiceAccount $ServiceAccount

Установите учетную запись gMSA на сервере AD FS. Это необходимо выполнить на каждом узле AD FS в ферме.

Install-ADServiceAccount gMSAcontoso

Предоставление прав администратора учетной записи gMSA

Если ферма использует делегированное администрирование, предоставьте права администратора учетной записи gMSA, добавив ее в существующую группу, которая имеет делегированный доступ администратора.

Если ферма не использует делегированное администрирование, предоставьте права администратора учетной записи gMSA, сделав ее группой локального администрирования на всех серверах AD FS.

Создайте файл роли JEA

На сервере AD FS создайте роль JEA в файле блокнота. Инструкции по созданию роли предоставляются в возможностях ролей JEA.

В этом примере командлеты делегированы как Reset-AdfsAccountLockout, Get-ADFSAccountActivity, and Set-ADFSAccountActivity.

Пример роли JEA для делегирования доступа к командлетам Reset-ADFSAccountLockout, Get-ADFSAccountActivity и Set-ADFSAccountActivity:

@{
GUID = 'b35d3985-9063-4de5-81f8-241be1f56b52'
ModulesToImport = 'adfs'
VisibleCmdlets = 'Reset-AdfsAccountLockout', 'Get-ADFSAccountActivity', 'Set-ADFSAccountActivity'
}

Создание файла конфигурации сеанса JEA

Следуйте инструкциям по созданию файла конфигурации сеанса JEA . Файл конфигурации определяет, кто может использовать конечную точку JEA и какие возможности им доступны.

Возможности роли ссылаются на неструктурированное имя (имя файла без расширения) файла возможностей роли. Если в системе доступно несколько ролевых возможностей с одинаковым однообразным именем, PowerShell использует свой неявный порядок поиска, чтобы выбрать файл возможностей активной роли. Он не предоставляет доступ ко всем файлам возможностей ролей с одинаковым именем.

Чтобы указать файл возможностей роли по пути, используйте аргумент RoleCapabilityFiles. Для вложенной папки JEA ищет допустимые модули PowerShell, содержащие папку RoleCapabilities, при этом аргумент RoleCapabilityFiles должен быть изменен на RoleCapabilities.

Пример файла конфигурации сеанса:

@{
SchemaVersion = '2.0.0.0'
GUID = '54c8d41b-6425-46ac-a2eb-8c0184d9c6e6'
SessionType = 'RestrictedRemoteServer'
GroupManagedServiceAccount =  'CONTOSO\gMSAcontoso'
RoleDefinitions = @{ JEAcontoso = @{ RoleCapabilityFiles = 'C:\Program Files\WindowsPowershell\Modules\AccountActivityJEA\RoleCapabilities\JEAAccountActivityResetRole.psrc' } }
}

Сохраните файл конфигурации сеанса.

Рекомендуется протестировать файл конфигурации сеанса , если вы редактировали файл pssc вручную с помощью текстового редактора, чтобы убедиться, что синтаксис правильно. Если файл конфигурации сеанса не проходит этот тест, он не успешно зарегистрирован в системе.

Установка конфигурации сеанса JEA на сервере AD FS

Установка конфигурации сеанса JEA на сервере AD FS

Register-PSSessionConfiguration -Path .\JEASessionConfig.pssc -name "AccountActivityAdministration" -force

Операционные инструкции

После настройки ведение журнала и аудита JEA можно использовать для определения того, имеют ли правильные пользователи доступ к конечной точке JEA.

Чтобы использовать делегированные команды, выполните следующие действия.

Enter-pssession -ComputerName server01.contoso.com -ConfigurationName "AccountActivityAdministration" -Credential <User Using JEA>
Get-AdfsAccountActivity <User>