为Linux客户端配置Kerberos

可以配置Linux客户端应用来连接一个配置为用Kerberos认证的Greenplum数据库系统。

如果在RedHat Enterprise Linux上的JDBC应用连接Greenplum数据库时使用Kerberos认证,客户端系统必须被配置为使用Kerberos认证。如果没有使用Kerberos认证来连接到Greenplum数据库,就无需在客户端系统上配置Kerberos。

有关在Greenplum数据库中启用Kerberos认证的信息,请见Greenplum数据库管理员指南中的"使用Kerberos认证"。

上级主题: 配置客户端认证

要求

下面是从一个客户端系统用JDBC应用连接到启用了Kerberos认证的Greenplum数据库的要求。

先决条件

  • 在Greenplum数据库的Master主机上必须安装并配置好Kerberos。 重要: Greenplum数据库必须被配置好,这样远程用户能够用Kerberos认证连接到Greenplum数据库。对Greenplum数据库访问的授权由pg_hba.conf文件控制。细节请见Greenplum数据库管理员指南中的"编辑pg_hba.conf文件",还可参见Greenplum数据库安全性配置指南
  • 客户端系统从Greenplum数据库的Master请求Kerberos配置文件krb5.conf
  • 客户端系统要求一个Kerberos的keytab文件,其中含有被用来登入数据库的Greenplum数据库用户的认证证书。
  • 客户端机器必须能够连接到Greenplum数据库的Master主机。 如果需要,把Greenplum数据库的Master主机名和IP地址添加到系统的hosts文件中。在Linux系统上,hosts文件在/etc中。

客户端机器上的必备软件

  • 在客户端机器上要求Kerberos的kinit工具。在安装Kerberos包时就有kinit工具:

    • krb5-libs
    • krb5-workstation

注意: 在安装Kerberos包时,可以使用其他Kerberos工具(例如klist)来显示Kerberos的ticket信息。

Java应用要求额外的软件:* Java JDK 在Red Hat Enterprise Linux 6.x上支持Java JDK 1.7.0_17。

  • 确保JAVA_HOME被设置为受支持的Java JDK的安装目录。

设置带有Kerberos认证的客户端系统

用Kerberos认证连接到Greenplum数据库需要一个Kerberos的ticket。在客户端系统上,ticket从Kerberos的keytab文件用kinit工具生成,并且被保存在一个缓冲文件中。

  1. 从Greenplum数据库的Master上的Kerberos配置文件krb5.conf复制一份拷贝。这个文件会被Greenplum数据库客户端软件以及Kerberos工具使用。 把krb5.conf安装在目录/etc中。

如果需要,把参数default_ccache_name添加到krb5.ini文件的[libdefaults]小节中,并且为它指定客户端系统上的Kerberos ticket缓冲文件。

  1. 获得一个包含Greenplum数据库用户的认证证书的Kerberos keytab文件。
  2. 运行kinit根据指定的keytab文件在客户端机器上创建一个ticket。对于这个例子,keytab文件gpdb-kerberos.keytab在当前目录中。ticket缓冲文件在gpadmin用户的主目录中。
> kinit -k -t gpdb-kerberos.keytab -c /home/gpadmin/cache.txt 
   gpadmin/kerberos-gpdb@KRB.EXAMPLE.COM

运行psql

用户可以从一个远程系统访问启用了Kerberos认证的Greenplum数据库。

要用psql连接到Greenplum数据库

  1. 作为gpadmin用户,打开一个命令窗口。
  2. 从命令窗口启动psql,并且指定建立到Greenplum数据库的连接,连接使用一个配置了Kerberos认证的用户。下面的例子作为gpadmin用户登入到kerberos-gpdb机器上的Greenplum数据库,该用户的Kerberos证书是gpadmin/kerberos-gpdb
$ psql -U "gpadmin/kerberos-gpdb" -h kerberos-gpdb postgres

运行一个Java应用

从一个Kerberos认证的Java应用使用Java认证和授权服务(JAAS)访问Greenplum数据库

  1. 在用户主目录中创建文件.java.login.config。例如,在一个Linux系统上,主目录类似于/home/gpadmin

把下列文本加到该文件中:

pgjdbc { 
  com.sun.security.auth.module.Krb5LoginModule required
  doNotPrompt=true
  useTicketCache=true
  ticketCache = "/home/gpadmin/cache.txt"
  debug=true
  client=true;
};
  1. 创建一个使用Kerberos认证连接到Greenplum数据库的Java应用,并且作为该用户运行该应用。

这个示例数据库连接URL使用了一种PostgreSQL JDBC驱动并且指定了用于Kerberos认证的参数。

jdbc:postgresql://kerberos-gpdb:5432/mytest? 
  kerberosServerName=postgres&jaasApplicationName=pgjdbc& 
  user=gpadmin/kerberos-gpdb

指定的参数名和值取决于该Java应用如何执行Kerberos认证。

当前内容版权归GreenPlum和翻译组所有,若有侵权请联系删除下架 修订时间: 2024-09-15 21:48:01

results matching ""

    No results matching ""