TT Bigdata TT Bigdata
首页
  • 部署专题

    • 常规安装
    • 一键部署
  • 组件专题

    • 安装指导
    • 魔改分享
  • 高阶玩法

    • 实战 Kerberos
    • 实战 Ranger
  • 版本专题

    • 更新说明
    • BUG临时处理
  • 实验室

    • VIEW插件
    • JIRA速查
  • Ambari-Env

    • 环境准备
    • 开始使用
  • 二开指导

    • 前端开发
    • 后端开发
  • 组件编译

    • 专区—Ambari
    • 专区—Bigtop-官方组件
    • 专区—Bigtop-扩展组件
  • 报错解决

    • 专区—Ambari
    • 专区—Bigtop
  • 其他技巧

    • APT仓库增量更新
    • Maven镜像加速
    • Gradle镜像加速
    • Bower镜像加速
    • 虚拟环境思路
    • R环境安装+一键安装脚本
    • Ivy配置私有镜像仓库
    • Node.js 多版本共存方案
    • Ambari Web本地启动
    • Npm镜像加速
    • PostgreSQL快速安装
    • Temurin JDK 23快速安装
  • 成神之路

    • 专区—Ambari
    • 专区—Ambari-Metrics
    • 专区—Bigtop
  • 集成案例

    • Redis集成教学
    • Dolphin集成教学
    • Doris集成教学
    • 持续整理...
  • 核心代码

    • 各组件代码
    • 通用代码模板
  • 国产化&其他系统

    • Kylin V10系列
    • Rocky系列
    • Ubuntu系列
  • Grafana监控方案

    • Ambari-Metrics插件
    • Infinity插件
  • 优化增强

    • 组件配置调优
  • 支持&共建

    • 蓝图愿景
    • 合作共建
    • 服务说明
登陆
GitHub (opens new window)

JaneTTR

数据酿造智慧,每一滴都是沉淀!
首页
  • 部署专题

    • 常规安装
    • 一键部署
  • 组件专题

    • 安装指导
    • 魔改分享
  • 高阶玩法

    • 实战 Kerberos
    • 实战 Ranger
  • 版本专题

    • 更新说明
    • BUG临时处理
  • 实验室

    • VIEW插件
    • JIRA速查
  • Ambari-Env

    • 环境准备
    • 开始使用
  • 二开指导

    • 前端开发
    • 后端开发
  • 组件编译

    • 专区—Ambari
    • 专区—Bigtop-官方组件
    • 专区—Bigtop-扩展组件
  • 报错解决

    • 专区—Ambari
    • 专区—Bigtop
  • 其他技巧

    • APT仓库增量更新
    • Maven镜像加速
    • Gradle镜像加速
    • Bower镜像加速
    • 虚拟环境思路
    • R环境安装+一键安装脚本
    • Ivy配置私有镜像仓库
    • Node.js 多版本共存方案
    • Ambari Web本地启动
    • Npm镜像加速
    • PostgreSQL快速安装
    • Temurin JDK 23快速安装
  • 成神之路

    • 专区—Ambari
    • 专区—Ambari-Metrics
    • 专区—Bigtop
  • 集成案例

    • Redis集成教学
    • Dolphin集成教学
    • Doris集成教学
    • 持续整理...
  • 核心代码

    • 各组件代码
    • 通用代码模板
  • 国产化&其他系统

    • Kylin V10系列
    • Rocky系列
    • Ubuntu系列
  • Grafana监控方案

    • Ambari-Metrics插件
    • Infinity插件
  • 优化增强

    • 组件配置调优
  • 支持&共建

    • 蓝图愿景
    • 合作共建
    • 服务说明
登陆
GitHub (opens new window)
  • 【方案一】自建 Kerberos 认证体系

  • 【方案二】FreeIPA认证体系——生产推荐

    • FreeIPA服务端初始化

    • FreeIPA客户端初始化及Ambari开启IPA认证

      • [Step1]-FreeIPA Client 安装与入域实战
      • [Step2]-FreeIPA 初始化核心用户
      • [Step3]-Ambari 中开启 Kerberos 认证流程详解
      • [Step3-1]-krb5-conf template调整
        • 一、为什么 krb5-conf 必须调整?
          • 1.Ranger 高可用场景 SPN 不统一
          • 2.开启 Kerberos 流程无法通过(Fatal)
        • 二、问题根源:Kerberos 主机名解析机制
        • 三、源码级修复(推荐方式)
          • 3.1 修改 krb5_conf.j2 模板
          • 3.2 在 [libdefaults] 中追加两行
          • 3.3 修改后的完整关键段落
        • 四、生产环境如何处理?
    • 部分踩坑-问题发现

    • 部分踩坑-完美解决

    • 辅助测试

  • 其他优化技巧

  • 部分组件踩坑合集

  • 实战技巧

  • 其他技巧

  • 组件安装-Kerberos
  • 【方案二】FreeIPA认证体系——生产推荐
  • FreeIPA客户端初始化及Ambari开启IPA认证
JaneTTR
2026-02-14
目录

[Step3-1]-krb5-conf template调整不改报错

需要 ttr-release 版本 >= 2.2.3

Ambari 3.0.0 + Free IPA 统一认证体系 示例环境:Kylin V10 SP3 x86,Realm = TEST.COM

# 一、为什么 krb5-conf 必须调整?

在 FreeIPA 环境下,如果 Ambari 使用默认的 krb5_conf.j2 模板,不进行调整,会产生两个典型问题:

# 1.Ranger 高可用场景 SPN 不统一

  • 节点解析 FQDN 时发生反向解析
  • Kerberos 自动 canonicalize hostname
  • 最终生成的 SPN 与预期不一致
  • Ranger Admin / Plugin 通信报错

# 2.开启 Kerberos 流程无法通过(Fatal)

在 Ambari 启用 Kerberos 流程中:

  • Principal 创建成功
  • 但服务校验失败
  • 流程中断

本质原因: Kerberos 主机名解析行为与 FreeIPA 期望不一致。

结论

在 FreeIPA 场景下,不修改 krb5-conf 模板属于致命隐患。

# 二、问题根源:Kerberos 主机名解析机制

默认情况下:

rdns = true
dns_canonicalize_hostname = true
1
2

行为:

  1. Kerberos 会进行反向 DNS 解析
  2. 自动 canonicalize hostname
  3. SPN 可能被改写

例如:

HTTP/dev1.test.com@TEST.COM
1

可能被解析成:

HTTP/dev1.internal.local@TEST.COM
1

导致认证失败。

# 三、源码级修复(推荐方式)

# 3.1 修改 krb5_conf.j2 模板

源码路径:

ambari-server/src/main/resources/stacks/BIGTOP/3.2.0/services/KERBEROS/properties/krb5_conf.j2
1

如下图所示:

image-20260214213036825

# 3.2 在 [libdefaults] 中追加两行

rdns = false
dns_canonicalize_hostname = false
1
2

# 3.3 修改后的完整关键段落

[libdefaults]
  forwardable = true
  default_realm = {{ realm }}
  ticket_lifetime = 24h
  dns_lookup_realm = false
  dns_lookup_kdc = false
  rdns = false
  dns_canonicalize_hostname = false
  default_ccache_name = /tmp/krb5cc_%{uid}
1
2
3
4
5
6
7
8
9

完整模板示例:

[libdefaults]
  forwardable = true
  default_realm = {{ realm }}
  ticket_lifetime = 24h
  dns_lookup_realm = false
  dns_lookup_kdc = false
  rdns = false
  dns_canonicalize_hostname = false
  default_ccache_name = /tmp/krb5cc_%{uid}

[realms]
  {{ realm }} = {
    admin_server = {{ admin_server_host }}
  }
1
2
3
4
5
6
7
8
9
10
11
12
13
14

笔记

源代码修改完毕后,重新编译、部署安装即可

# 四、生产环境如何处理?

如果已经是生产环境,不方便重新编译,可以直接通过 Ambari Web UI 修改 krb5-conf 模板。

步骤:

  1. 进入 Ambari → Kerberos → Advanced krb5-conf
  2. 找到 [libdefaults] 段
  3. 添加:
rdns = false
dns_canonicalize_hostname = false
1
2

界面如下:

image-20260214213245951

保存后重新部署 Kerberos 配置。

#FreeIPA#Kerberos#krb5.conf#Ranger#Ambari#Realm
[Step3]-Ambari 中开启 Kerberos 认证流程详解
Ambari Server 启动失败:no valid keystore

← [Step3]-Ambari 中开启 Kerberos 认证流程详解 Ambari Server 启动失败:no valid keystore→

最近更新
01
Ranger Admin LDAP 认证报 Bad credentials 分析
02-15
02
Ranger Admin LDAP 认证报 Bad credentials 处理
02-15
03
Ranger Admin 证书快速导入脚本
02-15
更多文章>
Theme by Vdoing | Copyright © 2017-2026 JaneTTR | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式