Из-за характера нашего приложения у нас могут быть пользователи, входящие через большое количество провайдеров аутентификации, некоторые из которых используют OAuth 1.0 (в частности, LTI ).Вместо того, чтобы всегда создавать новую учетную запись пользователя всякий раз, когда мы не распознаем логин, а затем приходится иметь дело со сложными объединениями идентификаторов, мы хотим пригласить, по-видимому, новых пользователей для идентификации себя с помощью OpenID (в основном Google и Microsoftтак как это охватывает большинство наших пользователей.) Мы могли бы попросить их об U / P, за исключением того, что мы не делаем U / P - мы всегда предпочитали поддерживать вход только через сторонних провайдеров идентификации и не хотим менятьчто.
Таким образом, сценарий будет состоять в том, что наша пользовательская схема аутентификации (LTI / OAuth1.0) получает заявки от третьих лиц, определяет, что эти заявки являются новыми для нашей системы, а затем направляет вызов нашей аутентификации по умолчанию.схема.После завершения этой схемы (либо успешной аутентификации, либо отклонения пользователя (т.е. NoResult)) мы в идеале вернемся к исходной схеме, чтобы завершить либо создание нового пользователя с использованием предоставленных утверждений, либо добавление дополнительной учетной записи для существующего пользователя.Как только все это будет выполнено, будет возвращен окончательный AuthenticationTicket, и запрос будет выполняться в обычном режиме, как аутентифицировано.
Возможно, я думаю, что все это неправильно, и если это так, я был бы рад получить рекомендациинаправление.Но основным бизнес-требованием является то, что я не хочу создавать нового пользователя до того, как дать входящим лицам возможность идентифицировать себя как существующих пользователей с помощью другого метода входа.
Целевой средой является ASP.NET Core 2.0 или2.1.