Вход клиента в систему с помощью Active Directory

Compatible Nitrokeys

3A/C/Mini

Passkey

HSM 2

Pro 2

FIDO2

Storage 2

Start

U2F

active

inactive

inactive

inactive

inactive

inactive

inactive

inactive

This document explains how to use the PIV smart card of a Nitrokey 3 for logon with Active Directory. It is available as of firmware version 1.8 and higher.

В будущем эта ручная инициализация может быть автоматизирована с помощью Windows MiniDriver.

Пререквизиты

Для настройки требуется административный доступ к машинам, на которых запущены службы каталогов Active Directory Directory Directory Services (ADDS) и Active Directory Certificate Services (ADCS). На клиентской машине требуется только доступ к соответствующей учетной записи пользователя, используемой для входа в систему.

  • Windows server (supported versions are Windows Server 2016, 2019, 2022, 2025 in Standard and Enterprise editions)
    • Роль ADDS установлена и настроена.

    • Установлена роль ADCS и настроен Enterprise-CA с корневым сертификатом.
      • Для каждого контроллера домена (DC) должен быть выпущен сертификат Domain Controller, Domain Controller Authentication, и Kerberos Authentication.

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

  • Клиент Windows (поддерживаются версии Windows 10, 11 в редакциях Professional и Enterprise)
    • Клиент должен быть членом домена Active Directory (AD).

  • Nitrokey 3 with PIV smart card.

Настройка входа по смарт-карте для использования с Active Directory (AD)

Для входа в систему с помощью смарт-карты требуется шаблон сертификата в центре сертификации (ЦС) домена. Этот шаблон определяет значения и ограничения пользовательских сертификатов. Он используется для подписи запроса на сертификат (CSR) при инициализации Nitrokey.

  1. Подписание запроса сертификата для входа в систему с помощью смарт-карты требует создания шаблона сертификата в центре сертификации.

    1. В командной строке, PowerShell или Run введите certtmpl.msc и нажмите Enter.

    2. На панели деталей выберите шаблон Smartcard Logon.

    3. В строке меню нажмите Действия → Все задачи → Дублировать шаблон.

    4. Настройте приведенные ниже параметры шаблона в соответствии с указанной вкладкой.

      Совместимость
      • Отключить Показать полученные изменения

      • Установите Certificate Authority и Certificate recipient для самых старых клиентов в домене, которые должны использовать вход по смарт-карте.

        Важно

        Если вы хотите использовать ключи Elliptic Curve (EC), ваши клиенты должны быть не старше Windows Server 2008 и Windows Vista.

      Общие сведения
      • Установите имя отображения шаблона **** .

      • Установите Срок действия и Период продления.

      Обработка запросов
      • Установите цель Подпись и вход по смарт-карте.

      Криптография
      • Установите категорию провайдера Key Storage Provider.

      • Задайте имя алгоритма и минимальный размер ключа.

        Важно

        Microsoft recommends to use the RSA algorithm with a key length of 2048 Bit. If you choose to use Elliptic Curve (EC) keys you need to make additional changes on your client computers.

      Название предмета
      • Установите Поставку по запросу.

    5. Подтвердите создание шаблона с помощью OK.

  2. После создания шаблона сертификата необходимо выпустить его для использования клиентами.

    1. From the Command Line, PowerShell, or Run, type certmgr.msc and press Enter.

    2. В панели навигации разверните центр сертификации (ЦС) и перейдите по ссылке Шаблоны сертификатов.

    3. В строке меню нажмите Действие → Новый → Шаблон сертификата для выдачи.

    4. Выберите шаблон сертификата, который вы хотите выпустить, и подтвердите выбор с помощью OK.

Предоставление Nitrokey 3 для входа по смарт-карте в Active Directory

The smartcard logon requires to provision a Nitrokey for a user in Active Directory. The provisioning contains the private key and Certificate Singing Request (CSR) generation. The certificate is then written to the Nitrokey.

Предупреждение

Перед выполнением описанных ниже действий убедитесь, что учетная запись пользователя Active Directory, которую вы хотите использовать для входа по смарт-карте, существует. Время создания сертификата раньше времени создания учетной записи пользователя приведет к неудачному входу в систему.

  1. Сгенерируйте закрытый ключ и запишите CSR в файл с помощью следующей команды.

    nitropy nk3 piv --experimental generate-key --key 9A --algo <algorithm> --subject-name <subject-name> --subject-alt-name-upn <subject-alternative-name> --path <file>
    

    The value of <algorithm> is the used algorithm with its key length, e.g. rsa2048. The value of <subject-name> corresponds to the value of the distinguishedName attribute of the Active Directory user account. In most cases it is only necessary to include the common name part of the distinguished name, e.g. CN=John Doe. The value of <subject-alternative-name> corresponds to the value of the userPrincipalName attribute of the Active Directory user account.

  2. Подпишите CSR в центре сертификации (ЦС) домена с помощью следующей команды.

    certreq -attrib CertificateTemplate:<template-name> -submit <file>
    

    Значение <template-name> - это имя шаблона сертификата для входа в систему с помощью смарт-карты. Значение <file> - это файл запроса на пение сертификата.

  3. Запишите подписанный сертификат в Nitrokey с помощью следующей команды.

    nitropy nk3 piv --experimental write-certificate --key 9A --format PEM --path <file>
    

    Значение <file> - это файл сертификата.

  4. Сопоставьте сертификат с учетной записью пользователя Active Directory. Создайте сопоставление сертификатов с помощью приведенной ниже команды.

    nitropy nk3 piv --experimental get-windows-auth-mapping
    

    Choose one of the offered certificate mappings.

    Совет

    Microsoft рекомендует использовать отображение X509IssuerSerialNumber.

    Запишите выбранное сопоставление в атрибут altSecurityIdentities объекта пользователя Active Directory. Для этой операции можно использовать приложение Active Directory Users and Computers или PowerShell.

    1. From the Command Line, PowerShell, or Run, type dsa.msc and press Enter.

    2. In the menu bar click View → Advanced Features.

    3. Выберите соответствующий пользовательский объект.

    4. In the menu bar click Action → Properties.

    5. Откройте вкладку Редактор атрибутов.

    6. Выберите атрибут altSecurityIdentities.

    7. Click on Edit.

    8. Insert the certificate mapping in the text field and click Add.

    9. Примените изменения, нажав на OK.

    Важно

    Если сопоставление сертификатов настроено неправильно, при попытке входа в систему вы получите сообщение об ошибке Logon screen message: Your credentials could not be verified.. Кроме того, в системном журнале событий Windows вы увидите сообщение о событии, приведенное ниже.

    Source

    Kerberos-Key-Distribution-Center
    

    Message

    The Key Distribution Center (KDC) encountered a user certificate that was valid but could not be mapped to a user in a secure way (such as via explicit mapping, key trust mapping, or a SID). Such certificates should either be replaced or mapped directly to the user via explicit mapping. See https://go.microsoft.com/fwlink/?linkid=2189925 to learn more.
    

Отмена входа по смарт-карте для использования в Active Directory (AD)

Выданные сертификаты входа пользователей в систему перечислены в службе сертификации Active Directory (ADCS). Из ADCS сертификаты можно отозвать, для чего они добавляются в настроенный список отзыва сертификатов (CRL). Это необходимо в случае потери или поломки Nitrokey.

Важно

Настоятельно рекомендуется никогда не оставлять неиспользуемые пользовательские сертификаты без отзыва.

Примечание

Можно временно отозвать сертификат с причиной Certificate Hold. Этот отзыв может быть отменен и, следовательно, не является постоянным.

  1. В командной строке, PowerShell или Run введите certsrv.msc и нажмите Enter.

  2. В панели навигации раскройте центр сертификации (ЦС) и перейдите на страницу Issued Certificates.

  3. На панели подробностей выберите сертификат пользователя, который вы хотите отозвать.

  4. В строке меню нажмите Действие → Все задачи → Отозвать сертификат.

  5. Укажите причину отзыва, дату и время и подтвердите ее с помощью Да.

  6. В панели навигации перейдите к разделу Отозванные сертификаты.

  7. В строке меню нажмите Действие → Все задачи → Опубликовать.

  8. Выберите список отзыва, который вы хотите опубликовать, и подтвердите выбор с помощью OK.

Примечание

При каждой попытке входа в систему с помощью смарт-карты Windows проверяет, не включен ли сертификат, представленный смарт-картой, в список отзыва сертификатов (Certificate Revocation List, CRL). Если сертификат обнаружен в CRL, вход в систему будет запрещен. Каждый CRL содержит срок действия, по истечении которого он истекает. Windows кэширует найденные CRL и обновляет их, если срок действия CRL истекает. Таким образом, отзыв не является немедленным и зависит от срока действия CRL, который есть у клиента.

Импорт сертификата смарт-карты пользователя в личное хранилище сертификатов

Сертификат пользователя, хранящийся на Nitrokey, может быть импортирован в личное хранилище сертификатов пользователя. В некоторых ситуациях это является обязательной процедурой.

  1. Убедитесь, что вы вошли в систему под учетной записью пользователя, которой соответствует сертификат.

  2. В командной строке, PowerShell или Run введите certsrv.msc и нажмите Enter.

  3. В панели навигации разверните хранилище ключей Personal и перейдите к разделу Certificates.

  4. В строке меню нажмите Действия → Все задачи → Импорт.

  5. Следуйте указаниям мастера импорта и по запросу предоставьте файл сертификата пользователя.

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