GBase 8a
运维管理
文章

JDBC常用特性-Kerberos认证方式连接

发表于2024-11-02 17:08:33177次浏览1个评论

为什么要使用Kerberos认证方式连接:

一般情况下,JDBC与集群创建的连接方式,是不受认证管理的,只要IP、端口、用户名和密码是正确且符合集群访问限制的JDBC连接,都可以连接到集群进行操作,在一些安全项目中,需要有第三方认证管理机制,对访问集群的JDBC进行认证,符合认证条件才可以进行相关的操作,这种情况下就可以使用较为成熟的Kerberos认证机制。

 

什么是Kerberos认证方式连接

通过Kerberos认证机制进行连接的方式即为Kerberos认证方式连接,Kerberos是一种计算机网络授权协议,用来在非安全网络中,对个人通信以安全的手段进行身份认证。

 

使用前必须确保数据库版本支持Kerberos认证并且已经配置好Kerberos认证相关服务。具体使用可以参考数据库手册要求。在使用Kerberos认证时,需要确保jdbc所在机器的时间与Kerberos服务器时间一致。

Kerberos连接配置方式:

 

1、需要从集群获取keytab文件,拷贝到JDBC所在应用服务器的某一目录。

 

2、需要执行kinit命令初始化票据凭证,最后一个参数为kerberos client端principal name,命令如下:

    1)linux: kinit -kt /opt/gcluster/ktest1.keytab ktest1@gbase.cn 

    2)window:kinit -k -t D:\\svn\\kerberos\\ktest1.keytab ktest1@gbase.cn

 

3、从Kerberos服务器获取krb5.conf文件(linux默认安装在/etc下面),如果jdbc部署在linxu服务器下,直接拷贝到/etc下即可;如果部署在windows将其修改名字为krb5.ini然后复制到C:\Windows下面,注意里面的路径信息请修改为实际存在的路径。

 

代码示例如下:

// 以下为输出Kerberos日志,生产环境可以不使用。

System.setProperty("sun.security.krb5.debug","true");

System.setProperty("sun.security.jgss.debug","true");

 

String url ="jdbc:gbase://192.168.6.122:5258/test?"

                  + "user=ktest" // 在集群中配置的Kerberos用户

  + "&enableKerberosFlag=true" // 开启Kerberos认证

  + "&clientPrincipalName=ktest1" // Kerberos认证实体名

  + "&kerberosKeyTab=D:\\svn\\kerberos\\ktest1.keytab"; // Kerberos认证证书

评论

登录后才可以发表评论
用户头像
levvel发表于 8个月前
感谢分享