Docs 菜单
Docs 主页
/ / /
PHP 库手册

保护您的数据

在此页面上

  • Overview
  • 示例应用程序
  • SCRAM-SHA-256
  • SCRAM-SHA-1
  • MONGODB X.509
  • MONGODB-AWS
  • MongoDB\Client Credentials
  • 外部档案

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-X 509

以下部分介绍如何使用MONGODB-AWS身份验证机制连接到MongoDB 。当您使用MONGODB-AWS机制时, MongoDB PHP库会尝试按列出的顺序从以下来源检索您的凭证档案:

  1. 传递给MongoDB\Client构造函数的选项,可以作为连接字符串的一部分,也可以作为$uriOptions大量参数

  2. 环境变量

  3. AWS EKS AssumeRoleWithWebIdentity请求

  4. ECS容器元数据

  5. EC 2实例元数据

每节介绍从传递给客户端或备用外部源的选项检索 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 档案

以下代码展示了从环境变量、 AssumeRoleWithWebIdentity请求、ECS元数据或 EC 2实例元数据获取档案时如何使用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 进行凭证验证的更多信息,请参阅身份验证指南中的以下部分:

后退

集群监控