我们有一个基于ServiceStack的cookie认证的移动应用程序。该应用程序存储用户的登录cookie,并在用户愿意的情况下保持登录。
我们有一个‘购买PIN’的功能,在应用-用户可以设置一个PIN,并要求它输入,每次他们作出购买。这样做的目的是防止在失窃或遗失的未上锁手机上进行购买。
该应用程序有一个设置/配置视图,在该视图中,用户可以设置、打开和关闭购买PIN。因此,我们需要强制用户重新认证,以便能够编辑他们的设置。
我们的想法是当用户尝试输入设置页面时:
所有这些都必须与现有的ServiceStack cookie身份验证一起存在(由于各种原因,我们当前的auth层在作用域和时间之外)。
在ServiceStack中实现这一额外安全级别的最佳实践是什么?
发布于 2021-02-04 21:25:33
您可能需要查看WebSudoFeature插件,它允许特权保护服务强制用户重新进行身份验证,以便能够访问带有[WebSudoRequired]注释的服务。
至于即将到期的令牌,我将实现它作为一个单独的App层安全特性,作为请求DTO属性传递到您的服务中,而不是试图将它与ServiceStack的顶级身份验证集成起来。
对于它的实现,您可以在应用程序中验证它,也可以生成一个包含过期的UUID/Guid的DB条目,因为当使用这些PIN授权令牌时,您可能希望它维护审计信息(例如时间/IP),而不是使用无状态令牌而不使用任何审计历史记录。
https://stackoverflow.com/questions/66050389
复制相似问题