WebAPI - отдельное развертывание для конечной точки токена и конечной точки API - PullRequest
0 голосов
/ 12 апреля 2019

У меня есть два проекта webapi, которые будут развернуты как два разных веб-сайта на одном сервере - сервер / сайт1 и сервер / сайт2.Они оба используют аутентификацию токена.Могу ли я иметь третий проект webapi с конечной точкой токена, развернутой на сервере / токене, чтобы полученный здесь токен можно было использовать для аутентификации на сайтах 1 и 2?

1 Ответ

1 голос
/ 15 апреля 2019

Ваша проблема

У меня есть два проекта webapi, которые будут развернуты в виде двух разных веб-сайтов на одном сервере - сервер / сайт1 и сервер / сайт2. Они оба используют аутентификацию токена. Могу ли я иметь третий проект webapi только с конечной точкой токена, которая развернута на сервере / токене

Я бы предпочел развернуть на том же сервере, но с использованием поддоменов:

  • site1.example.com
  • site2.example.com
  • auth.example.com

Это дает вам гибкость для более удобного перемещения по серверам.

чтобы токен, полученный отсюда, можно было использовать для аутентификации на site1 и site2?

Да, вы можете, но, как я уже упоминал, я не буду делать это в том же домене.

Похоже, вы пытаетесь реализовать Single Sign On (SSO)

Единая регистрация (SSO) - это свойство контроля доступа нескольких связанных, но независимых программных систем. И наоборот, единый выход - это свойство, при котором одно действие выхода прекращает доступ к нескольким программным системам. Другие схемы общей аутентификации, такие как OpenID и OpenID Connect, предлагают другие сервисы, которые могут потребовать от пользователей делать выбор при входе в ресурс, но могут быть настроены для единого входа, если эти другие сервисы (такие как согласие пользователя) инвалиды.

Таким образом, для достижения единого входа вы можете использовать OpenID Connect :

OpenID Connect 1.0 - это простой идентификационный уровень поверх протокола OAuth 2.0. Это позволяет клиентам проверять подлинность конечного пользователя на основе аутентификации, выполняемой сервером авторизации, а также получать базовую информацию о профиле конечного пользователя взаимодействующим и REST-подобным образом. OpenID Connect выполняет многие из тех же задач, что и OpenID 2.0, но делает это способом API, дружественным и используемым в собственных и мобильных приложениях. OpenID Connect определяет дополнительные механизмы для надежной подписи и шифрования. Тогда как для интеграции OAuth 1.0a и OpenID 2.0 требовалось расширение, в OpenID Connect возможности OAuth 2.0 интегрированы с самим протоколом.

Возможное решение

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

Кажется, вы используете DOTNET, поэтому я бы порекомендовал вам прочитать этот быстрый старт в их документах, который поможет вам настроить SSO в новом проекте с некоторыми официальными библиотеками.

В этом кратком руководстве вы узнаете, как реализовать вход в Microsoft с помощью решения ASP.NET MVC с традиционным приложением на основе веб-браузера с использованием OpenID Connect. В приложении ASP.NET вы узнаете, как включить входы из рабочих и школьных учетных записей.

В качестве альтернативы вы можете использовать единый вход из Azure Active Directory .

Единая регистрация (SSO) повышает безопасность и удобство при входе пользователей в приложения в Azure Active Directory (Azure AD). В этой статье описываются методы единого входа и помогает выбрать наиболее подходящий метод единого входа при настройке приложений.

Для тех, кто читает это, но использует другой язык, см. Некоторые примеры пакетов SSO для:

Пройдя лишнюю милю

Как только вы развернете собственное решение, я бы порекомендовал вам вложить значительные средства в его защиту.Для API, обслуживающего веб-приложение, вы можете использовать несколько уровней защиты, начиная с reCaptcha V3 , затем Брандмауэр веб-приложений (WAF) и, наконец, если вы можете себе это позволить Решение для анализа поведения пользователей (UBA).Если вы хотите узнать и понять, почему важно правильно защищать API, вы можете прочитать этой серии статей, в которых вы узнаете, как можно использовать ключи API, токены доступа пользователей, HMAC и TLS Pinning.используется для защиты API и как их можно обойти.Хотя серия статей относится к мобильному API, многие из них по-прежнему действительны для веб-API.

Google reCAPTCHA V3 :

reCAPTCHA - это бесплатный сервис, который защищает ваш сайт от спама и злоупотреблений.reCAPTCHA использует усовершенствованный механизм анализа рисков и адаптивные задачи, чтобы автоматизированное программное обеспечение не использовалось для злоупотреблений на вашем сайте.Он делает это, позволяя вашим действительным пользователям легко проходить через него.

... помогает вам обнаруживать оскорбительный трафик на вашем сайте без каких-либо проблем со стороны пользователей.Он возвращает оценку, основанную на взаимодействиях с вашим веб-сайтом, и предоставляет вам больше возможностей для принятия соответствующих действий.

WAF - брандмауэр веб-приложений :

Брандмауэр веб-приложений (или WAF) фильтрует, отслеживает и блокирует HTTP-трафик в веб-приложение и из него.WAF отличается от обычного брандмауэра тем, что WAF может фильтровать содержимое определенных веб-приложений, в то время как обычные брандмауэры служат в качестве шлюза безопасности между серверами.Проверяя HTTP-трафик, он может предотвратить атаки, связанные с недостатками безопасности веб-приложений, такими как внедрение SQL, межсайтовый скриптинг (XSS), включение файлов и неправильная конфигурация безопасности.

UBA -Аналитика поведения пользователя :

Аналитика поведения пользователя (UBA), как определено Gartner, представляет собой процесс кибербезопасности, связанный с обнаружением внутренних угроз, целевых атак и финансового мошенничества.Решения UBA рассматривают модели поведения людей, а затем применяют алгоритмы и статистический анализ для выявления значимых аномалий из этих моделей - аномалий, которые указывают на потенциальные угрозы.Вместо отслеживания устройств или событий безопасности, UBA отслеживает пользователей системы.Платформы больших данных, такие как Apache Hadoop, расширяют функциональность UBA, позволяя им анализировать данные объемом в петабайты для обнаружения внутренних угроз и расширенных постоянных угроз.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...