【问题标题】:How to encrypt a Class property using Mongodb CSFLE in dot net core如何在点网核心中使用 Mongodb CSFLE 加密类属性
【发布时间】: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


    【解决方案1】:

    不,不可能,json schema应该在你创建mongo客户端的时候提供

    【讨论】:

    • 谢谢。我通过传递架构并引用适当的集合,让它在我现有的类上工作。现在就可以了。 ``` var autoEncryptionSettings = new AutoEncryptionOptions(keyVaultNamespace, kmsProviders, schemaMap: new Dictionary() { { testCollection.ToString(), schemaMap } });```
    猜你喜欢
    • 2012-03-02
    • 1970-01-01
    • 2014-04-20
    • 2018-04-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-03
    相关资源
    最近更新 更多