Настройка политик аутентификации и силосов политик аутентификации
Политики аутентификации и силосы политик аутентификации позволяют ограничивать:
-
возможность входа пользователей в операционные системы на компьютерах в домене;
-
доступ пользователей к службам, выполняющимся на компьютерах в домене от имени доменных учетных записей (компьютера или пользователя).
В разделе приводятся упрощенные примеры настройки базовых сценариев использования механизма политик и силосов.
При настройке используются следующие группы подкоманд утилиты samba-tool:
-
samba-tool domain auth claim— см. описание в разделе «Управление утверждениями»; -
samba-tool domain auth policy— см. описание в разделе «Управление политиками аутентификации»; -
samba-tool domain auth silo— см. описание в разделе «Управление силосами политик аутентификации»; -
samba-tool user auth policyиsamba-tool user auth silo— см. описание в разделе «Администрирование пользователей».
Предварительные требования
Настройка выполняется на контроллере домена Эллес в домене с функциональным уровнем 2012R2 или 2016 от имени пользователя с административными полномочиями, получившим билет Kerberos при входе на сервер контроллера.
Политики применяются к учетным записям пользователей, которые могут быть включены или не включены в группу Protected Users.
В домене имеются:
-
служба, запущенная от имени учетной записи компьютера и выполняющая аутентификацию по протоколу Kerberos;
-
служба, запущенная от имени учетной записи пользователя на доменном компьютере под управлением ОС Windows и выполняющая аутентификацию по протоколу Kerberos.
В домене применяются следующие групповые политики:
-
для доменных контроллеров, через которые будет происходить вход в операционную систему пользователя или получение пользователем доступа к службам, применяется политика KDC support for claims, compound authentication and Kerberos armoring (Поддержка KDC требований комплексной проверки подлинности и защиты Kerberos) с параметром Always provide claims (Всегда предоставлять утверждения);
Путь к политике в редакторе групповых политик GPME: Computer Configuration → Policies → Administrative Templates → System → KDC.
-
для компьютеров в домене, на которых будет выполняться вход в операционную систему и с которых пользователи будут вызывать службы, применяется групповая политика Kerberos client support for claims, compound authentication and Kerberos armoring (Поддержка клиентами Kerberos требований комплексной проверки подлинности и защиты Kerberos).
Путь к политике в редакторе групповых политик GPME: Computer Configuration → Policies → Administrative Templates → System → Kerberos.
Настройка ограничения возможности входа в операционную систему с использованием силоса политик аутентификации
Цель настройки — сделать так, чтобы пользователь, добавленный в силос, мог выполнять вход в операционную систему только на компьютерах, включенных в тот же силос.
Последовательность шагов для настройки:
-
Создайте политику аутентификации:
samba-tool domain auth policy create \ --name=AuthPolicy1 \ --unprotect \ --enforce \ -H ldap://dc1.elles.inno.tech \ --use-kerberos=required -
Создайте силос и добавьте в него политику:
samba-tool domain auth silo create \ --name=AuthSilo1 \ --unprotect \ --enforce \ --user-authentication-policy=AuthPolicy1 \ --computer-authentication-policy=AuthPolicy1 \ --service-authentication-policy=AuthPolicy1 \ -H ldap://dc1.elles.inno.tech \ --use-kerberos=required -
Добавьте в силос:
-
учетную запись пользователя, для которой необходимо ограничить возможность входа:
-
выдайте пользователю доступ к силосу:
samba-tool domain auth silo member grant \ --name=AuthSilo1 \ --member=User1 \ -H ldap://dc1.elles.inno.tech \ --use-kerberos=required -
назначьте силос пользователю:
samba-tool user auth silo assign \ User1 \ --silo=AuthSilo1 \ -H ldap://dc1.elles.inno.tech \ --use-kerberos=required
-
-
учетную запись компьютера, на котором будет возможен вход для пользователя:
-
выдайте компьютеру доступ к силосу:
samba-tool domain auth silo member grant \ --name=AuthSilo1 \ --member=WIN1\$ \ -H ldap://dc1.elles.inno.tech \ --use-kerberos=required -
назначьте силос компьютеру:
samba-tool user auth silo assign \ WIN1\$ \ --silo=AuthSilo1 \ -H ldap://dc1.elles.inno.tech \ --use-kerberos=required
-
-
-
Добавьте в политику правило, которому должны удовлетворять компьютер и пользователь, чтобы пользователь мог выполнить вход в операционную систему на нем (принадлежность к силосу):
samba-tool domain auth policy user-allowed-to-authenticate-from set \ --name=AuthPolicy1 \ --device-silo=AuthSilo1 \ -H ldap://dc1.elles.inno.tech \ --use-kerberos=required -
Проверьте корректность настройки:
-
силоса:
samba-tool domain auth silo view \ --name=AuthSilo1 \ -H ldap://dc1.elles.inno.tech \ --use-kerberos=required { "cn": "AuthSilo1", "distinguishedName": "CN=AuthSilo1,CN=AuthN Silos,CN=AuthN Policy Configuration,CN=Services,CN=Configuration,DC=elles,DC=inno,DC=tech", "dn": "CN=AuthSilo1,CN=AuthN Silos,CN=AuthN Policy Configuration,CN=Services,CN=Configuration,DC=elles,DC=inno,DC=tech", "instanceType": 4, "msDS-AuthNPolicySiloEnforced": true, "msDS-AuthNPolicySiloMembers": [ "CN=User1,CN=Users,DC=elles,DC=inno,DC=tech", "CN=WIN1,CN=Computers,DC=elles,DC=inno,DC=tech" ], "msDS-ComputerAuthNPolicy": "CN=AuthPolicy1,CN=AuthN Policies,CN=AuthN Policy Configuration,CN=Services,CN=Configuration,DC=elles,DC=inno,DC=tech", "msDS-ServiceAuthNPolicy": "CN=AuthPolicy1,CN=AuthN Policies,CN=AuthN Policy Configuration,CN=Services,CN=Configuration,DC=elles,DC=inno,DC=tech", "msDS-UserAuthNPolicy": "CN=AuthPolicy1,CN=AuthN Policies,CN=AuthN Policy Configuration,CN=Services,CN=Configuration,DC=elles,DC=inno,DC=tech", "name": "AuthSilo1", "objectCategory": "CN=ms-DS-AuthN-Policy-Silo,CN=Schema,CN=Configuration,DC=elles,DC=inno,DC=tech", "objectClass": [ "top", "msDS-AuthNPolicySilo" ], "objectGUID": "313bce1e-d72c-483b-aa27-731ac9d65e2c" } -
правила аутентификации:
samba-tool domain auth policy view \ --name=AuthPolicy1 \ -H ldap://dc1.elles.inno.tech \ --use-kerberos=required { "cn": "AuthPolicy1", "distinguishedName": "CN=AuthPolicy1,CN=AuthN Policies,CN=AuthN Policy Configuration,CN=Services,CN=Configuration,DC=elles,DC=inno,DC=tech", "dn": "CN=AuthPolicy1,CN=AuthN Policies,CN=AuthN Policy Configuration,CN=Services,CN=Configuration,DC=elles,DC=inno,DC=tech", "instanceType": 4, "msDS-AuthNPolicyEnforced": true, "msDS-StrongNTLMPolicy": 0, "msDS-UserAllowedToAuthenticateFrom": "O:SYG:SYD:(XA;OICI;CR;;;WD;(@USER.ad://ext/AuthenticationSilo == \"AuthSilo1\"))", "name": "AuthPolicy1", "objectCategory": "CN=ms-DS-AuthN-Policy,CN=Schema,CN=Configuration,DC=elles,DC=inno,DC=tech", "objectClass": [ "top", "msDS-AuthNPolicy" ], "objectGUID": "ab8f1da8-c6d3-4446-86c8-e59cf86c706f" }
-
В результате настройки пользователь User1 может выполнять вход в операционную систему только на компьютере WIN1.
Настройка ограничения возможности входа в операционную систему с использованием утверждения
Цель настройки — сделать так, чтобы пользователь мог выполнять вход в операционную систему только на компьютерах, удовлетворяющих правилу аутентификации на основе утверждения (claim).
Последовательность шагов для настройки:
-
Создайте новый тип утверждения на основе атрибута
Common-Nameдля учетных записей пользователей и компьютеров:samba-tool domain claim claim-type create \ --name=cn \ --attribute=cn \ --description=Common-Name \ --class=User \ --class=Computer \ --enable \ --unprotect \ -H ldap://dc1.elles.inno.tech \ --use-kerberos=required
-
Создайте политику аутентификации:
samba-tool domain auth policy create \ --name=AuthPolicy2 \ --unprotect \ --enforce \ -H ldap://dc1.elles.inno.tech \ --use-kerberos=required
-
Добавьте в политику учетную запись пользователя, для которой необходимо ограничить возможность входа:
samba-tool user auth policy assign \ User2 \ --policy=AuthPolicy2 \ -H ldap://dc1.elles.inno.tech \ --use-kerberos=required -
Добавьте в политику правило доступа в формате SDDL, которому должно удовлетворять устройство (компьютер), чтобы пользователь мог выполнить вход в операционную систему на нем. Правило проверяет соответствие утверждения (claim) устройства созданного ранее типа
cnзаданному значению (CN компьютера):samba-tool domain auth policy modify \ --name=AuthPolicy2 \ --user-allowed-to-authenticate-from="O:SYG:SYD:(XA;OICI;CR;;;WD;(@USER.ad://ext/cn:20c7656fcc182bba == \"WIN2\"))" -H ldap://dc1.elles.inno.tech \ --use-kerberos=required
-
Проверьте корректность настройки:
-
типа утверждения:
samba-tool domain claim claim-type view \ --name=cn \ -H ldap://dc1.elles.inno.tech \ --use-kerberos=required { "Enabled": true, "cn": "ad://ext/cn:20c7656fcc182bba", "description": "Common-Name", "displayName": "cn", "distinguishedName": "CN=ad://ext/cn:20c7656fcc182bba,CN=Claim Types,CN=Claims Configuration,CN=Services,CN=Configuration,DC=elles,DC=inno,DC=tech", "dn": "CN=ad://ext/cn:20c7656fcc182bba,CN=Claim Types,CN=Claims Configuration,CN=Services,CN=Configuration,DC=elles,DC=inno,DC=tech", "instanceType": 4, "msDS-ClaimAttributeSource": "CN=Common-Name,CN=Schema,CN=Configuration,DC=elles,DC=inno,DC=tech", "msDS-ClaimIsSingleValued": true, "msDS-ClaimSourceType": "AD", "msDS-ClaimTypeAppliesToClass": [ "CN=User,CN=Schema,CN=Configuration,DC=elles,DC=inno,DC=tech", "CN=Computer,CN=Schema,CN=Configuration,DC=elles,DC=inno,DC=tech" ], "msDS-ClaimValueType": 3, "name": "ad://ext/cn:20c7656fcc182bba", "objectCategory": "CN=ms-DS-Claim-Type,CN=Schema,CN=Configuration,DC=elles,DC=inno,DC=tech", "objectClass": [ "top", "msDS-ClaimTypePropertyBase", "msDS-ClaimType" ], "objectGUID": "5c9f991e-ce10-437c-ad06-b6b58559195b" } -
политики аутентификации:
samba-tool domain auth policy view \ --name=AuthPolicy2 \ -H ldap://dc1.elles.inno.tech \ --use-kerberos=required { "cn": "AuthPolicy12", "distinguishedName": "CN=AuthPolicy2,CN=AuthN Policies,CN=AuthN Policy Configuration,CN=Services,CN=Configuration,DC=elles,DC=inno,DC=tech", "dn": "CN=AuthPolicy2,CN=AuthN Policies,CN=AuthN Policy Configuration,CN=Services,CN=Configuration,DC=elles,DC=inno,DC=tech", "instanceType": 4, "msDS-AuthNPolicyEnforced": true, "msDS-StrongNTLMPolicy": 0, "msDS-UserAllowedToAuthenticateFrom": "O:SYG:SYD:(XA;OICI;CR;;;WD;(@USER.ad://ext/cn:20c7656fcc182bba == \"WIN2\"))", "name": "AuthPolicy1", "objectCategory": "CN=ms-DS-AuthN-Policy,CN=Schema,CN=Configuration,DC=elles,DC=inno,DC=tech", "objectClass": [ "top", "msDS-AuthNPolicy" ], "objectGUID": "127dafaf-c32c-444a-b9ab-07280a3c0c7c" }
-
В результате настройки пользователь User2 может выполнять вход в операционную систему только на компьютере WIN2.
Настройка ограничения доступа к службе, выполняющейся под учетной записью компьютера
Цель настройки — сделать так, чтобы только пользователь, добавленный в силос, мог вызывать службу, выполняющуюся под учетной записью компьютера, которая включена в тот же силос.
Последовательность шагов для настройки:
-
Создайте политику аутентификации:
samba-tool domain auth policy create \ --name=AuthPolicy3 \ --unprotect \ --enforce \ -H ldap://dc1.elles.inno.tech \ --use-kerberos=required -
Создайте силос и добавьте в него политику:
samba-tool domain auth silo create \ --name=AuthSilo2 \ --unprotect \ --enforce \ --user-authentication-policy=AuthPolicy3 \ --computer-authentication-policy=AuthPolicy3 \ --service-authentication-policy=AuthPolicy3 \ -H ldap://dc1.elles.inno.tech \ --use-kerberos=required
-
Добавьте в силос:
-
учетную запись пользователя, для которой необходимо ограничить доступ:
-
выдайте пользователю доступ к силосу:
samba-tool domain auth silo member grant \ --name=AuthSilo2 \ --member=User3 \ -H ldap://dc1.elles.inno.tech \ --use-kerberos=required -
назначьте силос пользователю:
samba-tool user auth silo assign \ User3 \ --silo=AuthSilo2 \ -H ldap://dc1.elles.inno.tech \ --use-kerberos=required
-
-
учетную запись компьютера, от имени которой выполняется служба:
-
выдайте компьютеру доступ к силосу:
samba-tool domain auth silo member grant \ --name=AuthSilo2 \ --member=WIN3\$ \ -H ldap://dc1.elles.inno.tech \ --use-kerberos=required -
назначьте силос компьютеру:
samba-tool user auth silo assign \ WIN3\$ \ --silo=AuthSilo3 \ -H ldap://dc1.elles.inno.tech \ --use-kerberos=required
-
-
-
Добавьте в политику правило, которому должны удовлетворять компьютер и пользователь, чтобы получить доступ к службе, выполняющейся от имени учетной записи компьютера (принадлежность к силосу):
samba-tool domain auth policy computer-allowed-to-authenticate-to set \ --name=AuthPolicy3 \ --by-silo=AuthSilo2 \ -H ldap://dc1.elles.inno.tech \ --use-kerberos=required -
Проверьте корректность настройки:
-
силоса:
samba-tool domain auth silo view \ --name=AuthSilo2 \ -H ldap://dc1.elles.inno.tech \ --use-kerberos=required { "cn": "AuthSilo2", "distinguishedName": "CN=AuthSilo2,CN=AuthN Silos,CN=AuthN Policy Configuration,CN=Services,CN=Configuration,DC=elles,DC=inno,DC=tech", "dn": "CN=AuthSilo1,CN=AuthN Silos,CN=AuthN Policy Configuration,CN=Services,CN=Configuration,DC=elles,DC=inno,DC=tech", "instanceType": 4, "msDS-AuthNPolicySiloEnforced": true, "msDS-AuthNPolicySiloMembers": [ "CN=User3,CN=Users,DC=elles,DC=inno,DC=tech", "CN=WIN3,CN=Computers,DC=elles,DC=inno,DC=tech" ], "msDS-ComputerAuthNPolicy": "CN=AuthPolicy3,CN=AuthN Policies,CN=AuthN Policy Configuration,CN=Services,CN=Configuration,DC=elles,DC=inno,DC=tech", "msDS-ServiceAuthNPolicy": "CN=AuthPolicy3,CN=AuthN Policies,CN=AuthN Policy Configuration,CN=Services,CN=Configuration,DC=elles,DC=inno,DC=tech", "msDS-UserAuthNPolicy": "CN=AuthPolicy3,CN=AuthN Policies,CN=AuthN Policy Configuration,CN=Services,CN=Configuration,DC=elles,DC=inno,DC=tech", "name": "AuthSilo2", "objectCategory": "CN=ms-DS-AuthN-Policy-Silo,CN=Schema,CN=Configuration,DC=elles,DC=inno,DC=tech", "objectClass": [ "top", "msDS-AuthNPolicySilo" ], "objectGUID": "c3bb20d6-1bca-4f6b-9610-f369404b512c" } -
правила аутентификации:
samba-tool domain auth policy view \ --name=AuthPolicy3 \ -H ldap://dc1.elles.inno.tech \ --use-kerberos=required { "cn": "AuthPolicy3", "distinguishedName": "CN=AuthPolicy3,CN=AuthN Policies,CN=AuthN Policy Configuration,CN=Services,CN=Configuration,DC=elles,DC=inno,DC=tech", "dn": "CN=AuthPolicy3,CN=AuthN Policies,CN=AuthN Policy Configuration,CN=Services,CN=Configuration,DC=elles,DC=inno,DC=tech", "instanceType": 4, "msDS-AuthNPolicyEnforced": true, "msDS-StrongNTLMPolicy": 0, "msDS-ComputerAllowedToAuthenticateTo": "O:SYG:SYD:(XA;OICI;CR;;;WD;(@USER.ad://ext/AuthenticationSilo == \"AuthSilo2\"))", "name": "AuthPolicy3", "objectCategory": "CN=ms-DS-AuthN-Policy,CN=Schema,CN=Configuration,DC=elles,DC=inno,DC=tech", "objectClass": [ "top", "msDS-AuthNPolicy" ], "objectGUID": "7fbe293c-e5e3-4d2d-b389-2a2e6bd49e93" }
-
В результате настройки только пользователь User3 может вызывать службу, выполняющуюся под учетной записью компьютера WIN3.
Настройка ограничения доступа к службе, выполняющейся под учетной записью пользователя
Цель настройки — сделать так, чтобы только пользователь, добавленный в силос, мог вызывать службу, выполняющуюся под учетной записью пользователя, которая включена в тот же силос.
Последовательность шагов по настройке аналогична описанной в разделе «Настройка ограничения доступа к службе, выполняющейся под учетной записью компьютера». Вместо учетной записи компьютера указывается учетная запись пользователя, от имени которой выполняется служба.
В результате настройки только пользователь в силосе может вызывать службу, выполняющуюся под учетной записью другого пользователя, добавленной в тот же силос.