ASP. NET веб-формы и служба внешней аутентификации - PullRequest
1 голос
/ 20 января 2020

У меня есть приложение ASP. NET webforms (не MVC!). Я использовал встроенный механизм внутренней аутентификации пользователя, что означает использование web.config файла:

<authentication mode="Forms">
    <forms loginUrl="~/Logon.aspx" name=".ASPXFORMSAUTH" timeout="180" slidingExpiration="true">
    </forms>
</authentication>
<authorization>
    <deny users="?" />
</authorization>

Logon.aspx Страница запрашивает логин и пароль пользователя, затем использует метод FormsAuthentication.RedirectFromLoginPage() для входа в систему и FormsAuthentication.SignOut(); для выхода.

Теперь мне нужно перейти на внешний сервер аутентификации. Этот сервер использует программное обеспечение, такое как OAUTH, но не совсем (оно разрабатывается самостоятельно). Итак, я не могу понять схему, как внедрить сторонний сервер аутентификации в веб-формы.

Должен ли я размещать сторонний URL-адрес перенаправления сервера аутентификации на мой web.config? Или я должен сделать два перенаправления, сначала на Logon.aspx, затем на внешнюю ссылку аутентификации с него? Как сделать процедуру выхода из системы? К сожалению, у меня есть опыт только в аутентификации встроенных веб-форм, и я даже не представляю, как работать с внешним сервисом!

1 Ответ

0 голосов
/ 20 января 2020

В зависимости от Grant Type существуют различные потоки, которые вы можете использовать: https://oauth.net/2/grant-types/

Ниже перечислены наиболее распространенные типы предоставления OAuth.

Код авторизации Учетные данные клиента Код устройства Refre sh Токен

Для веб-приложений код авторизации наиболее вероятен для go: https://developer.okta.com/blog/2018/04/10/oauth-authorization-code-grant-type

Приложение открывает браузер для отправки пользователя на сервер OAuth. Пользователь видит запрос на авторизацию и подтверждает запрос приложения. Пользователь перенаправляется обратно в приложение с кодом авторизации в строке запроса. Приложение обменивается авторизацией. код токена доступа

По сути, вы вообще не будете использовать свою форму. Вы будете перенаправлять на сервер oauth и обратно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...