Shiro,多因素身份验证

     2023-02-25     243

关键词:

【中文标题】Shiro,多因素身份验证【英文标题】:Shiro, Multi Factor Authentication 【发布时间】:2013-08-31 09:28:14 【问题描述】:

有没有办法在 Shiro 中实现多因素身份验证?有人可以给我一个关于如何实现这个的提示吗?

更多详情: 基本思想是,用户需要像往常一样使用用户名和密码登录,但在实际验证之前,用户还需要输入他收到的一次性令牌作为 SMS。

谢谢!

【问题讨论】:

不知道?有人吗?我也很满意一个提示,我需要“插入”我自己的多因素身份验证实现,这样它就可以与 Shiro 一起工作! 【参考方案1】:

我终于自己解决了我的问题,但我当然总是愿意接受其他建议。

我实现了自己的 2 - 因素身份验证流程:

首先我更改了登录页面的 URL,Shiro 将未经身份验证的用户重定向到我自己的登录页面,这导致了身份验证机制。 用户需要完成两个“阶段”才能登录。

在第一阶段,他/她必须提供用户名和密码,如果 这些都是有效的,用户被重定向到登录的第二阶段。 同时,已生成一次性令牌并发送给用户 通过短信。用户的认证进度也保存在 会议(这意味着我记得,第一阶段已经完成 成功)。 在第 2 阶段,用户需要输入令牌。如果 令牌是 无效或超过尝试次数 (5) 已过期(5 分钟后)尝试次数 正确输入令牌超过 4 用户将被重定向 到第 1 阶段,所有进度将被删除。我 如果一切顺利,用户将通过 Shiro 身份验证 (当然不会让他/她知道)

最终用户将被重定向到他/她最初请求的页面,这仍然允许他/她为页面添加书签。当然,Shiro 的记住我将永远被禁用。

【讨论】:

是否有任何代码可以实现这种行为? @PauloPires 对不起,我真的没有免费可用的代码,我在实习期间实现了这个。但是程序本身的实现并不难,你只需要弄清楚如何使它与 Shiro 一起工作。完成认证后,只需调用 shiro 中的相应函数即可。 @Sonja 感谢您分享您的方法!这可能会对我有所帮助。那么你在第一阶段使用 Shiro 验证用户名和密码吗?从 Les Hazlewood 的这篇文章中,他说“这(多阶段身份验证)已经在基于 Shiro 的应用程序中完成,但是通过应用程序预先收集所有必需的信息,然后与 Shiro 交互。”似乎最好按照自己的方式进行,在进行第二阶段之前验证用户名/密码。顺便说一句,我很好奇,您是如何使用 SMS 的? @mikato 感谢您的反馈,希望我的回答对您有所帮助!有一些信誉良好的提供商为从应用程序发送的 SMS 提供合同。他们通常还提供一个 API 来与他们的服务器通信。我使用了 websms.at,这是一项奥地利服务,所以我不确定这是否会对您有所帮助。

shiro多realm验证之——shiro实现不同身份使用不同realm进行验证(转)

转自: http://blog.csdn.net/xiangwanpeng/article/details/54802509            (使用特定的realm实现特定的验证)假设现在有这样一种需求:存在两张表user和admin,分别记录普通用户和管理员的信息。并... 查看详情

使用 Paramiko 进行多因素身份验证(密码和密钥)

】使用Paramiko进行多因素身份验证(密码和密钥)【英文标题】:Multi-factorauthentication(passwordandkey)withParamiko【发布时间】:2021-09-3019:12:22【问题描述】:我有以下代码:importparamikopolicy=paramiko.client.WarningPolicy()client=paramiko.client.SSHC... 查看详情

vulnerabilitiesinmulti-factorauthentication:多因素身份验证漏洞(代码片段)

许多网站完全依赖使用密码的单因素身份验证来验证用户。但是,有些要求用户使用多种身份验证因素来证明其身份。对于大多数网站来说,验证生物识别因素是不切实际的。但是,基于您知道的和您拥有的内容࿰... 查看详情

使用 Spring Boot 2 和 Spring Security 5 进行多因素身份验证

】使用SpringBoot2和SpringSecurity5进行多因素身份验证【英文标题】:Multi-FactorAuthenticationwithSpringBoot2andSpringSecurity5【发布时间】:2020-05-1201:17:54【问题描述】:我想将带有TOTP软令牌的多因素身份验证添加到Angular和Spring应用程序,同... 查看详情

在自定义函数中使用 AWS cognito 多因素身份验证

】在自定义函数中使用AWScognito多因素身份验证【英文标题】:UseAWScognitosmultifactorauthenticationincustomfunctions【发布时间】:2017-08-0903:33:12【问题描述】:我正在使用以下技术开发无服务器应用程序:Angular2与用于前端的AWS开发工具... 查看详情

shiro之身份验证身份认证流程

...ityUtils.setSecurityManager()设置;2.SecurityManager负责真正的身份验证逻辑;它会委托给Authenticator进行身份验证;3.Authenticator才是真正的身份验证者,ShiroAPI中核心的身份认证入口点,此处可以自定义插入自己的实现&... 查看详情

shiro学习笔记——shiro身份验证

身份验证:  在应用中证明他就是他本人。一般上用身份证、用户/密码来证明。  在shiro中,用户需要提供principals (身份)和credentials(证明)给shiro,从而应用能验证用户身份Principals:  身份,即主体的标识属性,... 查看详情

shiro身份验证

 shiro身份验证:  参考链接:http://jinnianshilongnian.iteye.com/blog/2019547  即在应用中证明是本人进行操作,一般通过用户名来证明  在shiro中,用户通过提供principals(身份)和credentials(证明)给shiro,从而进行验证  pri... 查看详情

shiro-身份验证

身份验证身份验证,即在应用中谁能证明他就是本人,一般提供如他们的身份ID一些标识信息来表明他就是本人,如提供用户名/密码来证明。在shiro中,用户需要提供principals(身份)和credentials(证明)给shiro,从而应用能验证... 查看详情

shiro身份验证

身份验证,即在应用中谁能证明他就是他本人。一般提供如他们的身份ID一些标识信息来表明他就是他本人,如提供身份证,用户名/密码来证明。在shiro中,用户需要提供principals (身份)和credentials(证明)给shiro,从而应... 查看详情

shiro笔记身份验证

Shiro笔记(二)身份验证一、核心代码1@Test2publicvoidhelloWorldTest(){3IniSecurityManagerFactoryfactory=4newIniSecurityManagerFactory("classpath:shiro-jdbc-realm.ini");5SecurityManagermanager=factory.getInstance();6/ 查看详情

shiro身份验证(代码片段)

身份验证,即在应用中谁能证明他就是他本人。一般提供如他们的身份ID一些标识信息来表明他就是他本人,如提供身份证,用户名/密码来证明。在shiro中,用户需要提供principals (身份)和credentials(证明)给shiro,从而应... 查看详情

shiro学习之身份验证

身份验证,即在应用中谁能证明他就是他本人。一般提供如他们的身份ID一些标识信息来表明他就是他本人,如提供身份证,用户名/密码来证明。在shiro中,用户需要提供principals(身份)和credentials(证明)给shiro,从而应用能... 查看详情

使用 shiro 的多个身份验证过滤器

】使用shiro的多个身份验证过滤器【英文标题】:Multipleauthenticationfilterswithshiro【发布时间】:2019-01-0523:00:01【问题描述】:我使用shiro实现了自定义身份验证过滤器,但想使用基本身份验证作为备用选项。这意味着-如果用户拥... 查看详情

Shiro - 无法使用散列密码进行身份验证

】Shiro-无法使用散列密码进行身份验证【英文标题】:Shiro-Cannotauthenticateusinghashedpasswords【发布时间】:2014-12-2914:56:22【问题描述】:我正在尝试使用Shiro对我正在构建的JSFWeb应用程序进行身份验证和授权。不幸的是,我仍然难... 查看详情

使用 JDBCRealm 通过 Shiro 对用户进行身份验证

】使用JDBCRealm通过Shiro对用户进行身份验证【英文标题】:UsingJDBCRealmtoauthenticateuserwithShiro【发布时间】:2013-06-3016:51:25【问题描述】:我正在尝试使用Shiro验证在Tomcat6中运行的servlet。我有以下shiro.ini文件:[main]ps=org.apache.shiro.au... 查看详情

shiro简单的身份验证案例

...证、授权、加密、会话管理、与Web集成、缓存等.简单的身份验证项目目录: 首先,在shiro.ini里配置了用户名和密码 用户名为hello密码为123 项目使用了maven在pom.xml中添加所需要的依赖 SayHello.javapackagecom.shiro;import 查看详情

Apache Shiro 身份验证自定义

】ApacheShiro身份验证自定义【英文标题】:ApacheShiroauthenticationcustomization【发布时间】:2016-10-2909:35:18【问题描述】:如何在ApacheShiro中自定义身份验证逻辑?在SpringSecurity中,我在AuthenticationManager的“authenticate()”方法中编写了... 查看详情