Ошибка аутентификации с использованием модуля входа LDAP для виртуализации данных Teiid VDB - PullRequest
0 голосов
/ 11 сентября 2018

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

Мы успешно настроили аутентификацию LDAP для консоли администратора, но работаемв ошибки во время запуска сервера.

Мне удалось успешно настроить аутентификацию для консоли администратора на имя хоста: 9990.Я сделал это с помощью следующих изменений в Standalone.xml, которые мы можем предоставить нашему активному каталогу user / pass и войти в консоль администратора.

Ниже определен домен безопасности, с которым мы сталкиваемся.И область безопасности, которая работает.

Это ошибка, которую мы получаем

ERROR [org.jboss.as.connector.subsystems.datasources.AbstractDataSourceService$AS7DataSourceDeployer] (MSC service thread 1-1) Exception during createSubject() for java:/refresh: PBOX000016: Access denied: authentication failed: java.lang.SecurityException: PBOX000016: Access denied: authentication failed
    at org.jboss.security.plugins.JBossSecuritySubjectFactory.createSubject(JBossSecuritySubjectFactory.java:84)
    at org.jboss.jca.deployers.common.AbstractDsDeployer$1.run(AbstractDsDeployer.java:1086)
    at org.jboss.jca.deployers.common.AbstractDsDeployer$1.run(AbstractDsDeployer.java:1081)
    at java.security.AccessController.doPrivileged(Native Method) [rt.jar:1.8.0_121]
    at org.jboss.jca.deployers.common.AbstractDsDeployer.createSubject(AbstractDsDeployer.java:1080)
    at org.jboss.jca.deployers.common.AbstractDsDeployer.deployDataSource(AbstractDsDeployer.java:600)
    at org.jboss.jca.deployers.common.AbstractDsDeployer.createObjectsAndInjectValue(AbstractDsDeployer.java:282)
    at org.jboss.as.connector.subsystems.datasources.AbstractDataSourceService$AS7DataSourceDeployer.deploy(AbstractDataSourceService.java:318)
    at org.jboss.as.connector.subsystems.datasources.AbstractDataSourceService.start(AbstractDataSourceService.java:122)
    at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1980)
    at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1913)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [rt.jar:1.8.0_121]
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [rt.jar:1.8.0_121]
    at java.lang.Thread.run(Thread.java:745) [rt.jar:1.8.0_121]

Это область безопасности, которая работает при аутентификации для панели администратора

<security-realm name="ldap-security-realm">
<authentication>
    <ldap connection="ldap-connection" base-dn="dc=main">
         <advanced-filter filter="(&amp;(sAMAccountName={0}))"/>
     </ldap>
 </authentication>
</security-realm>

<outbound-connections>
   <ldap name="ldap-connection" url="ldap://hostname:389" search dn="adminusername" search-credential="adminpassword"/>
</outbound-connections>

Это домен безопасности, который мы пытаемся включить аутентификацию для развернутого VDB

<datasource jndi-name="java:/refresh" pool-name="refresh" enabled="true">
    <connection-url>jdbc:teiid:refresh@mm://hostname:31000</connection-url>
    <driver>teiid</driver>
    <security>
      <security-domain>test_ldap_security_domain</security-domain>
    </security>
</datasource>

<security-domain name="test_ldap_security_domain">
    <authentication>
         <login-module code="LdapExtended" flag="sufficient">
             <module-option name="java.naming.provider.url" value="ldap://hostname:389" />
             <module-option name="java.naming.factory.initial" value="com.sun.jndi.ldap.LdapCtxFactory" />
             <module-option name="java.naming.security.authentication" value="simple" />
             <module-option name="bindDN" value="adminusername" />
             <module-option name="bindCredential" value="adminpassword" />
             <module-option name="distinguishedNameAttribute" value="sAMAccountName" />
             <module-option name="baseFilter" value="(sAMAccountName={0})" />  
             <module-option name="baseCtxDN" value="dc=main" />
             </login-module>
     </authentication>
</security-domain>

<transport name="odata">
    <authentication security-domain="test_ldap_security_domain"/>
</transport>
<transport name="jdbc" socket-binding="teiid-jdbc" protocol="teiid">
    <authentication security-domain="test_ldap_security_domain"/>
</transport>
<transport name="odbc" socket-binding="teiid-odbc" protocol="pg">
    <authentication security-domain="test_ldap_security_domain"/>
    <ssl mode="disabled"/>
</transport>

1 Ответ

0 голосов
/ 13 сентября 2018

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

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

<pool>
    <prefill>false</prefill>
</pool>
...