php - 在应用程序 Web 服务器上安全存储租户/客户端 ID
问题描述
我最近开始研究使用带有公共/私有证书的客户端凭据授予对 Azure Active Directory 进行身份验证,详情如下:https ://docs.microsoft.com/en-gb/azure/active-directory/develop/v1-oauth2-client -信用授权流
我在天蓝色托管平台等之外运行外部 PHP/LEMP 服务器等。
我已成功连接到 azure ad,如下所示:
问题更多的是我们如何进行凭证存储,以便我可以实际进行授权。具有讽刺意味的是,我需要存储这些凭据,以便可以访问安全存储在密钥库中的凭据!所以我只是想知道是否有人对存储有任何建议:
- 租户 ID
- 客户编号
- Scope Uri(我想我应该包括这个,因为它是一个 id/guid)
将这些值作为纯文本存储在站点数据库中是否安全?你会推荐环境变量吗?只是想知道人们对此的态度是什么。
非常感谢!
解决方案
我建议您将这些变量存储在 Key Vault 中,这是最安全的选择。但是,显然您需要密钥才能访问 Key Vault。
如果您在 Azure 中运行 Web 应用程序,那么这将很容易。您可以使用托管标识为您的 Web 应用程序提供一个标识,并授予此对 KV 的访问权限,完成。当您在 Azure 之外运行时,下一个最佳方法是生成一个使用证书进行身份验证的服务主体,授予此服务主体访问密钥保管库的权限,然后将私钥存储在您的 Web 服务器上并使用它进行身份验证。有关创建服务主体的详细信息,请参阅此处。
推荐阅读
- common-lisp - Readtable 与 cl-annot (cl-syntax, jonathan) 和 pythonic-string-reader 冲突
- callback - 散景 - 如何使用 JS 回调更改 varea_stack 的填充颜色
- python - 在二叉搜索树算法中存在递归问题
- python - 在 discord.py 中添加一个开机定时器
- apache-kafka - Kafka / Mock 主题,方便消费者开发
- c# - 通用类的自动注册
- c++ - 使用公共函数作为排序标准,C++;
- typescript - 打字稿:字符串 | 字符串[] 到字符串[]
- keras - 当 model.fit() 而不是与 epochs/iterations 相关的详细信息时,数字会被打印出来——tf.keras
- python - 具有移动平均线的多个 GROUPBY(多个条件)