Linux客户端Kerberos配置
Linux客户端Kerberos配置¶
您可以配置Linux client客户端应用来连接一个已配置Kerberos认证的SeaboxMPP数据库系统。
如果在Red Hat Enterprise Linux,JDBC连接SeaboxMPP数据库时,使用Kerberos认证。 在客户端系统必须被配置为使用Kerberos认证。 如果不使用Kerberos认证连接SeaboxMPP数据库,在客户端系统中不需要Kerberos。
有关在SeaboxMPP数据库中启用Kerberos认证的信息,参阅SeaboxMPP数据库管理员指南中的“使用Kerberos认证”部分。
使用要求¶
如下是从客户端系统使用JDBC应用连接到已启用Kerberos认证的SeaboxMPP数据库的要求。
先决条件说明¶
-
在SeaboxMPP数据库coordinator主机上必须安装并配置好Kerberos。
重要:SeaboxMPP数据库必须被配置完毕,这样远程用户才能使用Kerberos认证连接到SeaboxMPP数据库。 授权访问SeaboxMPP Database数据库,通过
sd_hba.conf
文件控制。 关于细节,参阅SeaboxMPP数据库管理员指南中的“编辑sd_hba.conf文件”部分。 -
客户端系统从SeaboxMPP数据库的Coordinator请求Kerberos配置文件krb5.conf。 客户端系统需要Kerberos密钥表文件,该文件包含用于登录数据库的SeaboxMPP数据库用户的身份认证凭据。
-
客户端机器必须能够连接到SeaboxMPP数据库coordinator主机。
如有必要,将SeaboxMPP数据库coordinator主机名和IP地址添加到系统的
hosts
文件。 在Linux系统上,hosts
文件在/etc
目录下。
客户端必需软件¶
-
在客户端机器上需要Kerberos的
kinit
工具。该
kinit
在安装安装Kerberos软件包时即可获得: - krb5-libs - krb5-workstation
注意:安装Kerberos软件包时,可以使用其他Kerberos的klist
工具显示Kerberos票证信息。
Java应用程序需要如下额外软件:
-
Java JDK
Red Hat Enterprise Linux 6.x支持Java JDK 1.7.0_17。
-
确保将JAVA_HOME设置为Java JDK支持的安装目录。
设置客户端使用Kerberos身份认证¶
要使用Kerberos身份认证连接到SeaboxMPP数据库,需要Kerberos票证。
在客户端系统上,使用kinit
工具生成Kerberos的密钥表文件生成票证并存储在缓存文件中。
-
安装SeaboxMPP数据库maste主机中Kerberos配置文件
krb5.conf
的副本。 该文件可用于SeaboxMPP数据库客户端软件和Kerberos实用程序。安装
krb5.conf
文件到/etc
目录。如果需要,增加
default_ccache_name
参数到krb5.ini
文件的[libdefaults]
部分,用于指定Kerberos票据缓存文件在客户端系统中位置。 -
获取包含SeaboxMPP数据库用户的身份认证凭据的Kerberos密钥表文件。
-
运行
kinit
指定密钥表文件在客户端计算机上创建票证。 对于此示例,密钥表文件scdb-kerberos.keytab
在当前目录中。 票证缓存文件位于seabox
用户家目录。> kinit -k -t scdb-kerberos.keytab -c /home/seabox/cache.txt seabox/kerberos-scdb@KRB.EXAMPLE.COM
使用ssql连接¶
您可以远程系统访问启用了Kerberos身份认证的SeaboxMPP数据库。
-
作为seabox用户打开命令窗口。
-
从命令窗口启动
ssql
,指定与SeaboxMPP数据库的连接,使用Kerberos身份验证配置的用户。例如,使用Kerberos主体
seabox/kerberos-scdb
,以seabox
用户身份, 登录到计算机上的SeaboxMPP数据库:$ ssql -U "seabox/kerberos-scdb" -h kerberos-scdb seaboxsql
运行Java应用程序连接¶
使用Java身份验证和授权服务(JAAS),通过Java应用程序访问已启用Kerberos身份验证的SeaboxMPP数据库。
-
在用户家目录创建
.java.login.config
文件控制。例如,在Linux系统,家目录类似于
/home/seabox
。添加如下内容到文件中:
sdjdbc { com.sun.security.auth.module.Krb5LoginModule required doNotPrompt=true useTicketCache=true ticketCache = "/home/seabox/cache.txt" debug=true client=true; };
-
创建Java应用程序连接到已启用Kerberos身份验证的SeaboxMPP数据库的,并以用户身份运行应用程序。
此示例数据库连接URL使用SeaboxSQL的JDBC驱动程序并指定Kerberos身份验证的参数。
jdbc:seaboxsql://kerberos-scdb:3000/mytest?
kerberosServerName=seaboxsql&jaasApplicationName=sdjdbc&
user=seabox/kerberos-scdb
指定的参数名称和值取决于Java应用程序如何执行Kerberos身份验证。