保护您的数据
Overview
MongoDB支持多种可用于对应用程序进行身份验证的机制。 本页包含演示每种机制的代码示例。
提示
要学习;了解有关此页面上显示的任何机制的更多信息,请参阅每个部分中提供的链接。
要使用此页面中的身份验证示例,请将代码示例复制到示例应用程序或您自己的应用程序中。 确保将代码示例中的所有占位符(例如 <hostname>
)替换为MongoDB 部署的相关值。
示例应用程序
您可以使用以下示例应用程序来测试本页上的代码示例。 要使用示例应用程序,请执行以下步骤:
确保您已在项目中安装MongoDB PHP库。 要学习;了解有关安装MongoDB PHP库的更多信息,请参阅下载和安装指南。
复制以下代码并将其粘贴到新的
.php
文件中。从此页面复制代码示例,并将其粘贴到文件中的指定行。
1 2 3 require __DIR__ . '/../vendor/autoload.php'; 4 5 // Start example code here 6 7 // End example code here 8 9 try { 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
以下代码展示了如何使用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
以下代码展示了如何使用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 。
MONGODB X.509
以下代码演示如何创建连接 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-AWS
身份验证机制连接到MongoDB 。 当您使用 MONGODB-AWS
机制时, MongoDB PHP库会尝试按列出的顺序从以下源检索您的Amazon Web Services凭证:
传递给
MongoDB\Client
构造函数的选项,可以作为连接string的一部分,也可以作为$uriOptions
大量参数环境变量
Amazon Web Services EKS
AssumeRoleWithWebIdentity
请求ECS容器元数据
EC 2实例元数据
每个部分展示了在从传递给客户端或备用外部源的选项中检索Amazon Web Services档案时,如何使用 MONGODB-AWS
进行凭证验证。
要学习;了解有关使用Amazon Web Services进行身份验证的更多信息,请参阅身份验证指南中的MONGODB- Amazon Web Services 。
MongoDB\Client Credentials
以下代码展示了如何将Amazon Web Services凭证传递给 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
档案来使用Amazon Web Services进行凭证验证的更多信息,请参阅身份验证指南中的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);
要学习;了解有关通过获取外部凭证来使用Amazon Web Services进行身份验证的更多信息,请参阅身份验证指南中的以下部分: