通过


在没有用户的情况下提供应用程序标识凭据

当你作为开发人员生成非用户应用程序时,你没有可以提示你输入用户名和密码或多重身份验证(MFA)的用户。 需要自行提供应用程序的标识。 本文介绍为什么 Azure 上服务(非用户应用程序)的最佳零信任客户端凭据做法是 Azure 资源的托管标识

服务帐户相关问题

使用 服务帐户 (对服务使用用户帐户)并不是一个很好的解决方案。 Microsoft Entra ID 没有服务帐户概念。 当管理员为服务创建用户帐户,然后与开发人员共享密码时,它不安全。 它不能是无密码的,也不能具有 MFA。 最佳解决方案是使用以下客户端凭据选项之一,而不是使用用户帐户作为服务帐户。

客户端凭据选项

有四种类型的客户端凭据可以标识应用程序。

密钥或证书?

机密密钥在复杂的机密管理基础结构(如 Azure Key Vault)中是可接受的。 但是,在 IT 专业人员生成密钥并将其通过电子邮件发送到开发人员的情况下,无法正确保护机密密钥。

基于证书的客户端凭据比密钥更安全。 可以更好地管理证书,因为它们本身不是机密。 机密不是传输的一部分。 使用密钥时,客户端会将密钥的实际值发送到 Microsoft Entra ID。 使用证书时,证书的私钥永远不会离开设备。 即使有人截获、解码和取消加密传输,机密仍然安全,因为拦截方没有私钥。

最佳做法:对 Azure 资源使用托管标识

当您在 Azure 中开发服务(非用户应用程序)时,Azure 资源的托管标识在 Microsoft Entra ID 中拥有自动管理的标识。 应用可以向任何支持Microsoft Entra 身份验证的服务进行身份验证,而无需管理凭据。 无需管理机密。 无需解决丢失或处理不当的可能性。 不良参与者无法截获不跨网络移动的机密。 在 Azure 上构建服务时,Azure 资源的托管标识是一种最佳实践。

后续步骤