Docs 菜单
Docs 主页
/
BI Connector
/

为 BI Connector 配置 Kerberos

2.5 版本新增功能

MongoDB Connector for BI 支持 Kerberos 身份验证,用于连接 BI 工具以及 BI Connector 的管理员用户与 MongoDB 进行身份验证。

以下部分将指南您配置 BI Connector,通过两个最常见的使用案例使用 Kerberos 身份验证:

  • 向 Active Directory 进行身份验证的 Windows/Linux 客户端计算机

  • 向 Linux KDC进行身份验证的 macOS 客户端计算机

如果您有其他使用案例,请联系 MongoDB 支持部门以获取帮助。

重要

任何用户名的域部分必须全部大写字母。 这部分用户名对应于Kerberos 域或 Active Directory 域。 区分大小写。

例子

假设此配置:

  • 你的名字是 Grace Smith

  • 您的Windows域名为EXAMPLE.COM

  • 您正在名为BI.EXAMPLE.COM的Windows托管上运行BI工具。

在 Active Directory 中,您可以创建三个用户:

  • 对于MongoDB: mongodb@EXAMPLE.COM

  • 对于BI Connector: mongosql@EXAMPLE.COM

  • 为您: grace.smith@EXAMPLE.COM

为每个服务创建一个SPN

setspn.exe -S mongodb/BI.EXAMPLE.COM mongodb
setspn.exe -S mongosql/BI.EXAMPLE.COM mongosql

注意

这些名称可以是您选择的任何名称,只要您在整个设置过程中一致使用这些名称即可。

打开 Active Directory 管理中心 ,然后双击MongoDB服务用户 (mongodb )。

mongosql用户设置为BI.EXAMPLE.COM托管中mongodb用户的委托。

注意

Linux模式用户向 ADC 进行身份验证

如果您从Linux托管对用户进行身份验证,并且模式用户使用 keytab文件而不是密码,则除了在MongoDB中创建用户之外,还需要执行以下操作:

  • 为模式用户创建UPN

  • 设置 KRB5 _CLIENT_KTNAME 此用户的密钥表的环境变量。

    KRB5_CLIENT_KTNAME必须包含模式用户和BI Connector服务用户的密钥。

  • 安装 MongoDB Enterprise并将其作为服务启动。

  • 配置文件中设置以下选项:

    net:
    bindIp: <fullHostnameOfBIConnector>
    setParameter:
    authenticationMechanisms: "GSSAPI"

    有关更多信息,请参阅net.bindIpsetParameterauthenticationMechanisms。

  • 以您在 Active Directory 中创建的MongoDB Windows用户身份运行mongod

  • 在MongoDB 数据库上创建具有适当角色的用户,以示例数据。

例子

  • 你的名字是Grace Smith

  • 您的Windows域名为EXAMPLE.COM

  • 您正在名为BI.EXAMPLE.COM的Windows托管上运行BI工具。

BI.EXAMPLE.COM上:

  • 将MongoDB和MongoDB Connector for BI安装为服务。

  • 编辑mongod.cfg文件,使其类似于以下内容:

    systemLog:
    destination: "file"
    path: "c:\\data\\log\\mongod.log"
    verbosity: 2
    storage:
    dbPath: "c:\\data\\db"
    net:
    bindIp: BI.EXAMPLE.COM
    setParameter:
    authenticationMechanisms: "GSSAPI"
  • 登录到mongo shell 并创建 BI Connector 用户。

    db.getSiblingDB("$external").createUser(
    {
    user: "grace.smith@EXAMPLE.COM",
    roles: [ { role: "readAnyDatabase", db: "admin" } ]
    }
    )
  • 编辑mongosqld.cfg文件,使其类似于以下内容:

    systemLog:
    path: "c:\\data\\log\\mongosqld.log"
    logAppend: true
    logRotate: "reopen"
    verbosity: 3
    runtime:
    memory:
    maxPerStage: 102400
    net:
    bindIp: BI.EXAMPLE.COM
    port: 3306
    security:
    enabled: true
    defaultSource: "$external"
    defaultMechanism: "GSSAPI"
    gssapi:
    hostname: "BI.EXAMPLE.COM"
    serviceName: "mongosql"
    mongodb:
    net:
    uri: "mongodb://BI.EXAMPLE.COM/"
    auth:
    username: "grace.smith@EXAMPLE.COM"
    password: "abc123!"
    source: "$external"
    mechanism: "GSSAPI"
    processManagement:
    service:
    displayName: "MongoDB BI Connector"
  • 打开 Services

  • 将MongoDB设置为 Log on as: This account: mongodb@EXAMPLE.COM

  • 将MongoDB Connector for BI设置为 Log on as: This account: mongosql@EXAMPLE.COM

  • 启动MongoDB和MongoDB Connector for BI服务。

注意

Linux模式用户向 ADC 进行身份验证

如果要从Linux托管对用户进行身份验证,并且模式用户将使用用户名和密码,则需要满足以下条件:

提示

另请参阅:

要了解如何配置 Active Directory 来管理 MongoDB 实例,请参阅使用 Kerberos 身份验证和 Active Directory 授权配置 MongoDB。

  • 确保您的mongodmongos实例正在运行MongoDB Enterprise。

  • 配置mongodmongos实例以使用Kerberos (GSSAPI) 身份验证。

  • 确认您在 MongoDB配置文件中设置了以下选项:

    net:
    bindIp: <fullHostnameOfBIConnector>
    setParameter:
    authenticationMechanisms: "GSSAPI"
  • 创建密钥表文件 在具有 mongosql和 所需的Kerberos 服务主体 的 KDCmongosql2 上。

    例子

    mongosql/<fullHostnameOfBIConnector>@<KERBEROS_REALM>
  • 将您为 MongoDB 部署创建的keytab文件复制到为 BI Connector 提供服务的同一主机。

  • 如果您的密钥表不使用默认名称 (krb5.keytab ),则必须将 KRB5 _KTNAME 环境变量。

    注意

    macOS 上的 Kerberos 实施, Heimdal ,与default_keytab_name MIT Kerberos 不同,不支持 配置设置。您必须设置KRB5_KTNAME环境变量。

  • 如果 Kerberos 配置文件不使用默认名称 (krb5.conf ),则必须将 KRB5 _CONFIG 环境变量。(Heimdal 还支持 此环境变量 。)

  • 将以下BI Connector身份验证设置添加到mongosqld配置文件:

    security:
    enabled: true
    defaultMechanism: "GSSAPI"
    defaultSource: "$external"
    gssapi:
    hostname: <host running mongosqld>
    serviceName: <name of mongosqld service>

    有关更多信息,请参阅:

  • 添加BI Connector将用于与MongoDB进行身份验证的以下设置:

    mongodb:
    net:
    uri: "mongodb://<hostname and port of mongodb database>/"
    auth:
    username: <database username>
    password: <database password>
    source: "$external"
    mechanism: "GSSAPI"

    有关更多信息,请参阅:

提示

在本地主机上使用 Kerberos 测试 BI Connector

如果您使用在mongosqld 上运行的 来测试 Kerberos,则必须在localhost net.unixDomainSocket.enabledtruemongosqld 配置文件中将 设置为 。