苹果发布最新版操作系统
身份验证和授权之间有什么区别? 在谈论保护应用程序安全时,将弹出认证和授权一词。虽然这些术语可以互换使用,但它们在保护应用程序范围内代表了不同的目的。 在谈论身份验证时,这是验证他/她/所声称的实体的身份的过程。在谈论授权时,它是验证实体是否被授权访问特定信息或被允许执行某些动作的过程。 关于总安全流程,这两个原则都适用,并且组合仍然可能使请求失败。在规则中,身份验证首先,授权第二。当用户通过身份验证但未经授权时,请求仍将失败。 OpenID Connect和OAuth 在像微服务这样的分布式系统架构中,无法以传统方式实现身份验证和授权。使用单体架构方法,经常将签名会话存储在内存中或分布式会话存储中,以在单体应用程序实例之间共享会话。 由于微服务是单独的隔离的应用程序,因此无法共享不同应用程序的内存中存储。不建议集中和共享分布式会话存储。这在微服务之间建立了紧密的耦合,并为微服务之间的泄漏逻辑打开了大门。 牢记微服务架构,每个微服务应独自负责其单个业务逻辑,无论是很小的逻辑还是有限的上下文。在这种情况下,身份验证是一个贯穿各领域的问题,不应成为微服务本身的一部分。 针对此问题的一种广泛使用的解决方案是实现单独的身份服务器。该服务负责托管集中式身份验证和授权。有多种解决方案,例如WSO2身份服务器(Java),IdentityServer4(.NET)和OAuth2orize(Node.js)。所有这些框架都通过使用OpenID Connect和OAuth2支持身份验证和授权。 什么是OpenID Connect? OpenID Connect是一种身份验证协议,它是OAuth2之上的简单身份层。它允许客户端识别客户端,以通过外部授权服务器(例如Google,Facebook或身份服务器中的嵌入式登录系统)来验证用户的身份。 流程看起来如何?用户请求访问应用程序。应用程序确定用户尚未通过身份验证,然后将用户重定向到身份服务器。用户向身份服务器进行身份验证。身份服务器在成功身份验证后向用户发送访问令牌/ ID令牌。该令牌由加密密钥签名。用户可以在应用程序上使用此令牌进行身份验证。应用程序通过检查公共加密密钥来检查签名密钥是否由身份服务器签名,从而验证签名密钥。在这种情况下,用户已成功通过身份验证!
对于令牌,使用JSON Web令牌(JWT)。JWT由标头,有效负载和签名组成。标头包含用于对令牌进行签名的算法。有效负载本质上是一个JSON对象,可以在其中添加有关用户的其他属性。由于令牌是由身份服务器签名的,因此消费应用程序可以信任该信息。应用程序可以根据身份服务器用于签署令牌的证书的公钥来验证令牌。 5. 什么是ARQ(自动重复请求)? ARQ是一种错误控制方法,用于在传输层和数据链路层中进行数据传输。 确认和超时用于确保可靠的数据传输。如果接收方在给定时间内没有收到确认,它将重新发送同一数据包,直到返回确认或超出预定义的重传时间为止。 有两种类型的ARQ,包括:
(编辑:济南站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |