保护您的数据
概述
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-X509。
MONGODB-AWS
以下部分展示了如何使用MONGODB-AWS
认证机制连接到MongoDB。当使用MONGODB-AWS
机制时,MongoDB PHP库将按以下顺序尝试从以下来源检索您的AWS凭据:
传递给
MongoDB\Client
构造函数的选项,可以是连接字符串的一部分,或者$uriOptions
数组参数的一部分环境变量
AWS EKS
AssumeRoleWithWebIdentity
请求ECS 容器元数据
EC2 实例元数据
每个部分都展示了如何在使用从客户端传递的选项或替代外部来源检索 AWS 凭证时使用 MONGODB-AWS
进行身份验证。
要了解更多关于使用 AWS 进行身份验证的信息,请参阅认证指南中的 MONGODB-AWS。
MongoDB.Client 凭证
以下代码演示了如何将 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 进行身份验证的信息,请参阅认证指南中的以下部分