跳转至

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的密钥表文件生成票证并存储在缓存文件中。

  1. 安装SeaboxMPP数据库maste主机中Kerberos配置文件krb5.conf的副本。 该文件可用于SeaboxMPP数据库客户端软件和Kerberos实用程序。

    安装krb5.conf文件到/etc目录。

    如果需要,增加default_ccache_name参数到krb5.ini文件的[libdefaults]部分,用于指定Kerberos票据缓存文件在客户端系统中位置。

  2. 获取包含SeaboxMPP数据库用户的身份认证凭据的Kerberos密钥表文件。

  3. 运行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数据库。

  1. 作为seabox用户打开命令窗口。

  2. 从命令窗口启动ssql,指定与SeaboxMPP数据库的连接,使用Kerberos身份验证配置的用户。

    例如,使用Kerberos主体seabox/kerberos-scdb,以seabox用户身份, 登录到计算机上的SeaboxMPP数据库:

    $ ssql -U "seabox/kerberos-scdb" -h kerberos-scdb seaboxsql
    
运行Java应用程序连接

使用Java身份验证和授权服务(JAAS),通过Java应用程序访问已启用Kerberos身份验证的SeaboxMPP数据库。

  1. 在用户家目录创建.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;
    };
    
  2. 创建Java应用程序连接到已启用Kerberos身份验证的SeaboxMPP数据库的,并以用户身份运行应用程序。

此示例数据库连接URL使用SeaboxSQL的JDBC驱动程序并指定Kerberos身份验证的参数。

jdbc:seaboxsql://kerberos-scdb:3000/mytest? 
  kerberosServerName=seaboxsql&jaasApplicationName=sdjdbc& 
  user=seabox/kerberos-scdb

指定的参数名称和值取决于Java应用程序如何执行Kerberos身份验证。