Active Directory Certificate Services could not publish a Certificate
Добрый день! Уважаемые читатели и гости IT блога Pyatilistnik. В прошлый раз я вас научил определять срок окончания пароля у пользователя Active Directory, показал полезные кейсы, когда это может пригодиться. Продолжаем осваивать активный каталог и сегодня разберем ситуацию, что центр сертификации не может опубликовать сертификат пользователя в свойствах его учетной записи Active Directory, получая ошибка "Active Directory Certificate Services could not publish a Certificate". Давайте разбираться в чем дело и как это исправить.
Описание ошибки и инфраструктуры
У меня есть многодоменная Active Directory, где в корне есть сервера центра сертификации, и есть дочерний пользовательский домен, где живут обычные пользователи. В логах одного из последних серверов CA, я стал замечать в логах журнала "Application" вот такое предупреждение с кодом ID 80.
Active Directory Certificate Services could not publish a Certificate for request 45404 to the following location on server dc1.root.pyatilistnik.org: CN=Барбоскин Геннадий Викторович,OU=Management,DC=root,DC=Pyatilistnik,DC=org. Insufficient access rights to perform the operation. 0x80072098 (WIN32: 8344 ERROR_DS_INSUFF_ACCESS_RIGHTS). ldap: 0x32: LDAP_INSUFFICIENT_RIGHTS: 00002098: SecErr: DSID-031514B3, problem 4003 (INSUFF_ACCESS_RIGHTS), data 0
В результате чего в свойствах учетной записи на вкладке "Published Certificates" нет сертификата.
Как устранить ошибку 0x80072098
Ошибку "0x80072098 (WIN32: 8344 ERROR_DS_INSUFF_ACCESS_RIGHTS)" вы можете встреть, как раз когда сервер CA в одном домене, а пользователи в другом. Тут вам необходимо проверить вот такую вещь.
- Зайти в контейнер Users в домене, где располагаются учетные записи пользователей и проверить, что в группе "Cert Publishers (Members of this group are permitted to publish certificates to the Active Directory)" присутствует нужный сервер сертификации.
- У этой группы должны быть права на контейнер AdminSDHolder. Найти AdminSDHolder можно через ADSIEdit или дополнительное отображение в ADUC, включив отображение дополнительных, системных контейнеров.
AdminSDHolder — это объект, который существует во всех доменах Active Directory. Он хранится в контейнере CN=AdminSDHolder,CN=System,DC=Root,DC=Pyatilistnik,DC=org. Данный контейнер содержит Master Security Descriptor для защищенных групп и пользователей Active Directory. Он запускается в фоновой задаче в процессе LSASS каждые 60 минут на DC, удерживающем роль PDC Emulator FSMO.
Члены Cert Publishers группы имеют право записи атрибута userCertificate пользователей и компьютеров, и это разрешение также контролируется конфигурацией AdminSDholder
- После добавления нового центра сертификации в группу Cert Publishers вам нужно почистить на нем билет Kerberos, чтобы вы могли у него обновить список групп членом которых он является, для этого запустите cmd от имени администратора и введите команду:
klist –li 0x3e7 purge (Актуально для ОС Windows 8.1 и выше/Windows Server 2012 R2 и выше
После этого произведите обновление групповой политики на данном CA. После этого у меня нормально прописался сертификат пользователя.
- Если вам это не помогло и с правами все хорошо, то я вам советую проверить что в свойствах нужного вам шаблона установлена галочка "Publish certificate in Active Directory"
- Проверьте в свойствах сервера CA, что у группы "Authenticated Users" есть права на "Request Certificates".
- Группа Cert Publishers должна иметь тип Domain Local, и если у вас Domain Global, то лучше поменять. Сделать можно с помощью команды dsmod.
dsmod group Group Distinguished Name -scope l
Надеюсь, что данные действия позволили вам публикацию сертификатов в Active Directory. С вами был Иван Сёмин, автор и создатель IT портала Pyatilistnik.org.
Дополнительные ссылки
- https://learn.microsoft.com/en-us/troubleshoot/windows-server/certificates-and-public-key-infrastructure-pki/cannot-publish-certificate-trusted-domain
- https://secureidentity.se/adminsdholder-pitfalls-and-misunderstandings/
- https://answers.microsoft.com/en-us/windowserver/forum/all/active-directory-certificate-services-could-not/66c78c72-8398-4a82-8ed9-9c4c54a15ff0