category
本文帮助您作为开发人员了解应用程序开发生命周期的身份和访问管理最佳实践。您开始开发具有身份和访问管理(IAM)的安全、零信任合规的应用程序。
零信任安全框架使用显式验证、最低权限访问和假设违规的原则。保护用户和数据,同时允许从网络外围访问应用程序等常见场景。减少对安全网络边界后面的交互的隐式信任的依赖,这些交互可能容易受到安全攻击。
行业安全趋势影响应用程序需求
虽然零信任实施仍在不断发展,但每个组织的旅程都是独一无二的,通常从用户和应用程序身份开始。以下是许多组织在推出零信任时优先考虑的政策和控制措施:
- 为应用程序和服务实施凭证卫生和轮换政策。当攻击者泄露证书或密码等机密时,他们可以在应用程序身份的伪装下实现深度系统访问以获取令牌。然后,他们访问敏感数据,横向移动,并建立持久性。
- 推出强身份验证。IT管理员正在配置需要多因素身份验证和无密码FIDO2设备的策略。
- 限制用户对具有低风险权限的应用程序的同意,以验证发布商应用程序。通过访问Microsoft Graph等API中的数据,您可以构建丰富的应用程序。组织和客户在授予同意之前会评估您的应用程序的权限请求和可信度。IT管理员通过要求发布者验证来接受明确验证的原则。他们应用最小特权原则,只允许用户同意低风险权限。
- 阻止遗留协议和API。IT管理员正在阻止旧的身份验证协议,如“基本身份验证”,并要求使用OpenID Connect和OAuth2等现代协议。
使用可信的、基于标准的身份验证库
使用已知和公认的标准和库开发应用程序,以提高应用程序的可移植性和安全性。可信的、基于标准的身份验证库保持最新状态,以便您的应用程序能够响应最新的技术和威胁。基于标准的开发方法概述了支持的标准及其好处。
与其使用具有已知漏洞和大量文档的协议,不如使用Microsoft身份验证库(WAVE)、Microsoft Identity Web身份验证库和Azure软件开发工具包(SDK)等库来开发您的应用程序。SOAP和软件开发工具包(SDK)允许您使用这些功能,而无需编写额外的代码:
- 有条件准入
- 设备注册和管理
- 无密码和FIDO2身份验证
SOAP和Microsoft Graph是开发Microsoft Entra应用程序的最佳选择。SSO开发人员确保遵守协议。Microsoft优化了直接使用Microsoft Entra ID时的效率。
在Microsoft Entra ID中注册您的应用程序
在Microsoft Entra ID中遵循应用程序属性的安全最佳实践。在Microsoft Entr ID中注册应用程序至关重要,因为配置错误或应用程序的卫生状况不佳可能会导致停机或危害。
提高安全性的应用程序属性包括重定向URI、访问令牌(永远不要与隐式流一起使用)、证书和机密、应用程序ID URI和应用程序所有权。对代码进行类似于安全威胁模型评估的定期安全和健康评估。
代表身份和访问管理
开发您的应用程序,使用令牌进行客户定义和管理的显式身份验证和访问控制。微软建议不要开发自己的用户名和密码管理系统。
将凭据排除在代码之外,以便IT管理员可以轮换凭据,而无需关闭或重新部署您的应用程序。使用Azure密钥库或Azure托管身份等服务来委派IAM。
最小权限访问的规划和设计
零信任的一个关键原则是最小权限访问。充分开发和记录您的应用程序,以便您的客户能够成功配置最低权限策略。在支持令牌和API时,为您的客户提供应用程序调用的资源的良好文档。
始终为您的用户提供执行特定任务所需的最小权限。例如,在Microsoft Graph中使用粒度范围。
在图形资源管理器中探索范围以调用API并检查所需的权限。它们按从低到高的特权顺序显示。选择尽可能低的权限可以确保您的应用程序不易受到攻击。
遵循“以最小权限原则增强安全性”中的指导,以减少应用程序的攻击面,并在发生安全漏洞时降低爆炸半径。
安全管理令牌
当您的应用程序从Microsoft Entra ID请求令牌时,请安全地管理它们:
- 验证它们是否适用于您的应用程序。
- 适当地缓存它们。
- 按预期使用它们。
- 通过检查错误类和编码适当的响应来处理令牌问题。
- 与其直接读取访问令牌,不如在令牌响应中查看它们的范围和详细信息。
支持持续访问评估(CAE)
连续访问评估(Continuous Access Evaluation,CAE)允许Microsoft Graph快速拒绝访问以响应安全事件。示例包括以下租户管理员活动:
- 删除或禁用用户帐户。
- 为用户启用多因素身份验证(MFA)。
- 显式撤销用户颁发的令牌。
- 检测到用户进入高风险状态。
当您支持CAE时,Microsoft Entra ID发出的用于调用Microsoft Graph的令牌有效期为24小时,而不是标准的60到90分钟。CAE使MSAL能够在代币到期之前主动刷新代币,从而为您的应用程序增加弹性。
定义IT分配给用户和组的应用程序角色
应用程序角色帮助您在应用程序中实现基于角色的访问控制。应用程序角色的常见示例包括管理员、读者和贡献者。基于角色的访问控制允许您的应用程序根据用户或组定义的角色将敏感操作限制到用户或组。
成为经过验证的发布者
作为经过验证的发布者,您使用Microsoft Partner Network帐户验证您的身份,并完成了既定的验证过程。对于多租户应用程序的开发人员来说,作为一个经过验证的发布者有助于与客户租户中的IT管理员建立信任。
下一步
- 自定义令牌描述了您可以在Microsoft Entra令牌中接收的信息。了解如何自定义令牌以提高灵活性和控制能力,同时以最小权限提高应用程序的零信任安全性。
- 在令牌中配置组声明和应用程序角色描述了如何使用应用程序角色定义配置应用程序,并将安全组分配给应用程序角色。这种方法提高了灵活性和控制能力,同时以最小的权限提高了应用程序的零信任安全性。
- 使用零信任身份方法构建应用程序提供了权限和访问最佳实践的概述。
- 身份集成指南解释了如何将安全解决方案与Microsoft产品集成,以创建零信任解决方案。
- 开发人员和管理员在应用程序注册、授权和访问方面的职责有助于您更好地与IT专业人员协作。
- 单租户和多租户应用程序支持的身份和帐户类型解释了如何选择您的应用程序是否只允许来自您的Microsoft Entra ID租户、任何Microsoft Entra租户或拥有个人Microsoft帐户的用户。
- 授权最佳实践可帮助您为应用程序实现最佳授权、权限和同意模型。
- API保护描述了通过注册、定义权限和同意以及强制访问以实现零信任目标来保护API的最佳实践。
- 登录 发表评论
- 11 次浏览
最新内容
- 2 days 5 hours ago
- 2 days 7 hours ago
- 2 days 7 hours ago
- 4 days 23 hours ago
- 5 days 6 hours ago
- 5 days 7 hours ago
- 5 days 7 hours ago
- 5 days 7 hours ago
- 1 week 2 days ago
- 1 week 2 days ago