0

为了利用保管库存储,已创建密钥库来保存应用程序敏感信息,

<datasource jndi-name="java:/Test_VDB" pool-name="Test_VDB" enabled="true">
                    <connection-url>jdbc:teiid:Test_VDB</connection-url>
                    <driver>teiid</driver>
                    <security>
                        <user-name>dvuser</user-name>
                        <password>${VAULT::ds_creds::mysql_creds::1}</password>
                    </security>
                </datasource>

我已经像这样为我的 VDB 创建了我的数据源配置。理想情况下,当我从客户端连接时,必须指定要连接的 url 和上述用户名和密码。

但是发生的事情是,standalone-teiid.xml 文件中有一个条目,

<transport name="jdbc" socket-binding="teiid-jdbc" protocol="teiid">
                <authentication security-domain="teiid-security"/>
            </transport>

它将 teiid-jdbc 绑定到 31000。

当我尝试使用保管库凭据连接到 VDB 时,我的请求被阻止,如果我尝试使用 teiid-security 凭据进行连接,它就会通过。通过这样做,我在数据源定义中配置为凭据的任何内容都毫无意义。

如何委派我的 teiid-security 来引用数据源下定义的安全方面?

4

1 回答 1

1

布赖恩,如果我正确理解您的问题,您想通过 teiid 访问您的 mysql 数据库,但仍使用 mysql 凭据。

密码库用于隐藏配置文件中的密码,仅此而已。

要么你必须:

  1. 使用您配置的数据源,但使用 teiid 的凭据连接(因此是基本场景)。你说,你不想要这个。
  2. 使用高级安全选项(例如 kerberos auth)在 Teiid 服务器和您的数据库之间共享安全上下文。然后您可以参考Teiid 的安全指南并使用支持的选项之一,或者您可以通过实现自己的 LoginModule 来实现自己的自定义解决方案。
于 2016-02-01T09:07:35.720 回答