反馈已提交

网络繁忙

[平台]数据连接Kerberos认证

  • 文档创建者:susie
  • 历史版本:35
  • 最近更新:Lily.Wang 于 2023-12-01
  • 1. 概述

    1.1 版本

    版本
    功能变动
    11.0-
    11.0.7优化 Kerberos 认证方式,可在前端直接上传相关文件
    11.0.10
    新增报错 31300010 报错解决方案

    1.2 认证方式简介

    1)Kerberos 认证是 Hadoop 生态的一种通用的认证方式。

    2)配置 Kerberos 认证的方式有两种:

    • 直接使用数据连接配置界面中的 Kerberos 认证:主要用于 Hive、HBase 等驱动的认证连接。

    • 配置 JVM 参数后再进入数据连接配置界面进行认证:主要用于按要求填写数据连接配置界面认证成功,创建连接依然抛错的情况,比如 CDH 的 Impala 等数据库。

    1.3 支持的数据库

    支持的数据库类型如下,进行 Kerberos 认证的数据库,需要更换专用的驱动,URL 格式也要有所改变,详情请参见:Kerberos 驱动整理

    • Apache Impala

    • Hadoop Hive

    • Spark

    • Transwarp Inceptor(星环)

    • Apache Phoenix

    • HBase

    1.4 数据连接前的准备工作

    下载环境上的配置文件 krb5.conf、XXX.keytab、principal 。

     XXX.keytab 为密钥表文件,需要在提供 Kerberos 服务的应用服务器上找到该文件的对应位置。在不同服务器上 keytab 的文件名称可能不一样,这里用 XXX 代替。

    2. 操作步骤

    这里以 Hive 为例。

    2.1 配置 hosts 文件

    配置本地 hosts 文件,例如路径为C:\Windows\System32\drivers\etc\hosts,在此文件增加远端映射的配置,映射格式为「 IP  机器名」。如下图所示:

    1574079040114456.png

    2.2 设置数据连接

    1)参考 Kerberos 驱动整理 找到对应驱动,更改 URL 为对应格式,切换认证方式为 Kerberos。如下图所示:

    2)上传 「keytab」文件和「krb5.conf」文件,如下图所示:

    3)点击「测试连接」,连接成功如下图所示:

    3. 注意事项

    3.1 检查服务器及认证信息

    检查内容要求
    检查 FineReport 服务器所在机器和数据库服务器的系统时间差通常要求时间差小于 5 分钟

    检查配置 FineReport 服务器所在机器的 hosts 文件

    需确认能通过主机名/域名 ping 通数据库服务器
    FineReport 自带的 zookeeper 包与数据库服务端的 zookeeper 版本需要匹配例如:华为 HD 平台连接可能会出现此类报错
    检查 principal 名称是否正确

    principal 的格式通常为用户名/部门@公司,确认 principal 是否正确的方式是在数据库服务端 shell 执行klist 或者 kinit -k -t /path/to/keytab name_of_principal

    或直接通过 beeline、impala-shell 等工具连接开启认证的服务,并查看对应的 principal 信息

    例如:Hive 服务对应 principal 为 hive /bigdata@XXX.COM,而 Impala 服务对应的 principal为impala/bigdata@XXX.COM

    检查 FineReport 的工程路径确保不带有空格(如 tomcat 9),因为 Kerberos 认证不支持带有空格路径

    3.2 无法连接处理方式

    1)若连接失败,可与平台数据库管理员确认相关服务的安全认证配置是否正确,并联系帆软技术支持并提供相关报错日志(添加 JVM 安全调试参数,如下所示),数据平台数据库版本、对应驱动 JAR 包、相关连接信息、Java 认证连接测试代码或者能连接认证数据库的 shell 工具等。

    JVM 安全调试日志参数:

    -Djava.security.debug=gssloginconfig,configfile,configparser,logincontext
    -Djava.security.krb5.debug=true

    2)特殊情况下,如果 Windows 系统下无法连接,可以把 FineReport 测试服务器部署在 Linux 系统上。需保证该服务器能通过相关 shell 工具连上数据库,通过 klist 能看到已缓存的 kgt 信息。

    3.3 报错

    3.3.1 报错:31300010 kdc服务器不连通

    原因:连接超时

    解决方法:改大超时时间

    12.png

    附件列表


    主题: 数据准备
    已经是第一篇
    已经是最后一篇
    • 有帮助
    • 没帮助
    • 只是浏览
    中文(简体)

    鼠标选中内容,快速反馈问题

    鼠标选中存在疑惑的内容,即可快速反馈问题,我们将会跟进处理。

    不再提示

    10s后关闭

    联系我们
    在线支持
    获取专业技术支持,快速帮助您解决问题
    工作日9:00-12:00,13:30-17:30在线
    页面反馈
    针对当前网页的建议、问题反馈
    售前咨询
    采购需求/获取报价/预约演示
    或拨打: 400-811-8890 转1
    qr
    热线电话
    咨询/故障救援热线:400-811-8890转2
    总裁办24H投诉:17312781526
    提交页面反馈
    仅适用于当前网页的意见收集,帆软产品问题请在 问答板块提问前往服务平台 获取技术支持