好吧,所以我有一个Web API,可用于与SQL Azure数据库进行对话并在此处遵循本教程:https://docs.microsoft.com/en-us/azure/sql-database/sql-database-security-tutorial
我进入了我已经知道如何复制Azure连接字符串的部分,并且有类似这样的内容(ADO.NET):
Server=tcp:{myDatabase}.database.windows.net,1433;Initial Catalog=Expenses;Persist Security Info=False;User ID={your_username};Password={your_password};MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;
我知道我必须提供我的凭据,并且可以将其放入并获得API的正常运行。我的问题是,如果将其保存到GitHub或在源代码管理下,如何保护该字符串?过去,使用.NET时,我使用受保护的配置执行了一种方法,如下所示: https://docs.microsoft.com/en-us/dotnet/framework/data/adonet/connection-strings-and-configuration-files
基本上是这样的:
<connectionStrings configProtectionProvider="DataProtectionConfigurationProvider">
<EncryptedData>
<CipherData>
<CipherValue>{long ciphered value}</CipherValue>
</CipherData>
</EncryptedData>
</connectionStrings>
我正在尝试从以下类似文章中扩展服务:Encrypted Configuration in ASP.NET Core
但是我正在使用Azure,但我知道将Azure混合到混合中也可以使您完成其他工作。使用Azure数据库的人员是否有关于如何保护其连接字符串或至少一个使我入门的链接的建议?
答案 0 :(得分:2)
我猜您正在使用Azure Sql身份验证(需要用户名和密码)或带有密码的Azure集成安全性,这就是为什么您担心保护凭据的原因。
如果有一个选项,我建议您使用Azure集成安全性(等同于Windows集成安全性),这样可以避免在连接字符串中公开用户/服务主体凭据。它只需要在Azure活动目录中使用该帐户即可。
如果不能考虑这样做,我们可以寻找将连接字符串存储在Azure Key Vault中并动态检索以建立数据库连接的方法。
答案 1 :(得分:0)