我正在努力实现一个身份验证服务器,它将为我们公司生产的web应用程序提供单点登录,目前正在使用DotNetOpenAuth2。我的问题是DNOA是这样工作的(摘自Badrinarayanan Lakshmiraghavan的Apress Pro ASP.NET Web API Security一书)
但我希望它像这样工作(这张图片是我编辑的):
有没有办法让它做到这一点,或者我应该用另一个框架来代替?我想这样做是为了使安全性更简单,以后的开发人员更容易理解。下面是一个解释,为什么这将是一个很好的适合我的目的。
我们所有的web应用程序都支持HTTPS,并且位于2个父域中的1个(因此,每个web服务器都有2个x509证书,在像*.domain1.com或*.domain2.com这样的子域上支持SSL)。
我的计划是使用现有的证书作为隐式共享的秘密来加密DotnetOpenAuth2铸造的令牌。因此,在创建令牌时,AuthorizationServerAccessStoken.ResourceServerEncryptionKey将是SSL证书的公钥,AuthorizationServerAccessStoken.AccessTokenGningKey将是SSL证书的私钥。
这样,我的任何服务器都能够以安全的方式解密用户令牌并从中提取授权声明。考虑到该方案的简单性,我只需要一个接收用户名和密码并返回加密令牌的authendpoint。
似乎这种简化使事情变得更安全,更容易实现。尤其是因为我们可以消除暂时的。一个可能的弱点是,获得web证书私钥访问权的攻击者还能够欺骗用户auth令牌。但是,假设您的SSL证书没有受到破坏似乎是一种不错的安全实践,因为web应用程序的安全性通常完全依赖于这种假设。无论如何,我不会在令牌中存储敏感信息,只是权限标志。
您的图表的主要目的似乎是省去授权代码交换步骤,只交付访问令牌。这里有一个相关的帖子,我建议阅读,以说服自己这一步的有用性。另外,您真的希望仅仅因为OAuth2.0令人困惑就创建自己的类似于OAuth2.0的授权协议吗?我认为随着越来越多的开发人员采用OAuth2.0,这些概念将开始变得不那么陌生。
综述 这部分描述权限提升问题。在这个阶段中,测试者应该验证用户是否可以修改自己在应用系统中的权限或角色来达成权限提升攻击。 权限提升问题发生在当用户去的访问超出自己正常允许访问的资源或功能时候,而这种权限提升或改变的情况本应该被应用程序阻止。通常原因是应用程序存在漏洞。带来的后果是应用程序执行了更高权限的任务,而这些任务通常是给开发者或者系统管理员使用的。 权限提升的程度取决于攻击者被授权了何种特
综述 这类测试注重于验证每个角色或访问限制文件的特权的授权模式是否良好实现。 对于评估中测试者拥有的每个不同角色,每个功能函数和应用在完成认证环节后的请求,都需要被验证: 未认证用户是否可以访问资源? 登出后是否可以访问资源? 不同角色或权限的用户是否可以访问功能函数和资源? 尝试用管理员用户来访问应用并追踪记录所有的管理功能。 普通权限用户是否可以访问管理功能? 那些拥有不同权限的用户是否可以使
我知道RecycerView类中没有默认的选择方法,但我尝试了以下方法, 在尝试这段代码时,我得到了预期的输出,但完全不是。 我将用图像来解释这一点。 我如何克服这个问题?有时,如果我快速滚动列表,就会选择其他项目。如何克服这个问题呢? 更新 当我试图在之后使用时,
我们使用的是drools 7.31版本。我们有一个大规则,必须在其他规则中重复使用。我们需要的基本功能是在超级规则和子规则条件都为真时激发超级规则。似乎旧版本有“extends”关键字,这是可能的。我在看一个更老的帖子,它可以做到这一点- drools规则继承 我期望的输出只是打印HouseHoldid99999的personId 1/2。 谢了。
在Kotlin中,单个感叹号意味着什么?我见过几次,特别是在使用Java API时。但我在文档中和StackOverflow上都找不到它。
综述 许多web应用将使用和管理文件作为日常操作的一部分。没有使用或部署良好设计的输入验证措施,攻击者可能利用这些系统来读取或改写一下他们并不能访问的文件。在一些特别的情况,攻击者甚至可能执行任意代码或者系统命令。 通常,web服务器和web应用程序实现授权管理机制来控制文件和资源的访问情况。web服务器可能试着在“根目录”或“web根目录”约束用户文件位置,这些目录代表文件系统上的一个物理目录。