В основном IdentityServer имеет две обязанности:
- Аутентификация пользователя
- Авторизовать клиента
Проблема с IdentityServer заключается в том, что пользователь не ограничен одним приложением. Хотя веб-сайт MVC может быть вашим фронтом, IdentityServer не связывает пользователей с определенным приложением. После аутентификации пользователь может получить доступ ко всем приложениям, которые используют IdentityServer в качестве сервера аутентификации.
Так имеет ли смысл регистрировать пользователя на сайте MVC? Вероятно, нет, потому что пользователь также может получить доступ к (будущему) веб-сайту mvc2.
Создатели IdentityServer признали это, поэтому они создали PolicyServer :
Мы считаем, что тесная связь «управления учетными данными и доступом» в
Единственное решение - неправильный подход. Эти две проблемы должны быть
четко разделены.
Другими словами: аутентификация является частью IdentityServer, авторизация (пользователя) - нет.
Возвращаясь к вопросу, регистрация пользователя должна осуществляться IdentityServer. Потому что это единственное приложение, которое имеет доступ к хранилищу удостоверений. Кроме того, пользователи также могут зарегистрироваться без перенаправления приложением.
Ключ - как управлять авторизацией (пользователя). На самом деле это не часть IdentityServer. Я не буду вдаваться в подробности, поскольку это выходит за рамки вопроса.
Но чтобы ответить на ваш вопрос, что я буду делать (включая подтверждение по электронной почте, но без автоматического входа в систему):
Добавьте функциональность регистрации в IdentityServer и реализуйте ReturnUrl (как это уже имеет место для входа в систему).
Добавьте ссылку на вашем веб-сайте mvc в функцию регистрации на IdentityServer. Позвольте пользователю зарегистрироваться в IdentityServer, отправьте ссылку для проверки электронной почты, которая отправляет пользователя на страницу входа (сохраняя возвращаемый URL), позволяя пользователю перенаправить обратно на веб-сайт mvc после регистрации и входа в систему.
Как добавить авторизацию для зарегистрированного пользователя - это другой вопрос.