Учетные данные с паролем владельца ресурса обеспечивают возможность самостоятельного входа в систему - PullRequest
0 голосов
/ 01 августа 2020

У меня есть приложение publi c, которое использует ASP. NET Core Identity для хранения собственных учетных записей, и я не собираюсь использовать сторонние IdP, такие как Facebook или Google. Я хочу создать интерфейс в React, и приложение содержит API, передающий пару серверных служб, которым мне нужно будет перенаправить JWT для авторизации.

Пока что план состоит в использовании Identity Server 4 в качестве IdP для проекта, поддерживая его в хранилищах данных ASP. NET Core Identity.

Текущее руководство заключается в использовании потока кода авторизации с PKCE, что потребует перенаправления к IdP , два набора стилей и т. д. c.

В этом сценарии, где нет возможности использования стороннего IdP, не рекомендуется ли предоставление пароля владельца ресурса? На первый взгляд, это дает более аккуратный опыт:

  • Пользователь заполняет страницу входа на основе React
  • POST XHR в IdP с учетными данными (по модулю MFA)
  • IdP возвращает токен доступа, приложение React впоследствии использует его для будущих запросов к API

Какие проблемы я представлю, выполнив предоставление ROP C в этой конкретной ситуации c, vs принятие необходимости и дублирования, связанного с потоком на основе перенаправления к IdP?

Ответы [ 2 ]

0 голосов
/ 03 августа 2020

ОБЪЕМ РАБОТ

Это одна из больших проблем. Помимо экрана входа в систему, вам необходимо убедиться, что другие области, такие как «забыть пароль», также работают. Если вы создаете второе приложение, вам необходимо, чтобы оно работало и там.

РАСШИРЕНИЕ

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

БЕЗОПАСНОСТЬ

Ссылка на токен sh (обычно) не работает с ROPG, что приводит к долгоживущему токены доступа и прочая сложность. Кроме того, при использовании OAuth рекомендуется, чтобы приложение никогда не отображало учетные данные.

С точки зрения безопасности перенаправление пользователя выглядит более современным - это делают все крупные провайдеры, например Google, Microsoft.

МОСТОВОЕ РЕШЕНИЕ

Как вы говорите, если пароль является личным для вашего приложения, это не может быть худшим в мире. Захват пароля пользователя Google в вашем приложении был бы плохой вещью. избавиться от него. Так что я бы также порекомендовал то, что предлагает LalitaCode ..

0 голосов
/ 01 августа 2020

Вы можете создать страницу входа в систему Identity Server на основе React для потока кода авторизации с помощью PKCE вместо использования MVC UI, если хотите. Это просто лишняя работа и сложность. Я бы порекомендовал вам просто стилизовать пользовательский интерфейс Identity Server MVC, чтобы он выглядел точно так же, как ваш интерфейс SPA. Это самый простой способ и тот путь, который я выбрал, когда делал проект с Identity Server (с Angular в качестве интерфейса).

...