Java Database Connectivity (JDBC) 验证模块允许 OpenSSO 通过任何提供启用 JDBC 驱动程序的结构化查询语言 (Structured Query Language, SQL) 数据库来验证用户。可以直接通过 JDBC 驱动程序或 JNDI 连接池连接 SQL 数据库。JDBC 属性是领域属性。这些属性包括:
指定连接至 SQL 数据库的连接类型,可以是 JNDI(Java 命名和目录接口)连接池或 JDBC 驱动程序。这些选项包括:
已通过 JNDI 检索连接池
非持久 JDBC 连接
JNDI 连接池利用了底层 Web 容器的配置。
如果在“连接类型”中选择了 JNDI,此字段将指定连接池名称。由于 JDBC 验证使用 Web 容器提供的 JNDI 连接池,因此,JNDI 连接池的设置在其他 Web 容器中可能会不一致。有关示例,参见 OpenSSO Administration Guide。
如果在连接类型中选择了 JDBC,此字段将指定 SQL 数据库所提供的 JDBC 驱动程序。例如,com.mysql.jdbc.Driver。
如果在连接类型中选择了 JDBC,此字段将指定数据库 URL。例如,mySQL 的 URL 为 jdbc.mysql://hostname:port/databaseName。
指定用户名称,JDBC 连接以它建立数据库连接。
为在“连接至数据库的用户”中指定的用户定义密码。
确认密码。
指定 SQL 数据库中的密码列名。
指定用于检索用户登录密码的 SQL 语句。例如:
select Password from Employees where USERNAME = ?
指定用于比较的密码,将数据库检索到的密码变换为用户输入格式的类名。此类必须实现 JDBCPasswordSyntaxTransform 接口。
各种验证方法都单独设置了验证级别。验证级别值表示信任验证机制的程度。用户进行验证之后,该值将存储在会话的 SSO 令牌中。当 SSO 令牌传递到用户要访问的应用程序时,应用程序将根据存储的值来确定级别是否足以授予用户访问权限。如果 SSO 令牌中存储的验证级别没有达到所需的最小级别,应用程序将提示用户使用具有较高验证级别的服务再次进行验证。默认值为 0。
注 – 如果未指定任何验证级别,则在核心验证属性默认验证级别中所指定的值将会存储到 SSO 令牌中。