在Azure中安全存储oAuth令牌

时间:2019-10-19 00:46:38

标签: azure security azure-sql-database azure-keyvault always-encrypted

我正在建立一项服务,允许用户使用其他身份提供程序。用户向提供商进行身份验证后,我需要存储令牌,以便我可以代表他们拨打电话。

我的问题是关于将此令牌安全地存储在Azure中。

我认为最好的候选人是:

  1. 在具有始终加密的Azure SQL中存储令牌。存储加密密钥 在Azure密钥保管库中。
  2. 在秘密下将令牌存储在Azure Key Vault中。

我是否忘记了其他可安全存储令牌的选项?关于哪种方法更好的任何建议?

3 个答案:

答案 0 :(得分:2)

您可以通过将令牌直接作为秘密存储在Key Vault中来减少攻击面。

您可能还具有其他访问SQL实例的应用程序,这些应用程序不需要访问Key Vault,因此与您的SQL Server相比,Key Vault网络访问可能被更严格地锁定。

答案 1 :(得分:2)

Azure SQL信息保护如何处理?可从Azure门户进行管理,并且具有很大的灵活性。您甚至可以监视表并为表赋予特定权限: https://azure.microsoft.com/nl-nl/blog/information-security-policy-in-asc/

但是对于您的情况,我认为使用密钥库是最佳选择,因为它是为此目的而构建的。

答案 2 :(得分:1)

有必要牢记KeyVault的服务限制:

  

秘密,托管存储帐户密钥和保管库交易记录:2,000   每个保管库每个区域在10秒内允许的最大交易次数

所有交易类型的整个订阅范围的限制是每个密钥库限制的五倍。例如,每个订阅的HSM其他事务限制为每个订阅10秒内进行5,000个事务。

详细信息可以在这里找到:Azure Key Vault service limits

根据您的可扩展性目标,您可能还希望考虑Cosmos DB:

Cosmos DB并不便宜,但是它具有很好的可扩展性,并且支持静态加密。

  

静态加密是一个通常指加密的短语   非易失性存储设备(例如固态驱动器)上的数据存储   (SSD)和硬盘驱动器(HDD)。 Cosmos DB存储其主要   SSD上的数据库。其媒体附件和备份存储在   Azure Blob存储,通常由HDD备份。随着   Cosmos DB,所有数据库和媒体的静态加密发布   附件和备份已加密。您的数据现已加密   传输(通过网络)和静止(非易失性存储),   端到端加密。

     

作为PaaS服务,Cosmos DB非常易于使用。因为所有用户   存储在Cosmos DB中的数据在静止和运输时均已加密,您   不必采取任何行动。另一种表达方式是   默认情况下,静态加密为“ on”。没有可转的控件   它关闭或打开。 Azure Cosmos DB在所有区域上均使用AES-256加密   帐户运行的地方。我们在提供此功能的同时   继续遇到我们的availability and performance SLAs

https://docs.microsoft.com/en-us/azure/cosmos-db/database-encryption-at-rest