dotNetOpenAuth 示例问题获取正确的安全上下文

dotNetOpenAuth Samples issue getting the right security context

我正在研究 dotNetOpenAuth Samples(OpenIdRelyingPartyMVC 和 OpenIdProviderMvc)并提出一个问题以便更好地理解...

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

的 RelyingParty

这只是依赖方应用程序中的一个绑定错误,它采用提交给提供商的 OpenID,还是我在 Bob3 的安全上下文中使用 Bob5 的凭据进行了身份验证,这将是一个主要的安全问题在我看来,因为我可以通过提供者的一个工作用户帐户来验证我想要的任何人。

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

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

有缺陷的控制器代码: 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" 分支才是我们应该使用的分支。