我正在通过dotNetOpenAuth Samples(OpenIdRelyingPartyMVC和OpenIdProviderMvc)提出一个问题,以更好地理解...

在依赖方应用程序的MembersArea中,例如,我使用OpenID“http://localhost:4864/user/bob3”。我被重定向到提供商登录页面,然后在其中使用Bob 5 的凭据。成功登录后,我被重定向回RelyingParty,上面显示“恭喜Bob3 ...”。

这仅仅是依赖方应用程序中的一个绑定(bind)错误,它采用了已提交给提供商的OpenID,还是我在Bob3的安全性上下文中使用Bob5的凭据进行了身份验证,我认为这将是一个主要的安全问题,因为我可以使用提供者处的一个有效用户帐户身份进行身份验证。

最佳答案

我认为您使用的是过期的分支,其中包含3年前发现的安全问题:

http://www.zdnet.com/article/dotnet-projects-flawed-sample-code-has-crippling-authentication-exploit/

有缺陷的 Controller 的代码:
https://github.com/DotNetOpenAuth/DotNetOpenAuth.Samples/blob/master/src/OpenID/OpenIdProviderMvc/Controllers/OpenIdController.cs

固定代码:
https://github.com/DotNetOpenAuth/DotNetOpenAuth/blob/develop/samples/OpenIdProviderMvc/Controllers/OpenIdController.cs

修复的差异:
https://github.com/DotNetOpenAuth/DotNetOpenAuth/commit/cdd3e95f4eac8076ffd78641bf4cf61d4422572a

在我看来,“master”分支已经过时,而“develop”分支是我们应该使用的分支。

关于openid - dotNetOpenAuth示例问题获取正确的安全上下文,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29741789/

10-09 04:30