文档菜单
文档首页
/ / /
PHP 库手册

保护您的数据

在本页

  • 概述
  • 示例应用程序
  • SCRAM-SHA-256
  • SCRAM-SHA-1
  • MONGODB X.509
  • MONGODB-AWS
  • MongoDB.Client 凭据
  • 外部凭据

MongoDB 支持多种机制来验证您的应用程序。本页包含示例代码,展示了每种机制的使用方法。

提示

要了解更多关于本页上显示的任何机制的信息,请参阅每个部分中提供的链接。

要从本页复制认证示例,请将代码示例复制到示例应用程序或您自己的应用程序中。请确保将代码示例中的所有占位符,例如<hostname>,替换为您 MongoDB 部署的相关值。

您可以使用以下示例应用程序测试本页上的代码示例。要使用示例应用程序,请执行以下步骤

  1. 确保您已在项目中安装 MongoDB PHP 库。有关安装 MongoDB PHP 库的更多信息,请参阅下载和安装指南。

  2. 复制以下代码并将其粘贴到一个新的 .php 文件中。

  3. 从本页复制一个代码示例并将其粘贴到文件中指定的行。

1<?php
2
3require __DIR__ . '/../vendor/autoload.php';
4
5// Start example code here
6
7// End example code here
8
9try {
10 $client->test->command(['ping' => 1]);
11 echo 'Successfully pinged the MongoDB server.', PHP_EOL;
12} catch (MongoDB\Driver\Exception\RuntimeException $e) {
13 printf("Failed to ping the MongoDB server: %s\n", $e->getMessage());
14}

以下代码示例展示了如何使用SCRAM-SHA-256认证机制进行认证

$uriOptions = [
'username' => '<username>',
'password' => '<password>',
'authSource' => '<authentication database>',
'authMechanism' => 'SCRAM-SHA-256',
];
$client = new MongoDB\Client(
'mongodb://<hostname>:<port>',
$uriOptions,
);
$uri = 'mongodb://<username>:<password>@<hostname>:<port>/?authSource=admin&authMechanism=SCRAM-SHA-256';
$client = new MongoDB\Client($uri);

要了解更多关于SCRAM-SHA-256认证的信息,请参阅认证指南中的SCRAM-SHA-256

以下代码示例展示了如何使用SCRAM-SHA-1认证机制进行认证

$uriOptions = [
'username' => '<username>',
'password' => '<password>',
'authSource' => '<authentication database>',
'authMechanism' => 'SCRAM-SHA-1',
];
$client = new MongoDB\Client(
'mongodb://<hostname>:<port>',
$uriOptions,
);
$uri = 'mongodb://<username>:<password>@<hostname>:<port>/?authSource=admin&authMechanism=SCRAM-SHA-1';
$client = new MongoDB\Client($uri);

要了解更多关于SCRAM-SHA-1认证的信息,请参阅认证指南中的SCRAM-SHA-1

以下代码示例展示了如何创建连接URI以使用X.509认证机制进行认证

$uriOptions = [
'tls' => true,
'tlsCertificateKeyFile' => '<file path>',
'authMechanism' => 'MONGODB-X509',
];
$client = new MongoDB\Client(
'mongodb://<hostname>:<port>',
$uriOptions,
);
$uri = 'mongodb://<hostname>:<port>/?tls=true&tlsCertificateKeyFile=<file path>&authMechanism=MONGODB-X509';
$client = new MongoDB\Client($uri);

要了解更多关于X.509认证的信息,请参阅认证指南中的MONGODB-X509

以下部分展示了如何使用MONGODB-AWS认证机制连接到MongoDB。当使用MONGODB-AWS机制时,MongoDB PHP库将按以下顺序尝试从以下来源检索您的AWS凭据:

  1. 传递给 MongoDB\Client 构造函数的选项,可以是连接字符串的一部分,或者 $uriOptions 数组参数的一部分

  2. 环境变量

  3. AWS EKS AssumeRoleWithWebIdentity 请求

  4. ECS 容器元数据

  5. EC2 实例元数据

每个部分都展示了如何在使用从客户端传递的选项或替代外部来源检索 AWS 凭证时使用 MONGODB-AWS 进行身份验证。

要了解更多关于使用 AWS 进行身份验证的信息,请参阅认证指南中的 MONGODB-AWS

以下代码演示了如何将 AWS 凭证传递给 MongoDB\Client 构造函数以使用 MONGODB-AWS 进行身份验证

$uriOptions = [
'username' => '<AWS IAM access key ID>',
'password' => '<AWS IAM secret access key>',
'authMechanism' => 'MONGODB-AWS',
];
$client = new MongoDB\Client(
'mongodb://<hostname>:<port>',
$uriOptions,
);
$uri = 'mongodb://<AWS IAM access key ID>:<AWS IAM secret access key>@<hostname>:<port>/?authMechanism=MONGODB-AWS';
$client = new MongoDB\Client($uri);

要了解更多关于通过检索 MongoDB\Client 凭证使用 AWS 进行身份验证的信息,请参阅认证指南中的 MongoDB\Client Credentials

以下代码演示了如何从环境变量、AssumeRoleWithWebIdentity 请求、ECS 元数据或 EC2 实例元数据中获取凭证时使用 MONGODB-AWS 进行身份验证。

$client = new MongoDB\Client(
'mongodb://<hostname>:<port>',
['authMechanism' => 'MONGODB-AWS']
);
$uri = 'mongodb://<hostname>:<port>/?authMechanism=MONGODB-AWS';
$client = new MongoDB\Client($uri);

要了解更多关于通过获取外部凭证使用 AWS 进行身份验证的信息,请参阅认证指南中的以下部分

返回

集群监控