Azure AD - пользовательская проверка во внешнем API - PullRequest
0 голосов
/ 15 февраля 2019

У меня есть 3 приложения, одно из которых является настольным приложением, и это мой клиент, второе - мой Web Api для защиты, а последнее - api, который проверяет, существует ли пользователь с паролем.

В моем случае яЯ хочу соединить этот поток с Azure AD.

Я думаю, что это должно работать следующим образом: 1.DesktopApplication отправляет запрос с клиентской частью, clientsecret, именем пользователя и паролем в AZURE 2. Azure отправляет запрос с именем пользователя и паролем на мой APIгде я могу проверить, существует ли этот пользователь, если он существует, я верну «true» (или что-то в этом роде) 3. Если API вернет «true», Azure может вернуться к токену DesktopApplication 4. IsktopApplication отправит запрос на безопасный Web Api с токеном 5.DesktopApplicationполучать контент из защищенного Web Api

Api в 3 точках - это не то же самое api в 5 точках.

Возможно ли выполнить этот поток с Azure AD или нет?А если нет, могу ли я что-то сделать с моим потоком, чтобы защитить Web Api от Azure, и при этом хранить пользователей в моей старой базе данных (оракул)?

1 Ответ

0 голосов
/ 15 февраля 2019

Было бы лучше использовать потоки аутентификации OpenID Connect для аутентификации пользователя и получения токена таким образом.

Предлагаемый вами подход имеет несколько недостатков:

  1. Выхранят секрет клиента в настольном приложении, которое может быть легко извлечено любым пользователем.
  2. Поток аутентификации, который позволяет вам это делать, не будет работать с пользователями, у которых включен MFA / являются федеративными пользователями (предварительноУчетная запись AD / MS / учетная запись гостя) / пароль с истекшим сроком действия.
  3. Он обучает пользователей фишингу, поскольку им действительно нужно только ввести свой пароль на действительную страницу входа.

Так чтобыло бы лучше использовать поток, подобный следующему:

  1. Ваше настольное приложение использует библиотеку аутентификации Azure AD (ADAL) или библиотеку аутентификации Microsoft (MSAL) для аутентификации пользователя, запрашивая токен доступа для вашего API
  2. Настольное приложение вызывает API, API проверяет подпись токена, эмитента, срок действия и т. Д.

Это будеткак у пользователя всплывающее окно, в которое он может войти, и в результате вы получите токен Id (который сообщает вашему настольному приложению, кто пользователь) и токен доступа для API.

...