针对 Azure 资源使用托管标识进行的保管库身份验证
Azure Key Vault 使用 Microsoft Entra ID 对尝试访问保管库的用户和应用进行身份验证。 若要授予 Web 应用访问保管库的权限,首先需要使用 Microsoft Entra ID 注册应用。 注册将为应用创建标识。 应用拥有标识后,你便可以向应用分配保管库权限。
Key Vault 使用 Microsoft Entra 身份验证令牌对应用和用户进行身份验证。 从 Microsoft Entra ID 获取令牌需要机密或证书。 具有令牌的任何人都可以使用应用标识访问保管库中的所有机密。
虽然应用机密在保管库中较为安全,但你仍需在保管库外部保存机密或证书才能对其进行访问! 此问题称为“启动问题”,Azure 为此提供了一种解决方案。
Azure 资源的托管标识
Azure 资源的托管标识是一项 Azure 功能,应用可使用此功能访问 Key Vault 和其他 Azure 服务,而无需在保管库之外管理任何机密。 使用托管标识是一种通过 Web 应用利用 Key Vault 的简单、安全方法。
在 Web 应用上启用托管标识时,Azure 会激活专门用于应用的、单独的令牌授予 REST 服务。 应用从此服务请求令牌,而不是直接从 Microsoft Entra ID 请求令牌。 应用需要使用机密才能访问此服务,但应用服务在启动时会将该机密注入应用的环境变量中。 你无需在任何位置管理或存储此机密值,并且应用外部的任何对象都无法访问此机密或托管标识令牌服务终结点。
Azure 资源的托管标识还会在 Microsoft Entra ID 中为你注册应用。 如果你删除 Web 应用或禁用其托管标识,Microsoft Entra ID 会删除注册。
托管标识在任何版本的 Microsoft Entra ID 中都可用,包括 Azure 订阅中包含的免费版。 在应用服务中使用托管标识不会产生额外费用且无需任何配置,并且可以随时在应用中启用或禁用它。
为 Web 应用启用托管标识仅需要单个 Azure CLI 命令,而无需任何配置。 在稍后设置应用服务应用并将其部署到 Azure 时,你将进行此操作。 不过,在此之前,请运用托管标识的知识来为应用编写代码。