微服务安全:认证与授权的全面解析
1. 多因素认证
多因素认证(MFA)是企业应用中常见的访问控制安全实践。它通过多种指标来验证“你是否是你声称的那个人”。这些因素包括通过电话确认你是请求者,通过应用程序发送验证码,或者将PIN码发送到只有你能访问的安全账户。
MFA在确保特权账户安全方面越来越普遍。不过,为了增强安全性,还需要结合其他技术,如条件访问。条件访问在认证时会考虑位置、设备健康状况、用户风险、应用风险等因素,从“你知道什么、你拥有什么、你是什么”的角度构建安全的认证流程,并根据外部因素决定是否授予用户访问权限。
2. 现代身份协议基础
在深入了解特定的认证流程之前,先介绍一些现代身份协议的基础知识。
- OAuth 2.0授权框架 :根据互联网工程任务组(IETF)的规范,OAuth 2.0允许第三方应用以两种方式获得对HTTP服务的有限访问。一种是通过协调HTTP服务和资源所有者之间的批准,代表资源所有者确保访问安全;另一种是第三方应用自行获得访问权限。使用该协议,你可以信任应用程序安全地存储你的凭证,而不会滥用它们。构建OAuth 2.0授权流程时,需要有应用程序内要访问的目标资源和授权(AuthZ)服务器,前者需注册到后者,可使用Azure Active Directory等工具完成。
- OpenID Connect(OIDC) :OIDC是建立在OAuth 2.0之上的协议,它通过收集信息来验证用户,弥补了OAuth仅使用AuthZ协议的不足。如果获取访问令牌的流程被去除,就会形成强大的认证(AuthN)流程,