Использование oauth для подключения к серверу отчетов power bi и ssrs

Введение

SPN (Service Principal Name) — уникальный идентификатор экземпляра сервиса. SPN используется аутентификацией Kerberos для сопоставления экземпляра сервиса с учетной записью сервиса (service logon account). Это позволяет клиентским приложением аутентифицироваться в роли сервиса даже не зная имени пользователя.
До того как аутентификация Kerberos сможет использовать SPN для аутентификации сервиса, SPN должен быть привязан к учетной записи, которая будет использоваться для входа. SPN может быть привязан только к одной учетной записи. Если учетная запись, привязанная к SPN, изменяется, то необходимо заново выполнить привязку.
Когда клиент хочет воспользоваться сервисом, он находит экземпляр сервиса и составляет SPN для этого экземпляра, далее использует этот SPN для аутентификации.

Keytab-файл — это файл содержащий пары Kerberos принципалов и их ключей (полученных с использованием Kerberos пароля). Эти файлы используются для аутентификации в системах, использующих Kerberos, без ввода пароля. Если пароль принципала изменится, то keytab-файл необходимо будет сгенерировать заново.

Внимание! Каждый кто имеет разрешения на чтения keytab-файла может воспользоваться любыми ключами в нем. Чтобы предотвратить нежелательное использование, ограничивайте права доступа при создании keytab-файла

Использование

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

Сценарий Описание
Приложение прежней версии не указывает имя участника-службы. Этот сценарий совместимости гарантирует, что не будет изменений в работе приложений, разработанных для предыдущих версий SQL Server. Если имя участника-службы не указано, то приложение использует сформированные имена участников-служб и ничего не знает об используемом методе проверки подлинности.
Клиентское приложение, использующее текущую версию SQL Server Native Client, указывает имя субъекта-службы в строке подключения как учетную запись пользователя домена или компьютера, имя субъекта-службы для конкретного экземпляра или определяемую пользователем строку. Ключевое слово ServerSPN может быть указано в строке поставщика, инициализации или соединения, для следующих целей. Указать учетную запись, используемую экземпляром SQL Server для соединения. Это упрощает доступ к проверке подлинности Kerberos. Если имеется центр распространения ключей Kerberos (KDC) и указана верная учетная запись, то проверка подлинности Kerberos будет предпочтительнее, чем NTLM. KDC обычно размещается на том же компьютере, что и контроллер домена. Указать имя субъекта-службы для поиска учетной записи службы для экземпляра SQL Server. Для каждого экземпляра SQL Server создаются два имени субъекта-службы по умолчанию, которые могут быть использованы для этой цели. Однако эти ключи не обязательно будут созданы в Active Directory, поэтому в такой ситуации проверка подлинности Kerberos не гарантирована. Указать имя субъекта-службы, которое будет использоваться для поиска учетной записи службы для экземпляра SQL Server. Это может быть любая определенная пользователем строка, сопоставляемая с учетной записью службы. В этом случае ключ должен быть вручную зарегистрирован в центре распространения ключей и удовлетворять правилам для определенных пользователем имен участников-служб. Ключевое слово FailoverPartnerSPN указывает имя партнера-службы для сервера-партнера по обеспечению отработки отказа. Ранг учетной записи и ключевые значения Active Directory те же, что и значения, которые можно указать для основного сервера.
Приложение ODBC указывает имя партнера-службы как атрибут соединения для основного сервера или сервера-партнера по обеспечению отработки отказа. Атрибут соединения SQL_COPT_SS_SERVER_SPN может быть использован для указания имени участника-службы для соединения с основным сервером. Атрибут соединения SQL_COPT_SS_FAILOVER_PARTNER_SPN может быть использован для указания имени партнера-службы для сервера-партнера по обеспечению отработки отказа.
Приложение OLE DB указывает имя партнера-службы как свойство инициализации источника данных для основного сервера или сервера-партнера по обеспечению отработки отказа. Свойство соединения SSPROP_INIT_SERVER_SPN в наборе свойств DBPROPSET_SQLSERVERDBINIT может быть использовано для указания имени участника-службы для соединения. Свойство соединения SSPROP_INIT_FAILOVER_PARTNER_SPN в DBPROPSET_SQLSERVERDBINIT может быть использовано для указания имени партнера-службы для сервера-партнера по обеспечению отработки отказа.
Пользователь указывает имя партнера-службы для сервера или сервера-партнера по обеспечению отработки отказа в имени источника данных (DSN) ODBC. Имя участника-службы может быть указано в DSN ODBC через диалоговые окна настройки DSN.
Пользователь указывает имя партнера-службы для сервера или сервера-партнера по обеспечению отработки отказа в диалоговом окне Связь данных или Имя входа OLE DB. Имя участника-службы может быть указано в диалоговом окне Связь данных или Имя входа . Диалоговое окно Имя входа может использоваться с ODBC или OLE DB.
Приложение ODBC определяет метод проверки подлинности, используемый для установления соединения. Если соединение было установлено успешно, то приложение может запросить атрибут соединения SQL_COPT_SS_INTEGRATED_AUTHENTICATION_METHOD , чтобы определить, какой именно метод проверки подлинности будет использоваться. Эти значения включают NTLM , Kerberosи другие.
Приложение OLE DB определяет метод проверки подлинности, используемый при установлении соединения. Если соединение было установлено успешно, то приложение может запросить свойство соединения SSPROP_AUTHENTICATION_METHOD в наборе свойств DBPROPSET_SQLSERVERDATASOURCEINFO для определения метода проверки подлинности, который будет использоваться. Эти значения включают NTLM , Kerberosи другие.

Сканирование SPN

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

INFO

Service Principal Names (SPN) — идентификаторы служб, запущенных на доменной машине. Не зная их, ты не сможешь искать службы, которые используют проверку подлинности Kerberos.

SPN-строка имеет такой формат:

  • — строка, которая идентифицирует класс службы, например — идентификатор для службы каталогов;
  • — строка, где указывается полное доменное имя системы, а иногда и порт;
  • — строка, которая представляет собой уникальное имя (DN), GUID объекта или полностью определенное доменное имя (FQDN) службы.

SPN уникальный в пределах леса. Когда компьютер добавляют в домен, у его учетной записи автоматически указывается host SPN, что позволяет службам на этой машине запускаться из-под локальных учетных записей, таких как Local System и Network Service.

Сканирование SPN — это первое, что обычно делает злоумышленник или пентестер при поиске служб в среде Active Directory. Основное преимущество этого метода по сравнению со сканированием сетевых портов в том, что не требуется взаимодействие с каждым узлом сети для проверки служебных портов. Сканирование SPN позволяет обнаружить службы с помощью запросов LDAP к контроллеру домена. Так как запросы SPN — нормальное поведение проверки подлинности Kerberos, этот способ сканирования обнаружить очень сложно (даже почти нереально), в отличие от сканирования портов.

Выполнить сканирование SPN можно с помощью скрипта на PowerShell.

Результат работы скрипта для серверов Microsoft SQL

Наиболее интересные службы:

  • SQL (MSSQLSvc/adsmsSQLAP01.ads.org:1433)
  • Exchange (exchangeMDB/adsmsEXCAS01.ads.org)
  • RDP (TERMSERV/adsmsEXCAS01.adsecurity.org)
  • WSMan / WinRM / PS Remoting (WSMAN/adsmsEXCAS01.ads.org)
  • Hyper-V (Microsoft Virtual Console Service/adsmsHV01.ady.org)
  • VMware VCenter (STS/adsmsVC01.ads.org)

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

Результат работы cкрипта — список SPN 

Общие ресурсы

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

Но что делать, если политика безопасности запрещает использовать сетевые команды? В этом случае нас выручит . Список общих ресурсов на локальном хосте и список общих ресурсов на удаленном компьютере можно посмотреть с помощью команд

Полезный инструмент для поиска данных — PowerView. Он автоматически обнаруживает сетевые ресурсы и файловые серверы с помощью команд и .

Кстати, PowerView встроен в фреймворк PowerShell Empire и представлен двумя модулями:

  • ;
  • .

Вариант 1. Присоединись к сообществу «Xakep.ru», чтобы читать все материалы на сайте

Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку!
Подробнее

Вариант 2. Открой один материал

Заинтересовала статья, но нет возможности стать членом клуба «Xakep.ru»? Тогда этот вариант для тебя!
Обрати внимание: этот способ подходит только для статей, опубликованных более двух месяцев назад.

Я уже участник «Xakep.ru»

Указание имени участника-службы

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

Максимальная длина для имени участника-службы — 260 символов.

В именах участников-служб в атрибутах или строке соединения применяется следующий синтаксис.

Синтаксис Описание
MSSQLSvc/fqdn Сформированное поставщиком имя участника-службы для экземпляра по умолчанию, когда используется протокол, отличный от TCP.fqdn — полное имя домена.
MSSQLSvc/fqdn:port Сформированное поставщиком имя участника-службы для экземпляра по умолчанию, когда используется протокол TCP.port — номер TCP-порта.
MSSQLSvc/fqdn:InstanceName Сформированное поставщиком имя участника-службы (по умолчанию) для именованного экземпляра, когда используется протокол, отличный от TCP.InstanceName — имя экземпляра SQL Server.
HOST/fqdn HOST/MachineName Имя участника-службы, сопоставляемое со встроенной учетной записью компьютера, зарегистрированной в Windows автоматически.
Username@Domain Прямое указание учетной записи домена.Username — имя учетной записи пользователя Windows.Domain — имя домена Windows или полное имя домена.
MachineName$@Domain Прямое указание учетной записи компьютера (если сервер, с которым выполняется соединение, работает с учетными записями LOCAL SYSTEM или NETWORK SERVICE, то для проверки подлинности Kerberos ServerSPN может указываться в формате MachineName$@Domain ).
KDCKey/MachineName Заданное пользователем имя участника-службы.KDCKey — алфавитно-цифровая строка, соответствующая правилам для ключей KDC.

# Термины и определения

термин описание пример
DOMAIN_NAME название домена test.com
REALM для Active Directory это всегда DOMAIN_NAME в верхнем регистре TEST.COM
SERVER_NAME название компьютера, где установлен RunaWFE Server runaserver
SERVER_USER логин пользователя, под которым работает RunaWFE Server runauser
SERVER_SPN SPN (Service principal name), который соответствует SERVER_USER

Формат FQDN для Windows2008: HTTP/{SERVER_NAME}.{DOMAIN_NAME}

Формат FQDN для Windows2003: HTTP/{SERVER_NAME}.{DOMAIN_NAME}@{REALM}

Формат NetBIOS для Windows2008: HTTP/{SERVER_NAME}

Формат NetBIOS для Windows2003: HTTP/{SERVER_NAME}@{REALM}

HTTP/runaserver.test.com

HTTP/runaserver.test.com@TEST.COM

HTTP/runaserver

HTTP/runaserver@TEST.COM

KEYTAB_PATH Путь к keytab-файлу ключей, хранящему хеши паролей пользователей C:/runawfe/krb5.keytab

Инструменты

название описание расположение комментарии
kinit Получение тикета TGT из контроллера домена JDK bin, есть альтернативные реализации пользователь может быть задан в виде {SERVER_USER} или {SERVER_USER}@{REALM}
klist Просмотр полученных тикетов и возможность их удаления из локального кеша JDK bin, есть альтернативные реализации
setspn Создаёт SPN и назначает его пользователю входит в Windows Server 2008+, ранее доступен в пакете Windows Server support tools
ktpass Меняет логин пользователя на SPN или формирует keytab файл входит в Windows Server 2008+, ранее доступен в пакете Windows Server support tools
ktab Формирует keytab файл JDK bin
ADSIEdit Просмотр свойств пользователя в контроллере домена Windows Server
WireShark Анализатор траффика

Описание

этап протокол описание данные запроса данные ответа примечания
KRB аутентификация пользователя клиента логин пользователя тикет TGT при входе в систему
1 HTTP вход в систему без HTTP заголовка Authorization HTTP 401
2 KRB получение сервисного тикета для сервера {SERVER_SPN} сервисный тикет шаг выполняется если тикета ещё нет в кеше клиента
3 HTTP продолжение входа в систему HTTP заголовок Authorization = YIIV… HTTP 200
4 KRB аутентификация пользователя сервера {SERVER_SPN} тикет TGT выполняется при отсутствии TGT во время взаимодействия с клиентом, происходит до возврата ответа 3 клиенту

# Настройка kerberos.properties

Создайте файл kerberos.properties в директории {RUNAWFE_JBOSS}/standalone/wfe.custom. Замените в нем имена на настоящие.

# задействовать аутентификацию используя RunaWFE API
api.auth.enabled=true
appName=com.sun.security.jgss.krb5.accept
moduleClassName=com.sun.security.auth.module.Krb5LoginModule
principal={SERVER_SPN}
storeKey=true
useKeyTab=true
keyTab={KEYTAB_PATH}
doNotPrompt=true
# режим отладки аутентификации
debug=true
# задействовать аутентификацию по протоколу HTTP (из веб-интерфейса)
http.auth.enabled=true
jcifs.http.enableNegotiate=true
# режим отладки аутентификации
sun.security.krb5.debug=true
jcifs.spnego.servicePrincipal={SERVER_SPN}
http.auth.preference=Kerberos

Установка предварительных компонентов

Перед непосредственно установкой Service Manager на сервер управления необходимо установить следующие предварительные компоненты:

  1. .NET Framework 3.5 SP1 for Windows Server. Его можно установить через Server Manager.
  2. SQL Server Native client. Его можно загрузить вот тут. Нужна версия для x64 систем.
  3. Microsoft Report Viewer Redistributable. Его можно будет установить непосредственно из мастера установки Service Manager.
  4. SQL Server Analysis Management Objects (т.к. на сервере еще будет установлена консоль Service Manager). Компонент можно загрузить вот тут. Необходимо выбрать из пакета компонентов SQL SQL_AS_AMO.msi.

Проверка keytab-файла

Для проверки keytab-файла необходима настроенная Kerberos-аутентификация.

Это можно проверить командой:

kinit Administrator@DOMG.TESTG

Она должна запрашивать пароль и получать билет:

klist
Ticket cache: KEYRING:persistent:0:0
Default principal: Administrator@DOMG.TESTG
Valid starting       Expires              Service principal
14.03.2017 16:45:58  15.03.2017 02:45:58  krbtgt/DOMG.TESTG@DOMG.TESTG
	renew until 21.03.2017 16:44:36

Попробуем зарегистрироваться с помощью keytab-файла:

kinit -V -k HTTP/sqserver.domg.testg -t /home/test/squid.keytab 
Using existing cache: persistent:0:krb_ccache_95Lkl2t
Using principal: HTTP/sqserver.domg.testg@DOMG.TESTG
Using keytab: /home/test/squid.keytab
Authenticated to Kerberos v5

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

kvno HTTP/sqserver.domg.testg
HTTP/sqserver.domg.testg@DOMG.TESTG: kvno = 6

Проверить версию kvno и список ключей в keytab-файле можно с помощью команды:

klist -ket /home/test/squid.keytab
Keytab name: FILE:/home/test/squid.keytab
KVNO Timestamp           Principal
---- ------------------- ------------------------------------------------------
   6 01.01.1970 03:00:00 HTTP/sqserver.domg.testg@DOMG.TESTG (arcfour-hmac)

После всех проверок желательно удалить полученные билеты командой:

kdestroy

Подготовка и настройка клиентского браузера

В данном разделе рассматривается процесс настройки аутентификации Kerberos для разных браузеров, чтобы обеспечить прозрачную и безопасную аутентификацию на веб-серверах без необходимости повторного ввода пароля пользователя в корпоративной сети. Большинство современных браузеров (IE, Chrome, Firefox) поддерживают Kerberos, однако для его работы необходимо выполнить несколько дополнительных настроек.

Настройка служб федерации Active Directory (AD FS)

Вам необходимо настроить ADFS на сервере Windows 2016 в вашей среде. Для этой настройки, в диспетчере серверов в разделе «Управление» выберите «Добавить роли и компоненты». Дополнительные сведения см. в документации служб федерации Active Directory.

Создание группы приложений

На экране управления AD FS необходимо создать группу приложений для Reporting Services, которая будет содержать информацию для приложений Power BI Mobile.

Вот как создать группу приложений.

  1. В приложении управления AD FS щелкните правой кнопкой мыши Группы приложений и выберите Добавить группу приложений…

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

  3. Нажмите кнопку Далее.

  4. Укажите имя приложения, которое вы добавляете.

  5. Пока будет автоматически создаваться идентификатор клиента, укажите 484d54fc-b481-4eee-9505-0258a1913020 для iOS и Android.

  6. Необходимо добавить следующие URL-адреса перенаправления:

    Записи для Power BI Mobile для iOS:
    msauth://code/mspbi-adal://com.microsoft.powerbimobile
    msauth://code/mspbi-adalms://com.microsoft.powerbimobilems
    mspbi-adal://com.microsoft.powerbimobile
    mspbi-adalms://com.microsoft.powerbimobilems

    Приложения Android требуют только следующих шагов:
    urn:ietf:wg:oauth:2.0:oob

  7. Нажмите кнопку Далее.

  8. Укажите URL-адрес сервера отчетов. Это внешний URL-адрес, который будет обращаться к прокси-службе веб-приложения. Он должен быть в следующем формате.

    Примечание

    URL-адрес вводится с учетом регистра.

  9. Нажмите кнопку Далее.

  10. Выберите политику управления доступом, которая соответствует требованиям вашей организации.

  11. Нажмите кнопку Далее.

  12. Нажмите кнопку Далее.

  13. Нажмите кнопку Далее.

  14. Выберите Закрыть.

По завершении свойства вашей группы приложений будут выглядеть приблизительно так:

# Типы шифрования

Выбранный тип шифрования зависит от участников взаимодействия — версии ПО домена (Windows Server), настроек домена, настроек пользователя, настроек ПО клиента.

В ранних версиях (Windows 2000, 2003) настраивали DES, в поздних (Windows 2008, 2012) рекомендуют использованием AES.

Настройки пользователя, оказывающие влияние на поведение Kerberos:

This account supports Kerberos AES 128/256 bit encryption — разрешение использования соответствущего типа шифрования для пользователя

(TODO — при невключённых чекбоксах всё равно использовался AES128)

Use Kerberos DES encryption for this acount — включает шифрование DES для пользователя, после установки чекбокса требуется смена пароля

# krb5.ini

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

На сервере и клиентских машинах Windows он может быть расположен в ${windir}/krb5.ini.

Пример файла krb5.ini

 .test.com = TEST.COM
 test.com = TEST.COM

 default_realm = TEST.COM
 kdc_timesync = 1
 ccache_type = 4
 ticket_lifetime = 600
 default_tkt_enctypes = des-cbc-md5 des-cbc-crc des3-cbc-sha1
 default_tgs_enctypes = des-cbc-md5 des-cbc-crc des3-cbc-sha1
 permitted_enctypes = des-cbc-md5 des-cbc-crc des3-cbc-sha1

 kdc = CONSOLE

 TEST.COM = {
  kdc = 192.168.0.1
  kdc = 192.168.1.1
  default_domain = test.com
 }

 autologin = true
 forward = true
 forwardable = true
 encrypt = true

Настройка сервера

Данная инструкция сделана в окружении Windows Server2008R2 (контроллер домена), Windows Server2012R2 (RunaWFE Server), Windows7 (RunaWFE client).

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

Создание SPN[править]

DC Windowsправить

Для начала необходимо создать на контроллере домена (DC) пользователя к которому впоследствии мы привяжем SPN.
Например создадим пользователя squid:
Далее необходимо запретить пользователю смену пароля и не ограничивать срок действия пароля

Последнее важно, так как иначе при истечении срока действия пароля придется не только менять пароль, но и заново генерировать keytab-файлы привязанные к этому пользователю:
В целях безопасности рекомендуется исключить сервисного пользователя из доменных групп.
Создадим SPN для прокси-сервера squid HTTP/sqserver.domg.testg и привяжем его к пользователю squid.
Для этого в командной строке на контроллере домена выполним следующую команду:

C:\>setspn -A HTTP/sqserver.domg.testg squid
Регистрация ServicePrincipalNames для CN=squid,CN=Users,DC=domg,DC=testg
        HTTP/sqserver.domg.testg
Обновленный объект

Проверить привязанные SPN у пользователя можно командой:

C:\>setspn -L squid
Зарегистрирован ServicePrincipalNames для CN=squid3,CN=Users,DC=domg,DC=testg:
        HTTP/sqserver.domg.testg

DC FreeIPAправить

Для добавления SPN зайдите в web-интерфейс сервера FreeIPA->Identity->Services->Add:
В открывшемся окне необходимо выбрать имя сервиса и имя хоста, к которому будет привязан сервис:
Чтобы добавить SPN с коротким именем хоста (например это необходимо для samba), выполните команду:

# ipa service-add cifs/samba --force

# Команды для выполнения по вышеперечисленным пунктам

На контроллере домена:

setspn -A HTTP/runaserver.test.com runauser

ktpass -princ HTTP/runaserver.test.com -pass * -mapuser runauser

На сервере:

ktab -a HTTP/runaserver.test.com -n 0 -k C:/runawfe/krb5.keytab

Настройка браузера

Для того чтобы браузер пытался использовать Kerberos для аутентификации:

  • в нём должна быть включена настройка Enable Integrated Windows Authentication (в некоторых версиях IE её нет)
  • настройки зоны безопасности должны позволять её использование, по умолчанию это настроено для LocalIntranet
  • настройка {SERVER_SPN} должна быть корректно произведена

Во время запроса на сервере формируется в логе Request Authorization:

  • Negotiate YIIV… — правильно
  • Negotiate TlRMT… — неправильно (попытка использовать NTLM)

Если по нажатию на ссылке Сквозная аутентификация (kerberos) будет выведено окно с вводом логина/пароля — то это значит что браузер не получил сервисный тикет в контроллере домена или даже не пытался это сделать. При возникновении такой ситуации самым действенным оказывается использование WireShark для прослушивания траффика по порту 88 с контроллером домена.

Настройка оповещателя

На сервере должна быть корректно настроена аутентификация.

Настройка для получения заданий

Настроить kerberos.properties если authentication.type установлено в kerberos (для sspiKerberos это не требуется):

appName=com.sun.security.jgss.initiate
moduleClassName=com.sun.security.auth.module.Krb5LoginModule
useTicketCache=true
doNotPrompt=true
debug=true
serverPrincipal=HTTP/runaserver.test.com

Настройка для браузера

Настройку login.relative.url установить в /krblogin.do.

Типичные проблемы

Устаревшее руководство по настройке аутентификации Kerberos больше подходит для Windows2003

ошибка

описание

что делать

Client not found in Kerberos database (6)

SPN не зарегистрирован как пользователь (UserPrincipalName) либо продублирован (setspn -x)

Зарегистрировать SPN либо удалить дубликат

Pre-authentication information was invalid (24)

Неправильный пароль либо несовпадение информации по логину (UserPrincipalName изменён?).
Обратите внимание на атрибут salt в пакете KRB Error: KRB5KDC_ERR_PREAUTH_FAILED, он должен совпадать с principal, для которого вы получаете тикет; если не совпадает — то в БД kerberos что-то не так, попробуйте вновь воспользоваться командой ktpass

Сменить пароль (у пользователя и при формировании keytab)

Message stream modified (41)

Некорректно задано имя

Задать имя корректно — как оно задано на контроллере домена с учётом регистра

Clients credentials have been revoked (18)

Пользователь заблокирован

В настройках пользователя снять галочку Account is disabled

HTTP 400 при попытке обработки тикета YIIV…

Увеличить разрешённый максимум в Jboss с помощью настройки org.apache.coyote.http11.Http11Protocol.MAX_HEADER_SIZE в standalone.xml

No valid credentials provided (Mechanism level: Attempt to obtain new ACCEPT credentials failed!)

Настройка appName=com.sun.security.jgss.accept является устаревшей — для старых версий JDK

Изменить на com.sun.security.jgss.krb5.accept в kerberos.properties

Encryption type AES256 CTS mode with HMAC SHA1-96 is not supported/enabled

Нет поддержки типа шифрования AES-256 в JDK

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

Устранение ошибки дублирования SPN

Вообще это нормальное поведение, что служба каталогов Active Directory производит проверку одинаковых SPN, но возможность отключения такого поведения все же есть. Первое, что вы должны сделать, это зайти на любой из контроллеров домена, которые отвечают за домен, где располагается сервер у которого есть дубль SPN. Откройте оснастку просмотр событий или же можете воспользоваться утилитой Windows Admin Center, это не принципиально. Найдите там журнал «ActiveDirectory_DomainService». В этом журнале поищите событие с кодом ID 2974.

The attribute value provided is not unique in the forest or partition. Attribute: servicePrincipalName Value=MSSQLSvc/SVTA.Pyatilistnik.org CN=СИНИНТ,OU=Technical,DC=root,DC=Pyatilistnik,DC=org Winerror: 8647

Так же найти все SPN для нужного объекта можно через команду:

dsquery * -filter servicePrincipalName=* | findstr имя объекта

Из ошибки ID 2974, мы видим, где именно уже прописан наш SPN, это учетная запись пользователя СИНИНТ. Давайте зайдем в ее свойства и удалим их.

Далее попробуем заново зарегистрировать SPN записи:

setspn.exe -a MSSQLSvc/SVT.Pyatilistnik.org PYATILISTNIK\run-t setspn.exe -a MSSQLSvc/SVT.Pyatilistnik.org:1433 PYATILISTNIK\run-t

Теперь все прошло штатно и без проблем «Регистрация ServicePrincipalNames» выполнена и объект добавлен.

На этом у меня все, с вами был Иван Семин, автор и создатель IT портала Pyatilistnik.org.

Рейтинг
( Пока оценок нет )
Editor
Editor/ автор статьи

Давно интересуюсь темой. Мне нравится писать о том, в чём разбираюсь.

Понравилась статья? Поделиться с друзьями:
Работатека
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: