java- 哪种方式易于实现且安全,用于 Web 应用程序/Web 服务中的最终用户身份验证

Posted

技术标签:

【中文标题】java- 哪种方式易于实现且安全,用于 Web 应用程序/Web 服务中的最终用户身份验证【英文标题】:java- which way is easy to implement yet secure, for end user authentication in a web app/web service 【发布时间】:2012-06-24 15:37:36 【问题描述】:

我将创建一个应用程序,该应用程序将具有一个常规 Web 界面,用户可以在其中注册、访问一些资源。

我正在阅读不同的身份验证方式——基本身份验证、摘要式身份验证、openid、oauth、oauth2...

我想知道的是,如果我实施基本或摘要身份验证,那么它是否安全?因为在我访问过的许多网站中,谈论的都是关于 oauth 以及它的安全性。 在我访问的一些网站中也提到了 Open ID...

我正在查看最终用户身份验证的当前使用场景是针对 Web 应用程序中的 Web 界面。另一个使用场景是基于 JAX-RS 的 Web 服务。对于这两种使用场景,哪种身份验证方式是安全的?理想情况下,我想在两种情况下都使用相同的身份验证方式...

【问题讨论】:

【参考方案1】:

对于面向用户的部分,Web 浏览器开箱即用地支持 Basic 和 Digest。如果您使用 cookie 建立会话,基于表单或 OpenID 的身份验证也将起作用。 如果你使用 Basic,一定要使用 SSL,因为密码将在未加密的消息头中传递。

OAuth 旨在授权第 3 方客户端,以便他们可以在不知道用户密码的情况下访问用户拥有的资源,并且不必与用户本身具有相同的访问级别。我建议将其用于编程 API。

【讨论】:

@Martin- 是基本且安全的(对于 Web 界面)?因为我看到很多帖子都强调安全性,下一刻他们提到了 oauth……这是否意味着基本/摘要不够安全?谢谢... 正如我所说,浏览器不支持 OAuth,其目的不是用户身份验证。当涉及到 Basic 和 Digest & security 时,您应该使用 SSL(尤其是 Basic)。另一个问题是无法注销(浏览器必须支持它 - 许多浏览器不支持) - 这和 UI/可用性方面导致绝大多数网站使用基于表单的身份验证和 cookie。

以上是关于java- 哪种方式易于实现且安全,用于 Web 应用程序/Web 服务中的最终用户身份验证的主要内容,如果未能解决你的问题,请参考以下文章

哪种 JWT 刷新策略更安全?

Twistlock使Istio的安全层更强大,更易于监控

springboot集成shiro实现用户登录认证

SpringBoot 优雅的整合 Shiro

Shiro(Java权限框架)入门

spring boot 与 shiro的简单整合使用