Источник данных SQL-сервера Kerberos в Wildfly 8.2

У меня проблема с настройкой встроенной аутентификации с помощью Kerberos для сервера MS Sql на Wildfly 8.2.0.

Вот что я сделал до сих пор:

  • Удалось запустить его на Wildfly 9.0.2 просто потому, что Wildfly 9 содержит «новый» класс модуля входа в систему org.jboss.security.negotiation.KerberosLoginModule. Домен безопасности настроен следующим образом:

    <login-module code="org.jboss.security.negotiation.KerberosLoginModule" flag="required" module="org.jboss.security.negotiation">
         <module-option name="storeKey" value="false"/>
         <module-option name="useKeyTab" value="false"/>
         <module-option name="principal" value="app-srv@REALM"/>
         <module-option name="useTicketCache" value="true"/>
         <module-option name="debug" value="true"/>
         <module-option name="refreshKrb5Config" value="true"/>
         <module-option name="isInitiator" value="true"/>
         <module-option name="addGSSCredential" value="true"/>
         <module-option name="delegationCredential" value="USE"/>
     </login-module>
    

    отлично работает. Прежде чем я добавил «addGSSCredential» в «true», я получил сообщение об ошибке «Нет соответствующих учетных данных в теме!» но потом я прочитал, что этот парень говорил здесь: https://developer.jboss.org/message/913652#913652.

Теперь проблема в том, что мне не нужна Wildfly 9, я хочу настроить ее на Wildfly 8.2. Должно быть возможно, верно?

Итак, на Wildfly 8.2:

  1. Wildfly 8.2 не имеет модуля KerberosLoginModule. Вместо этого он использует предоставленный солнцем модуль входа в систему (com.sun.security.auth.module.Krb5LoginModule), как указано здесь
  2. Как только я получил Wildfly 8 для использования этого модуля входа в систему от Sun (НЕ работает из коробки - что заставляет меня задуматься, действительно ли ребята из JBoss когда-либо тестировали это? - ... потому что модуль, который загружает класс входа в систему (org. picketbox) не зависит от модуля sun.jdk, и он чудесным образом терпит неудачу с classnotfoundException), я наткнулся на ту же ошибку, что и в Wildfly 9 перед добавлением опции addGSSCredentials: «Нет соответствующих учетных данных в теме!»
  3. Проблема в том, что addGSSCredentials не поддерживается классом модуля входа Sun.

Итак, кто-нибудь когда-нибудь настраивал Kerberos для источника данных в Wildfly 8.2 с использованием класса Sun? Или мне нужно обновить библиотеки, чтобы получить KerberosLoginModule из jboss-negotiation?


person andrei.serea    schedule 10.12.2015    source источник


Ответы (1)


Единственный способ заставить это работать в WildFly 8.2.1.Final — это обновить jboss-negotiation-common-<version>.jar и jboss-negotiation-extras-<version>.jar с 2.2.7.Final на 3.0.2.Final, версию, поставляемую с WildFly 10.1.0.Final (извините, я не пробовал с версиями из WildFly 9).

Вам нужно обновить modules\system\layers\base\org\jboss\security\negotiation\main\, чтобы ссылаться на новые банки.

Кроме того, вы можете просто полностью заменить модуль org.jboss.security.negotiation версией, включенной в WildFly 10.1.0.Final.

Для справки, мой модуль входа в standalone.xml:

<login-module code="org.jboss.security.negotiation.KerberosLoginModule" flag="required" module="org.jboss.security.negotiation">
    <module-option name="useTicketCache" value="true"/>
    <module-option name="debug" value="true"/>
    <module-option name="refreshKrb5Config" value="true"/>
    <module-option name="addGSSCredential" value="true"/>
</login-module>

Я обнаружил, что мне не нужно устанавливать параметры isInitiator или delegationCredential.

PS. Спасибо за размещение этого вопроса! У меня было много проблем с аутентификацией Kerberos, потому что я устанавливал storeKey на true, пока не наткнулся на это.

ПСС. Я должен добавить, что я подключаюсь не к серверу MS SQL, а к источнику данных Apache Phoenix, что может объяснить, почему мне не нужно устанавливать некоторые параметры входа.

person Frangipanes    schedule 14.11.2016