Каковы преимущества использования IdentityServer4 для подключения к AzureAD вместо прямого перехода к AzureAD?

#reactjs #authentication #asp.net-core #azure-active-directory #identityserver4

#reactjs #аутентификация #asp.net-core #azure-активный каталог #identityserver4

Вопрос:

Требуется аутентификация и авторизация (на основе ролей и групп безопасности из AzureAD) различных веб-клиентов и ресурсов API. Рассматривая возможность передачи этого через IdentityServer4 в AzureAD по сравнению с прямой аутентификацией в AzureAD. Есть ли преимущества в использовании IdentityServer4 в качестве ретрансляционной станции?

Различные клиенты ASP.Net Core web, web api и веб-приложениям reactjs (и, возможно, angular) spa.

Нам нужно аутентифицировать и авторизовывать веб-клиентов, используя роли уровня приложения, а также группы безопасности, загруженные из AzureAD.

Комментарии:

1. Что ж, если вы перейдете непосредственно к Azure AD, ваше приложение будет привязано к этой конкретной опции. Если вы хотите позже ввести аутентификацию Google, например, вы находитесь в плохом месте. Сервер идентификации действует как центральное место аутентификации, и вы также можете использовать его для защиты своих API, используя несколько доступных потоков OAuth. Также обратите внимание: ни сервер идентификации, ни AzureAD не подходят для авторизации. За авторизацию отвечает ваше приложение, а не эти два. Они могут возвращать утверждения, и вы можете использовать их для авторизации, но.. на самом деле это не рекомендуется.

2. Хотя обратите внимание, что введение IdentityServer также означает дополнительную сложность. Если сразу не очевидно, что потребуется больше поставщиков, которые будут использоваться в разных приложениях, я бы не хотел использовать зависимость. «Создайте это дважды правильно» и т.д.

3. Да, конечно. Если это не нужно, то нет смысла вводить еще один компонент.

4. jpgrassi: вы упомянули, что можно использовать IDS4 для защиты API … означает ли это, что это не может быть легко сделано непосредственно против AzureAD?

5. Кроме того, что подразумевается под приложением, ответственным за авторизацию? Мы возвращаем заявки из AzureAD и используем их для авторизации, но если это не рекомендуется, то какой вариант авторизации используется исключительно в приложении? Локальная база данных для хранения ролей и групп?