Можно ли в ASP.NET Core создавать новых пользователей в одной схеме, перенаправляя аутентификацию в другую схему? - PullRequest
0 голосов
/ 19 мая 2018

Из-за характера нашего приложения у нас могут быть пользователи, входящие через большое количество провайдеров аутентификации, некоторые из которых используют OAuth 1.0 (в частности, LTI ).Вместо того, чтобы всегда создавать новую учетную запись пользователя всякий раз, когда мы не распознаем логин, а затем приходится иметь дело со сложными объединениями идентификаторов, мы хотим пригласить, по-видимому, новых пользователей для идентификации себя с помощью OpenID (в основном Google и Microsoftтак как это охватывает большинство наших пользователей.) Мы могли бы попросить их об U / P, за исключением того, что мы не делаем U / P - мы всегда предпочитали поддерживать вход только через сторонних провайдеров идентификации и не хотим менятьчто.

Таким образом, сценарий будет состоять в том, что наша пользовательская схема аутентификации (LTI / OAuth1.0) получает заявки от третьих лиц, определяет, что эти заявки являются новыми для нашей системы, а затем направляет вызов нашей аутентификации по умолчанию.схема.После завершения этой схемы (либо успешной аутентификации, либо отклонения пользователя (т.е. NoResult)) мы в идеале вернемся к исходной схеме, чтобы завершить либо создание нового пользователя с использованием предоставленных утверждений, либо добавление дополнительной учетной записи для существующего пользователя.Как только все это будет выполнено, будет возвращен окончательный AuthenticationTicket, и запрос будет выполняться в обычном режиме, как аутентифицировано.

Возможно, я думаю, что все это неправильно, и если это так, я был бы рад получить рекомендациинаправление.Но основным бизнес-требованием является то, что я не хочу создавать нового пользователя до того, как дать входящим лицам возможность идентифицировать себя как существующих пользователей с помощью другого метода входа.

Целевой средой является ASP.NET Core 2.0 или2.1.

1 Ответ

0 голосов
/ 29 мая 2018

Файл ASP.NET Core -> новый шаблон проекта (когда вы выбираете стороннюю аутентификацию) делает что-то похожее, когда вы выбираете вход от стороннего провайдера.Он сохраняет сторонние претензии в куки (подписан) и перенаправляет вас на страницу регистрации.Как только вы отправляете форму, она собирает заявки из этого куки-файла вместе с регистрационными данными, создает пользователя в базе данных, обнуляет этот временный куки-файл и выдает настоящий аутентичный куки-файл, на который смотрит все остальное.Чтобы смягчить атаки повторного воспроизведения, этот промежуточный файл cookie является всего лишь файлом cookie сеанса и истекает через короткое время - я думаю, 5 минут.Вы определенно на правильном пути.

...