Настройка политик аутентификации и силосов политик аутентификации

Политики аутентификации и силосы политик аутентификации позволяют ограничивать:

  • возможность входа пользователей в операционные системы на компьютерах в домене;

  • доступ пользователей к службам, выполняющимся на компьютерах в домене от имени доменных учетных записей (компьютера или пользователя).

В разделе приводятся упрощенные примеры настройки базовых сценариев использования механизма политик и силосов.

При настройке используются следующие группы подкоманд утилиты samba-tool:

Предварительные требования

Настройка выполняется на контроллере домена Эллес в домене с функциональным уровнем 2012R2 или 2016 от имени пользователя с административными полномочиями, получившим билет Kerberos при входе на сервер контроллера.

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

В домене имеются:

  • служба, запущенная от имени учетной записи компьютера и выполняющая аутентификацию по протоколу Kerberos;

  • служба, запущенная от имени учетной записи пользователя на доменном компьютере под управлением ОС Windows и выполняющая аутентификацию по протоколу Kerberos.

В домене применяются следующие групповые политики:

  • для доменных контроллеров, через которые будет происходить вход в операционную систему пользователя или получение пользователем доступа к службам, применяется политика KDC support for claims, compound authentication and Kerberos armoring (Поддержка KDC требований комплексной проверки подлинности и защиты Kerberos) с параметром Always provide claims (Всегда предоставлять утверждения);

    Путь к политике в редакторе групповых политик GPME: Computer ConfigurationPoliciesAdministrative TemplatesSystemKDC.

  • для компьютеров в домене, на которых будет выполняться вход в операционную систему и с которых пользователи будут вызывать службы, применяется групповая политика Kerberos client support for claims, compound authentication and Kerberos armoring (Поддержка клиентами Kerberos требований комплексной проверки подлинности и защиты Kerberos).

    Путь к политике в редакторе групповых политик GPME: Computer ConfigurationPoliciesAdministrative TemplatesSystemKerberos.

Настройка ограничения возможности входа в операционную систему с использованием силоса политик аутентификации

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

Последовательность шагов для настройки:

  1. Создайте политику аутентификации:

    samba-tool domain auth policy create \
        --name=AuthPolicy1 \
        --unprotect \
        --enforce \
        -H ldap://dc1.elles.inno.tech \
        --use-kerberos=required
  2. Создайте силос и добавьте в него политику:

    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
  3. Добавьте в силос:

    • учетную запись пользователя, для которой необходимо ограничить возможность входа:

      • выдайте пользователю доступ к силосу:

        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
  4. Добавьте в политику правило, которому должны удовлетворять компьютер и пользователь, чтобы пользователь мог выполнить вход в операционную систему на нем (принадлежность к силосу):

    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
  5. Проверьте корректность настройки:

    • силоса:

      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).

Последовательность шагов для настройки:

  1. Создайте новый тип утверждения на основе атрибута 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
  2. Создайте политику аутентификации:

    samba-tool domain auth policy create \
       --name=AuthPolicy2 \
       --unprotect \
       --enforce \
       -H ldap://dc1.elles.inno.tech \
       --use-kerberos=required
  3. Добавьте в политику учетную запись пользователя, для которой необходимо ограничить возможность входа:

    samba-tool user auth policy assign \
        User2 \
        --policy=AuthPolicy2 \
        -H ldap://dc1.elles.inno.tech \
        --use-kerberos=required
  4. Добавьте в политику правило доступа в формате 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
  5. Проверьте корректность настройки:

    • типа утверждения:

      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.

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

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

Последовательность шагов для настройки:

  1. Создайте политику аутентификации:

    samba-tool domain auth policy create \
        --name=AuthPolicy3 \
        --unprotect \
        --enforce \
        -H ldap://dc1.elles.inno.tech \
        --use-kerberos=required
  2. Создайте силос и добавьте в него политику:

    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
  3. Добавьте в силос:

    • учетную запись пользователя, для которой необходимо ограничить доступ:

      • выдайте пользователю доступ к силосу:

        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
  4. Добавьте в политику правило, которому должны удовлетворять компьютер и пользователь, чтобы получить доступ к службе, выполняющейся от имени учетной записи компьютера (принадлежность к силосу):

    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
  5. Проверьте корректность настройки:

    • силоса:

      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.

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

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

Последовательность шагов по настройке аналогична описанной в разделе «Настройка ограничения доступа к службе, выполняющейся под учетной записью компьютера». Вместо учетной записи компьютера указывается учетная запись пользователя, от имени которой выполняется служба.

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