通常,当您使用密钥保管库加密和解密数据时,您必须保留AD注册应用程序(具有访问密钥保管库的权限)ClientID和ClientSecret以纯文本形式存在.这似乎是一个安全问题,如果有人窃取了ClientID和Secret,任何人都可以声称他们是注册的应用程序.
是否存在更安全的方法?
最佳答案 您可以使用证书进行身份验证而不是秘密.
这种方法需要做三件事:
>创建要使用的证书.
>在创建将用于访问密钥保管库的Active Directory应用程序时,您需要传入在步骤1中创建的证书.我认为您不能通过门户网站立即执行此操作,因此您将需要使用New-AzureRMADApplication PowerShell命令.
>在向Key Vault进行身份验证时使用该证书.您需要使用接收ClientAssertionCertificate的overload of the AuthenticationContext.AcquireTokenAsync()方法来执行此操作.您可以通过简单地传递客户端ID和X509Certificate2来进行create a ClientAssertionCertificate.
从this博客文章中,您可以获得前两个步骤的一些代码.