我有一个.Net Core网站和Xamarin应用程序与Documentdb交谈,我们正准备投入生产。
我在DocumentDB / CosmosDB上看到的所有文档都在C#类中硬拷贝了Key和Endpoint。示例:https://docs.microsoft.com/en-us/azure/cosmos-db/tutorial-develop-documentdb-dotnet,http://www.dotnetcurry.com/windows-azure/1395/cosmosdb-webapi-angular-client,列出一些(!),而DocumentDB中的Azure安全性似乎无法解决或提及此问题。
有没有办法在客户端应用中安全地存储DocuementDB EndPoint和Key? 谢谢。
答案 0 :(得分:2)
您永远不应该在应用程序中使用密钥。 Azure Key Vault解决了这个问题。
请检查
https://sarosh.wordpress.com/2017/11/23/cosmos-db-and-key-vault/
HTH
答案 1 :(得分:0)
<强> KeyChain.Net 强>
一个简单统一的API,使开发人员能够在keyChain上设置,更新,获取和删除密钥和密码(支持iOS,Android和WinPhone)
https://github.com/has-taiar/KeyChain.Net
<强>的iOS 强>
var helper = new KeyChain.Net.XamarinIOS.KeyChainHelper();
var isSaved = helper.SetKey("myKey", "myKeyValue");
var keyValue = helper.GetKey("myKey");
var isDeleted = helper.DeleteKey("myKey");
<强>的Android 强>
var helper = new KeyChain.Net.XamarinAndroid.KeyChainHelper(myActivity, "myKeyProtectionPassword");
var isSaved = helper.SetKey("myKey", "myKeyValue");
var keyValue = helper.GetKey("myKey");
var isDeleted = helper.DeleteKey("myKey");
Windows Phone
var helper = new KeyChain.Net.XamarinWinRT.KeyChainHelper();
var isSaved = helper.SetKey("myKey", "myKeyValue");
var keyValue = helper.GetKey("myKey");
var isDeleted = helper.DeleteKey("myKey");