Подходящая замена Azure для Auth0

У меня есть веб-API ASP .Net Core 2.2, размещенный как служба приложений Azure. Затем есть Angular SPA, который использует этот API, размещенный в хранилище Azure как статический веб-сайт.

В настоящее время я использую Auth0 в качестве нашего сервера аутентификации и идентификации. Я подумываю о замене Auth0 на Azure, но я потратил пару дней, пытаясь понять, что мне делать, и я полностью потерялся.

Итак, цель, которую в настоящее время обслуживает Auth0 и которую я хотел бы вместо этого использовать в Azure, - это защита моего веб-API, а также предоставление ему служб идентификации, чтобы API знал, какой пользователь вошел в систему. Итак, когда интерфейс выполняет вызов API, Auth0 автоматически перенаправляет его на страницу входа. Здесь пользователь может войти в систему, используя существующую учетную запись (включая учетные записи социальных сетей), или она может создать новую учетную запись. После входа в систему Auth0 предоставляет клиентской части токен доступа. Затем внешний интерфейс включает этот токен доступа в заголовок каждого вызова API. Маркер доступа включает идентификационную информацию, которую API использует, чтобы узнать, какой пользователь выполняет вызов. Все пользователи хранятся в Auth0. Поэтому, когда новый пользователь использует интерфейсное веб-приложение, Auth0 перенаправляет его на экран входа в систему, где они выбирают «Зарегистрироваться» и создают учетную запись в Auth0. Кстати, это может сделать любой пользователь - это общедоступное веб-приложение, которое может зарегистрироваться и использовать каждый.

Итак, когда я смотрю на использование Azure вместо Auth0, меня сначала смущает то, что существуют различные службы аутентификации:

  1. На портале Azure в моей службе приложений в разделе «Аутентификация / авторизация» есть переключатель с надписью «Аутентификация службы приложений». Если я включу это, я могу настроить поставщиков аутентификации.

  2. На портале Azure есть Azure Active Directory, которая, я думаю, связана с вышеупомянутым?

  3. Также существует Azure B2C.

В чем разница между аутентификацией службы приложений Azure и Azure B2C? Какой из них я должен использовать? В чем разница между пунктами 1 и 2 выше? Некоторые примеры, которые я видел, используют точку 1, а некоторые - точку 2.

Извините, если это очень расплывчатый вопрос. Я просто пытаюсь понять, в каком направлении двигаться. Я нашел Auth0 довольно простым, но, к сожалению, я не могу сказать то же самое об аутентификации Azure. Я просто хочу выяснить, какой вариант Azure лучше всего подходит для замены Auth0, поскольку я использую его сейчас. Спасибо


person Fabricio Rodriguez    schedule 11.10.2019    source источник
comment
С какими проблемами вы столкнулись с Auth0?   -  person Dan Woda    schedule 11.10.2019
comment
Привет, Дэн. Нет проблем с Auth0. Я просто подумал, что было бы неплохо разместить все в Azure. У меня уже есть серверный API и интерфейсный SPA в Azure, и я использую хранилище BLOB-объектов Azure для хранения документов. Поэтому я подумал, что если я перенесу аутентификацию также в Azure, тогда все может быть вместе в Azure. Думал, что это может быть удобно ...   -  person Fabricio Rodriguez    schedule 11.10.2019


Ответы (2)


Azure B2C - подходящий вариант для замены проверки подлинности пользователя, однако вам придется использовать OWIN или другое решение, чтобы фактически обеспечить конвейер идентификации / авторизации для конкретного приложения. Для общедоступного сайта я бы не стал использовать прямую лазурную AD для входа в систему клиентов, которая больше ориентирована на корпоративных клиентов с удостоверениями в федеративной, office365 или локальной Active Directory.

Честно говоря, я удивлен, что вы планируете перейти с auth0 на AAD. Я думаю о противоположном.

person Dmitri M    schedule 11.10.2019
comment
Спасибо за ответ Дмитрий. Единственная причина, по которой я подумал о переходе с Auth0 на AAD, заключалась в том, что я уже размещаю API в качестве службы приложений в Azure, внешний интерфейс также находится в хранилище Azure в качестве статического веб-сайта, плюс я недавно переместил хранилище документов из Amazon S3. в хранилище BLOB-объектов Azure. Поэтому я подумал, что теперь единственной недостающей частью было использование Azure и для аутентификации. Тогда все решение будет красиво размещено в одном месте / у одного провайдера ... Никакой другой причины ... :) - person Fabricio Rodriguez; 11.10.2019
comment
В прошлом году я сравнивал вариант B2C с Auth0, и Auth0 показался более надежным выбором с лучшей поддержкой и документацией. Я знаю, что команда Azure выполняет итерацию очень быстро, поэтому возможно, что теперь у них есть дополнительные возможности в B2C, которые приближают его к уровню Auth0. - person Dmitri M; 12.10.2019

Я думаю, что «замена» будет использовать Identity Server, но для него в Azure нет версии PaaS. Поэтому вам следует использовать Azure AD или Azure AD B2C.

Если вы хотите просто создавать пользователей и группы, вам следует использовать Azure AD. Но если у вас есть планы включить сторонние удостоверения для доступа к вашему приложению (например, Facebook, Google или Linkedin), вам следует использовать Azure AD B2C. Для получения дополнительной информации прочтите: https://docs.microsoft.com/en-us/azure/active-directory-b2c/active-directory-b2c-overview

person Thiago Custodio    schedule 11.10.2019