对 Kerberos 身份验证进行故障排除

mongokerberos 验证工具

与 MongoDB 4.4 一起引入的 mongokerberos 程序提供了一种方便的方法来验证平台的 Kerberos 配置以用于 MongoDB,并测试来自 MongoDB 客户端的 Kerberos 身份验证是否按预期工作。

mongokerberos 工具可以帮助诊断常见的配置问题,并且是对 Kerberos 配置进行故障排除时推荐的起点。 有关详细信息,请参阅 mongokerberos 文档。

mongokerberos 仅在 MongoDB Enterprise 中可用。

Kerberos 配置调试策略

如果您在使用 Kerberos 启动或验证 mongodmongos 时遇到困难:

  • 确保您运行的是 MongoDB Enterprise,而不是 MongoDB Community Edition。 Kerberos 身份验证是 MongoDB Enterprise 功能,不适用于 MongoDB Community Edition 二进制文件。

    要验证您使用的是 MongoDB Enterprise,请将 --version 命令行选项传递给 mongodmongos

    mongod --version
    

    在此命令的输出中,查找字符串 modules: subscription 或 modules: enterprise 以确认您使用的是 MongoDB Enterprise 二进制文件。

  • 确保 mongodmongos 实例的规范系统主机名是可解析的完全限定域名。

    在 Linux 上,您可以在系统提示符下使用 hostname -f 命令验证系统主机名解析。

  • 在 Linux 上,确保primary component of the service principal name (SPN)的主要组成部分SPN 的是 mongodb。 如果 SPN 的主要组件不是 mongodb,则必须使用 --setParameter saslServiceName 指定主要组件。

  • 在 Linux 上,确保instance component of the service principal name (SPN)组件 keytab file中的匹配 mongodmongos 实例的规范系统主机名。 如果 mongodmongos 实例的系统主机名不在 keytab 文件中,则身份验证将失败,并出现 GSSAPI error acquiring credentials. 错误信息。

    如果 hostname -f 返回的 mongodmongos 实例的主机名不是完全限定的,请在启动 mongodmongos 时使用--setParameter saslHostName设置实例的完全限定域名。

  • 确保运行 mongodmongos 实例的每个主机都有 APTR DNS 记录以提供正向和反向 DNS 查找。 A 记录应映射到 mongodmongos 的 FQDN。

  • 确保托管 MongoDB 实例和 Kerberos 基础设施的服务器上的时钟在最大时间偏差范围内:默认为 5 分钟。 大于最大时间偏差的时间差会阻止成功的身份验证。

Linux 上的 Kerberos 跟踪日志记录

MIT Kerberos 为跟踪日志记录输出提供了 KRB5_TRACE 环境变量。 如果您在 Linux 上遇到 MIT Kerberos 的持续问题,您可以在启动 mongodmongosmongosh 实例时设置 KRB5_TRACE 以生成详细日志记录。

例如,以下命令启动一个独立的 mongod,其 keytab 文件位于默认的 /etc/krb5.keytab 路径,并将 /logs/mongodb-kerberos.log写入 KRB5_TRACE 设置:

env KRB5_KTNAME=/etc/krb5.keytab \
    KRB5_TRACE=/logs/mongodb-kerberos.log \
    mongod --dbpath /data/db --logpath /data/db/mongodb.log \
    --auth --setParameter authenticationMechanisms=GSSAPI \
    --bind_ip localhost,<hostname(s)|ip address(es)> --fork

常见错误信息

在某些情况下,如果 Kerberos 服务出现问题,MongoDB 会从 GSSAPI 接口返回错误消息。 一些常见的错误消息是:

GSSAPI error in client while negotiating security context.

此错误发生在客户端上,反映了凭证不正确或恶意的身份验证尝试。

如果收到此错误,请确保在连接到主机时使用正确的凭证和正确的完全限定域名。

GSSAPI error acquiring credentials.

此错误发生在 mongodmongos 启动期间,反映了系统主机名配置不正确或密钥表文件丢失或配置不正确。

[TIP]提示

也可以看看:

参见

原文 - Troubleshoot Kerberos Authentication

译者:景圣

Copyright © 上海锦木信息技术有限公司 all right reserved,powered by Gitbook文件修订时间: 2023-02-17 14:11:51

results matching ""

    No results matching ""