在生产中存储DocumentDB Endpoint和Key的位置

时间:2017-11-24 09:34:52

标签: azure xamarin azure-cosmosdb

我有一个.Net Core网站和Xamarin应用程序与Documentdb交谈,我们正准备投入生产。

我在DocumentDB / CosmosDB上看到的所有文档都在C#类中硬拷贝了Key和Endpoint。示例:https://docs.microsoft.com/en-us/azure/cosmos-db/tutorial-develop-documentdb-dotnethttp://www.dotnetcurry.com/windows-azure/1395/cosmosdb-webapi-angular-client,列出一些(!),而DocumentDB中的Azure安全性似乎无法解决或提及此问题。

有没有办法在客户端应用中安全地存储DocuementDB EndPoint和Key? 谢谢。

2 个答案:

答案 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");