2015-04-20 5 views
12

Я иду через dotNetOpenAuth Samples (OpenIdRelyingPartyMVC и OpenIdProviderMvc) и подойти к вопросу для лучшего понимания ...dotNetOpenAuth вопрос Образцов получают контекст безопасности права

В MembersArea полагающейся стороны App я использую OpenID «http://localhost:4864/user/bob3», например. Я перенаправляюсь на страницу входа в Провайдеры, где я использую учетные данные Боба . После успешного входа в систему я перенаправляюсь обратно в RelyingParty, который говорит «Поздравляем Bob3 ...».

Это просто ошибка привязки в приложении Relying Party, которая принимает OpenID, который был отправлен Поставщику, или я аутентифицирован в контексте безопасности Bob3 с учетными данными Bob5, что будет серьезной проблемой безопасности в Мое мнение, поскольку я могу аутентифицироваться как кто бы я ни хотел, только с одной действующей учетной записью пользователя у поставщика.

ответ

2

Я думаю, что вы используете устарелый ветвь, которая содержит проблему безопасности, которая была обнаружена 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

Fixed код: https://github.com/DotNetOpenAuth/DotNetOpenAuth/blob/develop/samples/OpenIdProviderMvc/Controllers/OpenIdController.cs

Diff из затруднительного: https://github.com/DotNetOpenAuth/DotNetOpenAuth/commit/cdd3e95f4eac8076ffd78641bf4cf61d4422572a

Мне кажется, что ветвь «хозяин» устарела, а ветвь «развивать» - это та, которую мы должны использовать.

+0

Спасибо за ваш ответ, кажется законным, так как я использовал ветку мастера действительно ... дай мне день или около того, чтобы подтвердить это –

+0

Отличный ответ, спасибо большое! Просто вставил Diff прямо в код примера OpenIdProviderMvc, и он немедленно исправил проблему. Я использовал ** проект «dotNetOpenAuth.Samples» ** на Github, который, кажется, устарел ... просто используйте вместо него основной проект, который содержит уже исправленные образцы. –

+0

Рад, что я могу помочь :) – Thuan