SQL接口支持多种身份验证机制来连接到MongoDB 部署。此页面包括Atlas专用集群、 Atlas联合数据库实例和自管理MongoDB Enterprise部署支持的身份验证方法、组件兼容性和部署可用性。
身份验证支持矩阵
下表显示了每个SQL接口组件支持的身份验证机制:
组件 | SCRAM | x.509 | LDAP | GSSAPI | AWS IAM | OIDC |
|---|---|---|---|---|---|---|
MongoDB SQL模式构建器 | 是 | 是 | 是 | 是 | 是 | 是 |
ODBC 驱动程序 | 是 | 是 | 是 | 是 | 是 | 是 |
JDBC 驱动程序 | 是 | 是 | 是 | 是 | 是 | 是 |
Power BI Desktop | 是 | 是 | 是 | 是 | 是 | 是 |
Power BI网关 | 是 | No | No | No | No | No |
Tableau Desktop | 是 | 是 | 是 | 是 | 是 | 是 |
Tableau Server | 是 | 是 | No | No | No | No |
Tableau Cloud | 是 | No | No | No | No | No |
注意
并非所有第三方BI工具支持这些身份验证选项,尽管MongoDB驱动程序支持这些选项。测试要使用的功能,确认它们适用于您的特定BI工具。
部署兼容性矩阵
下表显示了每种MongoDB 部署类型可用的身份验证机制:
身份验证机制 | 专用集群 | 联合数据库实例 | |
|---|---|---|---|
SCRAM | 是 | 是 | 是 |
x.509 | 是 | 是 | 是 |
LDAP | 是 | No | 是 |
Kerberos (GSSAPI) | No | No | 是 |
AWS IAM | 是 | 是 | No |
OIDC | 是 | 是 | 是 |
重要
从MongoDB 8.0 开始, LDAP身份验证和授权已弃用。 LDAP在整个MongoDB 8 中保持可用并继续运行而无需更改,但未来的主要发布会将其删除。请考虑迁移到 OIDC 或其他受支持的身份验证机制。有关更多信息,请参阅LDAP弃用。
JDBC驱动程序配置
MongoDB JDBC驾驶员支持MongoDB支持的所有身份验证机制。要学习;了解更多信息,请参阅身份验证机制。如果进行配置,驾驶员还支持 TLS/SSL 连接。要学习;了解更多信息,请参阅 TLS/SSL 配置。
以下部分介绍了为 JDBC驾驶员配置 X.509、 Kerberos (GSSAPI) 和 OIDC身份验证的连接属性。这些属性应用于Atlas和自我管理的MongoDB Enterprise部署。
X.509 身份验证
MongoDB JDBC驾驶员支持 X.509客户端证书身份验证。以下属性控制驾驶员如何配置客户端证书和 CA 信任:
属性 | 用途 |
|---|---|
| 包含客户端证书和私钥的 PEM文件的路径。对于未加密或加密的PKCS #1 和 PKCS #8 密钥是必需的。 |
| 可选。包含一个或多个受信任 X.509 证书的 PEM文件的路径。设立为 后,驾驶员仅接受这些 CA 签名的证书。 |
| 根据您是否设立 |
配置 X.509身份验证时,请考虑以下行为:
如果设立
x509pempath,则其优先级高于password属性中的任何 PEM 内容。如果不设立
tlscafile,驾驶员将使用默认Java虚拟机(JVM)信任库。PEM 内容必须同时包含客户端证书及其相应的私钥,无论是通过
x509pempath还是在password属性中提供。
Kerberos (GSSAPI) 身份验证
MongoDB JDBC驾驶员支持使用 GSSAPI 进行基于 Kerberos 的身份验证。此机制要求您在驾驶员外部配置Kerberos和 JAAS 设置。以下属性控制驾驶员使用该配置的方式:
属性 | 说明 |
|---|---|
| JAAS 配置文件的路径,例如 |
| 指定 JAAS 配置中定义的登录上下文名称。 |
| 设立为 |
| 控制驾驶员是否使用原生GSSAPI 库。接受 |
OIDC 身份验证
MongoDB JDBC驾驶员根据您设立的身份验证机制属性来区分人为启动的 OIDC 流和机器自动执行的 OIDC 流:
人流:默认行为。需要通过浏览器登录进行用户交互。
机器流:用于GCP Workload Identity、 Azure Managed Identity 和Kubernetes等自动化环境。要启用机器流,设立
ENVIRONMENT和TOKEN_RESOURCE参数。
安全考虑因素
为SQL接口配置身份验证时,请考虑以下安全最佳实践:
使用强身份验证机制:尽可能首选 X.509、OIDC 或Kerberos,而不是基于密码的身份验证。
启用 TLS加密:始终使用 TLS 保护传输中的凭证和数据。
遵循最小权限原则:仅授予用户执行任务所需的最低权限。
安全档案存储:切勿在连接字符串中对凭证进行硬编码。使用环境变量、凭证文件或安全凭证管理系统。
定期凭证轮换:实现定期轮换密码和证书。
监控身份验证事件:启用Atlas 审核记录以追踪身份验证尝试和失败。