Jwt-auth: [вопрос] Вариант использования Headless API

Созданный на 12 дек. 2019  ·  3Комментарии  ·  Источник: WP-API/jwt-auth

Архитектура потока авторизации в этом плагине великолепна; Я понимаю опасения по поводу безопасности. Хотя это отключает, возможно, основной вариант использования такой функции: Wordpress в качестве безголовой CMS.

Отключает безголовую аутентификацию CMS

Безголовая CMS потребует от пользователей входа в систему через username и password . Когда у пользователя есть JWT, он может отправлять аутентифицированные запросы к защищенным ресурсам, в безголовой среде CMS было бы запретительно и нелогично просить пользователей генерировать токены API.

Безопасность должна быть реализована с помощью привилегий RBAC, ролей и обязанностей пользователей, определяющих, что именно защищено в API. Проблемы безопасности могут быть смягчены с помощью очень строгих значений по умолчанию для RBAC. В Wordpress уже есть отличная структура ролей и обязанностей.

Для решения реальных проблем безопасности:

  • Долгоживущие токены? Сделайте их недолговечными токенами.
  • Опасения, что долгоживущие токены могут быть украдены? Так же как и токены API, нулевой аргумент.
  • Лучшие практики JWT диктуют краткосрочные tokens и долгоживущие refresh_tokens (токены обновления могут быть отозваны). Таким образом, это более безопасно, чем раздача токенов API с бесконечным сроком службы, которые могут быть потеряны.

Разве это не просто OAuth2?

Этот подход, по сути, представляет собой сценарий предоставления токена oAuth2 "personal access" . Таким образом, я бы поставил под сомнение преимущества такого подхода к серверу аутентификации пользовательского токена, как этот, по сравнению с надлежащей стандартной реализацией oAuth2? Если безопасность здесь является главной заботой, то этот подход действительно представляет риски для безопасности? например, проверенная в бою реализация oAuth2, такая как php-league-oatuh-2

Я вижу единственный жизнеспособный вариант использования текущего потока аутентификации application-to-application аутентификации? oAuth2 предлагает несколько методов потока аутентификации для предоставления токенов. Одним из них является то, что этот подход использует "personal access" , а другим является то, что я описываю токены "password access" . Полная реализация oAuth2 позволила бы реализовать оба этих сценария и многое другое...

Дальше

Мы считаем, что внедрение WP-API и, следовательно, модернизация экосистемы Wordpress в целом значительно ускорились бы, если бы такие вещи, как аутентификация API без сохранения состояния, были легко доступны для разработчиков.

Это всего лишь размышления, и я хотел бы обсудить и внести свой вклад!

Отличная работа!

wp-безголовая команда

Самый полезный комментарий

Я создавал нативные приложения (или пытался) еще до того, как REST API стал ядром. (т.е. лет)

Изначально единственным способом аутентификации и загрузки/создания контента для моего приложения было использование плагина OAuth1.0a, который запустила команда API.

Теперь у меня есть вещи, работающие для OAuth2.0 (опять же, еще одна функция, для которой требуется дополнительный плагин. Не знаю, попадет ли это когда-нибудь в ядро)

И теперь у нас есть JWT, который создает новые проблемы в том, как подключить мое приложение. Естественно, имя пользователя/пароль будут работать лучше, предоставляя токен. (К счастью, эта версия «WP-API» JWT поддерживает обновление токена. Другой широко используемый плагин JWT этого не делает)

Я не могу поверить в огромное количество упущенных возможностей (и времени), которые проходят из-за отсутствия надежной «безголовой»/мобильной реализации для аутентификации «из коробки» (в ядре).

Моему мобильному приложению требуется собственный плагин для выполнения своей работы и поддержки множества вещей, связанных с администрированием, и улучшений маршрута. пользовательские блоки и т. д. Я бы не хотел, чтобы пользователи/клиенты моего приложения загружали и устанавливали еще один «не совсем готовый» плагин.

Я просто хочу, чтобы существовало твердое (и «официальное») решение.

Все 3 Комментарий

Я создавал нативные приложения (или пытался) еще до того, как REST API стал ядром. (т.е. лет)

Изначально единственным способом аутентификации и загрузки/создания контента для моего приложения было использование плагина OAuth1.0a, который запустила команда API.

Теперь у меня есть вещи, работающие для OAuth2.0 (опять же, еще одна функция, для которой требуется дополнительный плагин. Не знаю, попадет ли это когда-нибудь в ядро)

И теперь у нас есть JWT, который создает новые проблемы в том, как подключить мое приложение. Естественно, имя пользователя/пароль будут работать лучше, предоставляя токен. (К счастью, эта версия «WP-API» JWT поддерживает обновление токена. Другой широко используемый плагин JWT этого не делает)

Я не могу поверить в огромное количество упущенных возможностей (и времени), которые проходят из-за отсутствия надежной «безголовой»/мобильной реализации для аутентификации «из коробки» (в ядре).

Моему мобильному приложению требуется собственный плагин для выполнения своей работы и поддержки множества вещей, связанных с администрированием, и улучшений маршрута. пользовательские блоки и т. д. Я бы не хотел, чтобы пользователи/клиенты моего приложения загружали и устанавливали еще один «не совсем готовый» плагин.

Я просто хочу, чтобы существовало твердое (и «официальное») решение.

Я полностью согласен. Wordpress позиционируется как лидер на арене безголовых CMS. Кажется, что основная команда пытается это сделать, но, может быть, только для того, чтобы служить конкретному варианту использования для wordpress.com? Не уверен.

В настоящее время мы разрабатываем изоморфный клиент для этой цели. Наряду с реагирующими хуками и провайдерами. https://github.com/wp-headless/fetch. Возможно, нам придется написать собственный плагин аутентификации JWT. Мои мысли о том, как это должно выглядеть:

  • Следуйте спецификациям oAuth2 (зачем создавать собственный поток аутентификации?)
  • Имейте несколько методов предоставления токенов: password , machine-to-machine , api-key и т. д.
  • зависят от ведущих пакетов, которые хорошо протестированы.

Здесь я застрял с попыткой внедрить систему регистрации/аутентификации пользователей через WP REST API, только чтобы узнать, что команда WP заново изобретает колесо , изобретая новое колесо.

Была ли эта страница полезной?
0 / 5 - 0 рейтинги