Login
网站首页 > 文章中心 > 其它

Mongodb常用的身份验证方式

作者:小编 更新时间:2023-09-06 23:38:22 浏览量:337人看过

对于 Mongodb 常用的身份验证方式,主要有以下两种:

1. SCRAM-SHA

配置 SCRAM-SHA-256 验证

①启用身份验证功能

在启动 MongoDB 时,需使用 --auth 参数启用身份验证功能.

Mongodb常用的身份验证方式-图1

> use admin
> db.createUser(
...   {
...     user: "admin",
...     pwd: "123456",
...     roles: [ { role: "root", db: "admin" } ]
...   }
... )

> use test
> db.createUser(
...   {
...     user: "user1",
...     pwd: "123456",
...     roles: [ { role: "readWriteAnyDatabase", db: "admin" } ]
...   }
... )

SCRAM-SHA-1 验证配置方法与 SCRAM-SHA-256 类似,在此不再赘述.

2. X.509

配置 X.509 验证

①生成或获取证书

首先需要获取或生成证书,可以使用自签名证书或颁发机构(CA)证书.

在启动 MongoDB 时,使用 --auth --sslMode requireSSL --sslPEMKeyFile --sslCAFile 参数启用身份验证并启用 SSL/TLS 加密.

> use admin
> db.runCommand({
...  createUser: "CN=myClient,OU=client",
...  roles: [
...    {role: "readWrite", db: "myDatabase"}
...  ],
...  userSource: "$external"
... })

此示例中,CN=myClient,OU=client 为证书的公用名称(Common Name,CN)和组织单位(Organizational Unit,OU).需要根据实际证书信息进行替换.

net:
  # ...

  ssl:
CAFile: /etc/ssl/rootCA.pem

示例

使用 openssl 命令生成自签名证书

$ openssl req -newkey rsa:2048 -nodes -keyout mongodb.key -x509 -days 365 -out mongodb.crt

将证书拼接成 pem 格式

$ cat mongodb.crt mongodb.key > mongodb.pem

启动 MongoDB 并启用身份验证与 SSL/TLS 加密

$ mongod --auth --sslMode requireSSL --sslPEMKeyFile /path/to/mongodb.pem --sslCAFile /path/to/rootCA.pem

创建用户并授予角色

> use admin
> db.runCommand({
...    createUser: "CN=myClient,OU=client",
...    roles: [
...        {role: "readWrite", db: "test"}
...    ],
...    userSource: "$external"
...})

使用证书连接 MongoDB 实例

$ mongo --ssl --sslPEMKeyFile /path/to/mongodb.pem --host localhost --username 'CN=myClient,OU=client' --authenticationMechanism MONGODB-X509

以上就是土嘎嘎小编为大家整理的Mongodb常用的身份验证方式相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!

版权声明:倡导尊重与保护知识产权。未经许可,任何人不得复制、转载、或以其他方式使用本站《原创》内容,违者将追究其法律责任。本站文章内容,部分图片来源于网络,如有侵权,请联系我们修改或者删除处理。

编辑推荐

热门文章