我曾经使用过存储在 Azure Key Vault 中的 secret ,但这是第一次使用证书而不是 secret 进行身份验证。
我有一个存储在 Azure Key Vault 中的证书。我想使用此证书通过 Azure AD 应用程序进行身份验证。
据我了解,对于存储在 Azure Key Vault 中的 secret ,我们可以使用 @Microsoft.KeyVault(SecretUri='secretIdentifier') 通过应用程序设置在 Azure Function 中引用它们。
我注意到证书有三种类型的标识符: key 、 secret 和证书标识符。它们之间有什么区别以及它们各自的用途是什么?
此外,我们可以使用 @Microsoft.KeyVault(SecretUri='Certificate's Secret Identifier') 通过 secret 标识符访问证书并使用 if 进行身份验证吗?如果可以的话,这种方法有什么注意事项吗?
最后,为什么使用证书进行身份验证被认为是比使用 key 更好的方法?
到目前为止,我还没有找到一个对于以前没有使用过证书的人来说很容易理解的解释。任何建议/解释将不胜感激。
最佳答案
有关 key 、 secret 和证书之间的区别,请参阅对象类型下的 Azure Key Vault 文档:
将 Secrets 视为密码和连接字符串。 key 是可以使用各种算法生成的加密 key 。证书是具有可选策略(例如自动轮换)的 key (或 key 对)。
使用证书而不是 key 进行身份验证有一个优点。优点是证书具有私钥和公钥部分。 API 调用的接收者可以仅使用证书的公共(public)部分来验证您的身份,同时您可以安全地保护 key 保管库中的私有(private)部分。 secret 在主叫方和被叫方之间共享,并通过线路传输,因此泄露的机会更多。
关于c# - Azure Key Vault 证书证书标识符、 secret 标识符、 key 标识符之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64795535/