2015-12-10 3 views
2

У меня возникла проблема с настройкой интегрированной проверки подлинности с Kerberos на сервер MS Sql на Wildfly 8.2.0.Kerberos sql server datasource в Wildfly 8.2

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

  • Успел получить это происходит на 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="[email protected]"/> 
        <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», я получил ошибку «Нет соответствующих учетных данных в Subject!» но потом я прочитал, что говорил этот парень здесь: https://developer.jboss.org/message/913652#913652.

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

Так, на Wildfly 8.2:

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

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

ответ

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, пока не натолкнулся на это.

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