【发布时间】:2021-10-10 00:58:51
【问题描述】:
我正在尝试将 Mongodb 客户端字段级加密 (CSFLE) 与 Dot net core (v5.0) 一起使用。
我根据文档使用 Json Schema 映射来工作,它使用 BSONDocument 类型,我可以定义要加密的每个字段(已遵循本指南 https://www.mongodb.com/developer/how-to/client-side-field-level-encryption-mongodb-csharp/)
我现在需要将此应用到我的 C# 类模型上的各个属性。 我可以使用注释或以某种方式告诉 MongoDb 驱动程序将我的类属性序列化为 BsonDocument 架构中所需的二进制类型吗?
这行得通:
var schemaMap = $@"{{
properties: {{
SSN: {{
encrypt: {{
keyId: [{{
'$binary' : {{
'base64' : '{base64DataKeyId}',
'subType' : '04'
}}
}}],
bsonType: 'string',
algorithm: 'AEAD_AES_256_CBC_HMAC_SHA_512-Deterministic'
}}
}}
}},
'bsonType': 'object'
}}";
var autoEncryptionSettings = new AutoEncryptionOptions(
keyVaultNamespace,
kmsProviders,
schemaMap: new Dictionary<string, BsonDocument>()
{
{ collectionNamespace.ToString(), BsonDocument.Parse(schemaMap) }
});
我需要以某种方式将其应用于这样的 C# 类模型:
public class TestModel
{
[MongoEncrypted?]
public string SSN { get; set; }
}
我使用基本的存储库模式,目前像这样将我的 Class 模型传递给 Mongo 驱动程序
_mongoCollection = _mongoContext.GetCollection<TEntity>(collectionName);
如何告诉 Mongodb 驱动程序将 Json Schema 应用于我现有的类属性? 这可能吗?
谢谢。
【问题讨论】:
标签: c# mongodb encryption mongodb-.net-driver