我最近开始研究使用带有公共/私有证书的客户端凭据授予对Azure活跃目录进行身份验证,详情如下:https://docs.microsoft.com/en-gb/azure/active-directory/develop/v1-oauth2-client-creds-grant-flow
我正在azure托管平台等外部运行外部PHP / LEMP服务器。
我设法成功连接到Azure广告,如下所示:
更多的问题是我们如何进行凭证存储,这样我才能真正进行授权。具有讽刺意味的是,我需要存储这些凭据,以便可以访问在密钥库中安全存储的凭据!因此,我只是想知道是否有人对存储以下内容有任何建议:
在站点数据库中将这些值存储为纯文本格式是否安全? 您会推荐环境变量吗?只是想知道人们对此采取什么方法。
非常感谢!
答案 0 :(得分:0)
我建议您将这些变量存储在Key Vault中,这是最安全的选择。但是,显然,您需要密钥才能访问Key Vault。
如果您在Azure中运行Web应用程序,那么这将很容易。您可以使用托管身份为您的Web应用赋予一个身份,并授予此访问KV权限。当您在Azure之外运行时,下一个最佳方法是生成使用证书进行身份验证的服务主体,向该服务主体授予对密钥保险库的访问权限,然后将私钥存储在您的Web服务器上并将其用于身份验证。有关创建服务主体的详细信息,请参见here。