Overview
了解要使用客户端字段级加密 (CSFLE) 必须安装的应用程序和库。
您需要什么
在使用 CSFLE 之前,您必须在开发环境中设置以下项目:
(可选)下载自动加密共享库。 自动加密共享库是mongocryptd的首选替代方案,并且不需要生成新进程。 仍支持
mongocryptd
。
确保您使用的是 x64 操作系统。CSFLE 需要 x64支持。
如果您使用的是驾驶员版本 3.0 或更高版本,则还必须完成以下步骤:
安装MongoDB。来自 NuGet 的驱动程序.Encryption 包。该包支持自动加密。
如果您的应用程序在Linux上运行,请手动安装libmongocrypt。然后,将
LIBMONGOCRYPT_PATH
环境变量设立为libmongocrypt
文件的绝对路径。如果您的应用程序在 64 位Linux上运行,并且您使用的是 3.4.3 或更早版本的驾驶员程序,请将以下几行 XML 添加到
.csproj
文件中。更改<MongoDriverEncryptionVersion>
元素的值以匹配您已安装的MongoDB.Driver.Encryption
包的版本。
<PropertyGroup> <!-- replace the version here with your package version --> <MongoDriverEncryptionVersion>3.4.2</MongoDriverEncryptionVersion> <MongoDriverEncryptionPath>$(NuGetPackageRoot)mongodb.driver.encryption\$(MongoDriverEncryptionVersion)</MongoDriverEncryptionPath> </PropertyGroup> <PropertyGroup> <!-- Suppresses the duplicate file error --> <ErrorOnDuplicatePublishOutputFiles>false</ErrorOnDuplicatePublishOutputFiles> </PropertyGroup> <!-- Ensures the correct library after build or publish --> <Target Name="EnsureCorrectMongoEncryption" AfterTargets="Build;Publish" Condition="'$(RuntimeIdentifier)' != ''"> <!-- Determine paths based on current operation --> <PropertyGroup> <_TargetDir Condition="Exists('$(PublishDir)')">$(PublishDir)</_TargetDir> <_TargetDir Condition="'$(_TargetDir)' == ''">$(OutputPath)</_TargetDir> </PropertyGroup> <!-- Copy the correct library based on runtime identifier (RID) --> <ItemGroup> <_CorrectMongoLib Include="$(MongoDriverEncryptionPath)/runtimes/linux/native/x64/libmongocrypt.so" Condition="'$(RuntimeIdentifier)' == 'linux-x64'" /> <_CorrectMongoLib Include="$(MongoDriverEncryptionPath)/runtimes/linux/native/arm64/libmongocrypt.so" Condition="'$(RuntimeIdentifier)' == 'linux-arm64'" /> <_CorrectMongoLib Include="$(MongoDriverEncryptionPath)/runtimes/linux/native/alpine/libmongocrypt.so" Condition="'$(RuntimeIdentifier)' == 'linux-musl-arm64'" /> </ItemGroup> <!-- Copy with overwrite --> <Copy SourceFiles="@(_CorrectMongoLib)" DestinationFolder="$(_TargetDir)" Condition="'@(_CorrectMongoLib)' != ''" OverwriteReadOnlyFiles="true" /> <Message Text="Fixed MongoDB encryption library for $(RuntimeIdentifier)" Condition="'@(_CorrectMongoLib)' != ''" /> </Target>
(可选)下载自动加密共享库。 自动加密共享库是mongocryptd的首选替代方案,并且不需要生成新进程。 仍支持
mongocryptd
。
安装 libmongocrypt 。
libmongocrypt
库包含用于与管理加密的原生库进行通信的绑定。
(可选)下载自动加密共享库。 自动加密共享库是mongocryptd的首选替代方案,并且不需要生成新进程。 仍支持
mongocryptd
。
安装 mongodb-crypt。
mongodb-crypt
库包含用于与管理加密的原生库进行通信的绑定。
(可选)下载自动加密共享库。 自动加密共享库是mongocryptd的首选替代方案,并且不需要生成新进程。 仍支持
mongocryptd
。
安装 mongodb-client-encryption,它是
libmongocrypt
加密库的 Node.js 包装器。libmongocrypt
库包含用于与管理加密的原生库通信的绑定。
使用 Node.js 驱动程序版本6.0.0
或更高版本时, mongodb-client-encryption
必须与驱动程序具有相同的主版本号。
示例,Node.js驾驶员v 6 .xx 需要mongodb-client-encryption
v 6 .xx
(可选)下载自动加密共享库。 自动加密共享库是mongocryptd的首选替代方案,并且不需要生成新进程。 仍支持
mongocryptd
。
安装 pymongocrypt,它是
libmongocrypt
加密库的Python包装器。libmongocrypt
库包含用于与管理加密的原生库通信的绑定。
了解详情
要开始使用 CSFLE,请参阅 CSFLE 快速入门。
要学习;了解如何将 CSFLE 与远程密钥管理系统提供商结合使用,请参阅 CSFLE 教程。