使用客户端机密的应用程序可能会将它们存储在配置文件中,在脚本中对其进行硬编码,或者以其他方式风险暴露它们。 机密管理的复杂性使得秘密容易泄露,并成为攻击者的目标。 在公开客户端机密时,向攻击者提供合法凭据,以将其活动与合法操作混合,从而更轻松地绕过安全控制。 如果攻击者入侵应用程序的客户端密码,他们可以在系统中升级其特权,从而导致更广泛的访问和控制,具体取决于应用程序的权限。 替换已泄露的证书可能非常耗时且具有破坏性。 出于这些原因,Microsoft建议所有客户都从基于密码或基于证书的身份验证转移到基于令牌的身份验证。
本文重点介绍资源和最佳做法,帮助你将应用程序从基于机密的身份验证迁移到更安全且用户友好的身份验证方法。
为什么要将应用程序迁移出基于机密的身份验证?
将应用程序从基于机密的身份验证迁移可提供以下几个优势:
改进了安全性:基于机密的身份验证容易受到泄漏和攻击的影响。 迁移到更安全的身份验证方法(例如托管标识)可提高安全性。
降低复杂性:管理机密可能复杂且容易出错。 迁移到更安全的身份验证方法可降低复杂性并提高安全性。
可伸缩性:迁移到更安全的身份验证方法有助于安全地缩放应用程序。
符合性:迁移到更安全的身份验证方法有助于满足合规性要求和安全最佳做法。
将应用程序从基于机密的身份验证迁移的最佳做法
若要将应用程序从基于机密的身份验证迁移,请考虑以下最佳做法:
对 Azure 资源使用托管标识
托管标识是一种安全的方式,它无需管理凭据或在代码中存放凭据,就能对应用程序进行云服务身份验证。 Azure 服务使用此标识向支持 Microsoft Entra 身份验证的服务进行身份验证。 若要了解详细信息,请参阅 为应用程序角色分配托管标识访问权限。
对于短期内无法迁移的应用程序,请轮换机密并确保它们使用安全的做法,例如使用 Azure Key Vault。 Azure Key Vault 可帮助保护云应用程序和服务使用的加密密钥和机密。 密钥、机密和证书受到保护,无需自行编写代码,并且可以轻松地从应用程序使用它们。 若要了解详细信息,请参阅 Azure Key Vault。
部署用于工作负载标识的条件访问策略
使用工作负载标识的条件访问,可以根据Microsoft Entra Protection 检测到的风险或与身份验证上下文结合使用,阻止来自已知公共 IP 范围之外的服务主体。 若要了解详细信息,请参阅用于工作负载标识的条件访问。
重要
要创建或修改范围限定为服务主体的条件访问策略,则需要工作负载标识高级许可证。 在没有适当许可证的目录中,工作负载标识的现有条件访问策略继续正常运行,但无法修改。 有关详细信息,请参阅 Microsoft Entra 工作负载 ID。
实现机密扫描
存储库的机密扫描会检查历史记录中可能已经存在的任何机密,推送保护可防止源代码中公开任何新机密。 若要了解详细信息,请参阅 机密扫描。
部署应用程序身份验证策略以强制实施安全身份验证做法
应用程序管理策略允许 IT 管理员强制实施有关如何配置组织中应用的最佳做法。 例如,管理员可以配置策略来阻止使用或限制密码机密的生存期。 若要了解详细信息,请参阅教程:使用应用程序管理策略和Microsoft Entra 应用程序管理策略 API 概述强制实施机密和证书标准。
重要
实施应用程序身份验证策略管理需要高级许可证,有关详细信息,请参阅 Microsoft Entra 许可。
对服务帐户使用联合标识
通过标识联合,您可以通过配置联合标识凭据,建立外部标识提供者(IdP)与Microsoft Entra ID中的应用之间的信任关系,从而访问Microsoft Entra 保护的资源,而不需要管理机密信息(适用于受支持的场景)。 若要了解详细信息,请参阅 Microsoft Entra ID中的联合标识凭据概述。
创建最低特权自定义角色以轮换应用程序凭据
Microsoft Entra 角色允许你向管理员授予精细权限,并遵守最低特权原则。 可以创建自定义角色来轮换应用程序凭据,确保仅授予完成任务所需的权限。 若需了解更多信息,请参阅 在 Microsoft Entra ID 中创建自定义角色。
确保有一个对应用程序进行会审和监视的过程
此过程应包括定期安全评估、漏洞扫描和事件响应过程。 了解应用程序的安全状况对于维护安全环境至关重要。