Ответ 1
IdentityServer - это библиотека, которая реализует различные протоколы аутентификации (не авторизации!) И позволяет объединить контроль доступа в единую систему. Вы можете разместить его в типичном веб-приложении ASP.NET, консольном приложении или чем-то еще, если доступны конечные точки HTTP. Он также позволяет хранить пользовательские данные в любом месте, будь то в памяти, базах данных, плоских файлах, системе членства в ядре asp.net или где-либо еще.
Auth0 - это компания, которая предоставляет управляемый сервис, который выполняет аутентификацию для вас. Они управляют инфраструктурой и предоставляют доступ через свой веб-сайт и API. Это похоже на то, что кто-то запускает IdentityServer4 для вас, и есть несколько конкурентов, таких как Okta для разработчиков, AWS Cognito, Azure AD B2C, Google Cloud Identity/Firebase и другие.
Выберите IdentityServer, если:
- Вы хотите бесплатное программное обеспечение с открытым исходным кодом.
- У вас есть время и усилия, чтобы запустить его самостоятельно.
- Вы хотите сами управлять всеми данными из-за правил, конфиденциальности и т.д.
- Вам требуется полный контроль и гибкость в отношении того, что происходит во время аутентификации (например, объединение учетных записей пользователей в вашей базе данных, когда кто-то входит в систему). Это всего лишь код С#, так что вы можете делать все, что захотите.
Выберите Auth0, если:
- Вы хотите сэкономить время и силы на внедрение и эксплуатацию.
- Цена не является проблемой (поскольку это может дорого обойтись для некоторых функций).
- Настройки, предлагаемые Auth0, достаточны для вашего варианта использования.
- Вам нужны другие функции, которые они предлагают, такие как мониторинг нарушения пароля.
- Вы не хотите управлять пользовательскими данными или не против их хранения.