GBase 8a
运维管理
文章

Kerberos认证方式连接

发表于2025-11-05 15:03:5237次浏览2个评论
  • 为什么要使用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认证证书

评论

登录后才可以发表评论
崔哥发表于 3个月前
春日游,杏花吹满头。陌上谁家年少足风流?妾拟将身嫁与一生休。纵被无情弃,不能羞。
用户头像
levvel发表于 2个月前
讲得很清楚!