文档菜单
文档首页
/
MongoDB 手册
/ / /

mongokerberos

本页内容

  • 摘要
  • 安装
  • 用法
  • 选项

MongoDB 企业版提供mongokerberos 用于测试 MongoDB 的 Kerberos 和 GSSAPI配置选项,以对正在运行的 Kerberos 部署进行测试。 mongokerberos 可以在两种模式中使用: 服务器客户端

模式
描述
服务器
服务器模式 中,mongokerberos 分析服务器上的 Kerberos 相关配置,并返回一个报告,其中包括任何有问题配置的错误消息。有关用法,请参阅 服务器模式
客户端
客户端模式 中,mongokerberos 测试提供的用户名的 Kerberos 身份验证,并返回一个报告,其中包括 Kerberos 身份验证过程每个步骤的成功或失败情况。有关用法,请参阅 客户端模式

两种模式中的错误消息都包括遇到的具体错误信息和解决错误的可能性建议。

mongokerberos 支持以下部署类型,在服务器和客户端模式下均可使用

  • 在支持的 Linux 平台上对 MIT Kerberos 部署进行身份验证的 Linux MongoDB 客户端。

  • 在支持的 Windows 平台上对 Windows Active Directory 部署进行身份验证的 Windows MongoDB 客户端。

  • 对 Windows Active Directory 部署进行身份验证的 Linux MongoDB 客户端。

注意

MongoDB企业版和mongokerberos仅支持Kerberos的MIT实现

通常,当配置与Kerberos身份验证相关的选项时,使用mongokerberos验证您的配置是一种好的做法。

mongokerberos是一个测试和验证工具;它不会编辑任何文件或配置任何服务。有关在您的平台上配置Kerberos的信息,请参阅MIT Kerberos文档或您平台的文档。有关配置MongoDB使用Kerberos进行身份验证的教程,请参考以下内容

本文档提供了mongokerberos所有命令行选项的完整概述。

工具 mongokerberos 是 MongoDB 数据库工具扩展包的一部分,可以与 MongoDB 服务器一起安装,或者作为独立安装。

要将 mongokerberos 作为 MongoDB 企业服务器安装的一部分安装

  • 根据您的平台遵循说明: 安装 MongoDB 企业服务器

  • 安装完成后,mongokerberos 和其他包含的工具将在与服务器相同的目录中可用。

    注意

    对于 Windows .msi 安装向导,完整 安装选项包括 mongokerberos

mongokerberos 作为独立安装

  • 请访问 MongoDB 企业版的下载链接: MongoDB 企业版下载中心

  • 从下拉菜单中选择您的 平台(操作系统),然后根据以下图表选择适合您平台的适当 软件包

    操作系统
    软件包
    Linux
    tgz 软件包
    Windows
    zip 软件包
    macOS
    tgz 软件包
  • 下载完成后,解压缩存档,并将 mongokerberos 复制到您的硬盘上的某个位置。

    提示

    Linux 和 macOS 用户可能希望将 mongokerberos 复制到在 $PATH 环境变量中定义的文件系统位置,例如 /usr/bin。这样做可以让您在命令行中通过名称直接引用 mongokerberos,而无需指定其完整路径,或首先导航到其父目录。有关更多信息,请参阅您平台的安装指南

mongokerberos 可以在两种模式下运行: 服务器客户端

请从系统命令行运行 mongosh,而不是在 mongosh 中运行。

以服务器模式运行 mongokerberos 将对您的系统 Kerberos 配置执行一系列验证步骤,包括检查正确的 DNS 解析、验证 Kerberos 系统密钥表文件以及针对您的 mongodmongos 实例的服务主体进行测试。

在您可以在服务器模式下使用 mongokerberos 之前,您必须

  1. 根据您平台的相关文档,在您的平台上配置 Kerberos。

  2. 根据以下步骤创建用于您的 mongodmongos 实例的 MongoDB 服务主体

完成这些步骤后,您可以使用 --server 标志在服务器模式下运行 mongokerberos

mongokerberos --server

如果服务器上已正确配置 Kerberos,并且已成功创建服务主体,输出可能如下所示

Resolving kerberos environment...
[OK] Kerberos environment resolved without errors.
Verifying DNS resolution works with Kerberos service at <hostname>...
[OK] DNS test successful.
Getting MIT Kerberos KRB5 environment variables...
* KRB5CCNAME: not set.
* KRB5_CLIENT_KTNAME: not set.
* KRB5_CONFIG: not set.
* KRB5_KTNAME: not set.
* KRB5_TRACE: not set.
[OK]
Verifying existence of KRB5 keytab FILE:/etc/krb5.keytab...
[OK] KRB5 keytab exists and is populated.
Checking principal(s) in KRB5 keytab...
Found the following principals for MongoDB service mongodb:
* mongodb/server.example.com@SERVER.EXAMPLE.COM
Found the following kvnos in keytab entries for service mongodb:
* 3
[OK] KRB5 keytab is valid.
Fetching KRB5 Config...
KRB5 config profile resolved as:
<Your Kerberos profile file will be output here>
[OK] KRB5 config profile resolved without errors.
Attempting to initiate security context with service credentials...
[OK] Security context initiated successfully.

最后一条消息表明系统的 Kerberos 配置已准备好与 MongoDB 一起使用。如果配置中遇到任何错误,它们将作为上述输出的一部分显示。

以客户端模式运行 mongokerberos 测试系统 Kerberos 环境的认证,执行 Kerberos 认证过程中的每一步,包括检查 DNS 解析是否正确、验证 Kerberos 客户端 keytab 文件,以及测试是否可以成功授予权票。以客户端模式运行 mongokerberos 模拟 mongosh 的客户端认证过程。

在您可以使用客户端模式运行 mongokerberos 之前,您必须首先根据您平台的文档配置您的平台上的 Kerberos。可选地,您也可以先以 服务器模式 运行 mongokerberos,以验证在以客户端模式使用之前您的平台上的 Kerberos 配置是否有效。

完成这些步骤后,您可以使用以下 --client 标志运行客户端模式的 mongokerberos 以测试用户认证:

mongokerberos --client --username <username>

您必须提供有效的用户名,该用户名用于认证过程中请求 Kerberos 票据。您的平台 Kerberos 基础设施必须知道此用户。

如果提供的凭据有效,并且配置文件中的 Kerberos 选项有效,输出可能如下所示:

Resolving kerberos environment...
[OK] Kerberos environment resolved without errors.
Verifying DNS resolution works with Kerberos service at <hostname>...
[OK] DNS test successful.
Getting MIT Kerberos KRB5 environment variables...
* KRB5CCNAME: not set.
* KRB5_CLIENT_KTNAME: not set.
* KRB5_CONFIG: not set.
* KRB5_KTNAME: not set.
* KRB5_TRACE: not set.
[OK]
Verifying existence of KRB5 client keytab FILE:/path/to/client.keytab...
[OK] KRB5 client keytab exists and is populated.
Checking principal(s) in KRB5 keytab...
[OK] KRB5 keytab is valid.
Fetching KRB5 Config...
KRB5 config profile resolved as:
<Your Kerberos profile file will be output here>
[OK] KRB5 config profile resolved without errors.
Attempting client half of GSSAPI conversation...
[OK] Client half of GSSAPI conversation completed successfully.

最终消息表示已成功完成提供的用户的客户端认证。如果在认证步骤中遇到任何错误,它们将作为以上输出的一部分显示。

--server

以服务器模式运行 mongokerberos 以测试您的平台 Kerberos 配置是否适用于 MongoDB。

请参见服务器模式了解示例用法和预期输出。

--client

以客户端模式运行mongokerberos,以测试对系统Kerberos环境的客户端身份验证。在客户端模式下运行时,需要使用 --username指定有效的用户名。mongokerberos将作为验证过程的一部分请求此用户名的Kerberos票据。在客户端模式下运行mongokerberos模拟mongosh的客户端身份验证过程。

请参见客户端模式了解示例用法和预期输出。

--config <filename>, -f <filename>

指定配置文件以供运行时配置选项使用。这些选项与命令行配置选项等效。有关更多信息,请参阅自行管理配置文件选项

mongokerberos将从该文件中读取saslHostNamesaslServiceName的值(如果存在)。这些值可以替代使用--setParameter选项指定。

确保配置文件使用ASCII编码。mongokerberos实例不支持非ASCII编码的配置文件,包括UTF-8。

仅在服务器模式下有效。

--setParameter <options>

设置可配置的参数。您可以指定多个setParameter字段。

虽然您可以使用所有支持的参数与setParameter一起使用,但mongokerberos只检查以下值

如果使用带有这些值的配置文件的--config选项,则setParameter值将覆盖配置文件中的值。

服务器模式客户端模式中都有效。

--host <hostname>

指定测试身份验证时连接到的MongoDB服务器的主机名。

如果没有指定--host,则mongokerberos不会对主机名进行任何DNS验证(即PTR记录验证)

仅在客户端模式下有效。

--username <username>, -u <username>

用于在尝试Kerberos身份验证时 mongokerberos 的用户名。在以 客户端模式 运行时,此值是必需的。

仅在客户端模式下有效。

--gssapiServiceName <servicename>

默认: 'mongodb'

在GSSAPI/Kerberos身份验证时使用的服务主体名称。

仅在客户端模式下有效。

--gssapiHostName <hostname>

用于GSSAPI/Kerberos身份验证的远程主机名。

仅在客户端模式下有效。

返回

mongos.exe