Единый вход и многое другое с OAuth2 в XenForo 2.3

1699434672871.png Мы приближаемся к завершению серии "Вы видели…?" для XenForo 2.3. Хотя это может показаться горько-сладким моментом, мы специально оставили одно из самых захватывающих открытий до последнего. В ближайшие недели мы, возможно, углубимся в несколько других разнообразных изменений и улучшений и предоставим более ориентированный на разработчиков обзор. Однако нашей основной целью является запуск XenForo 2.3 на XenForo.com к концу ноября. За этим важным событием мы с радостью поделимся с вами еще парой сюрпризов, которые включат обзор последних улучшений в XenForo Resource Manager, Enhanced Search и Media Gallery 2.3.

Но вернемся к сегодняшнему дню, и это не только захватывающее открытие, но и сигнал о реализации нашего самого популярного предложения за все время. XenForo сможет действовать как сервер OAuth2, и это открывает целый ряд продвинутых вариантов использования:
  • Единый вход между вашим форумом и другим форумом XenForo
  • Единый вход между вашим форумом и другим программным обеспечением
  • Создание другого интерфейса для вашего форума, например, одностраничного приложения
  • Создание собственного приложения для смартфона
  • Интеграция между вашим форумом и другим приложением
  • Доступ к REST API XenForo от имени конкретного пользователя с помощью токена OAuth
Как всегда, давайте посмотрим, как настроить это в XenForo 2.3. В следующем примере мы настроим клиент OAuth2 на основном экземпляре XenForo и используем вторичный экземпляр XenForo для использования этого основного экземпляра в качестве провайдера связанных учетных записей.
Вы можете добавить столько клиентов OAuth2, сколько вам нужно, и это можно сделать из панели управления администратора в разделе Настройка > Клиенты OAuth2 (в котором перечислены все клиенты, которые вы создали), нажав “Добавить клиента OAuth2”.
А вот как это выглядит, когда все заполнено:
1699435154990.png
Большинство из этого является самоочевидным. Название, Описание, URL домашней страницы и URL изображения используются для брендинга любой страницы авторизации OAuth. Давайте более подробно рассмотрим пару других входов на этой странице.

Тип клиента​


Разница между типами клиентов "Публичный" и "Конфиденциальный" может быть не сразу очевидна, но она критически важна. Для подавляющего большинства интеграций OAuth, с которыми вы могли столкнуться в прошлом, вам, скорее всего, более знаком вариант по умолчанию, который является типом “Конфиденциальный”.

Для большинства приложений тип “Конфиденциальный” подходит. Это означает, что вы можете сохранить секрет клиента конфиденциальным - другими словами, секрет клиента не хранится или не раскрывается где-либо клиентом. Это было бы уместно для связанной учетной записи от XenForo к XenForo.

Для ситуаций, когда хранение секрета в клиентском приложении не безопасно (например, в JavaScript, одностраничных приложениях или собственных приложениях), вы должны выбрать тип клиента ‘Публичный’. При использовании типа ‘Публичный’ вы используете поток авторизации . Вместо обмена секретом вы создаете случайную строку. Эта случайная строка служит безопасным способом подтверждения вашей личности в процессе авторизации и обмена токенами.

Следует отметить, что PKCE требуется для публичных клиентов и рекомендуется для конфиденциальных клиентов. Более глубокое погружение в PKCE выходит за рамки этого сообщения, но будьте уверены, что все будет задокументировано в руководстве и/или документации для разработчиков до выпуска XenForo 2.3.

Конечные точки авторизации/токена/отзыва​

Это просто конечные точки, с которыми вам нужно связаться для авторизации, получения токена и отзыва токенов в соответствии со спецификациями OAuth 2.0.

Перенаправление URI​

Здесь вы можете добавить один или несколько URI перенаправления. Это утвержденные URI перенаправления, которые может использовать вторичный экземпляр. Иногда вам может потребоваться более одного URI перенаправления для поддержки разных доменов или разных конечных точек, которые могут быть вызваны в процессе. В этом примере, поскольку мы будем связываться со вторым форумом XenForo, его connected_account.php достаточно использовать в качестве URI перенаправления.
После создания клиента вы сможете просмотреть свои учетные данные:
1699435669945.png
Вооружившись этими данными, мы теперь можем настроить провайдера связанных учетных записей на вторичном экземпляре XenForo.
1699435680005.png
Сторона связанных учетных записей все очень знакома, если вы когда-либо настраивали любые из существующих ранее. Главное - убедиться, что вы правильно указали URL форума.
Но вам действительно хочется увидеть процесс авторизации, не так ли?
Через страницу входа, регистрации или Учетная запись > Связанные учетные записи, как только вы нажмете кнопку, соответствующую вашему новому провайдеру связанных учетных записей XenForo, вы будете перенаправлены на страницу авторизации:
1699435783826.png
Нажатие на кнопку “Авторизовать” завершит обычные шаги для вашей аутентификации с использованием OAuth и перенаправит вас обратно:
1699435826151.png
Хотя это само по себе захватывающе, это всего лишь один из многих вариантов использования, которые открывает наша реализация OAuth. И на этом мы остановимся на этой неделе. На следующей неделе мы сосредоточимся на том, что нового для разработчиков в XenForo 2.3. Это позволит нам более подробно рассмотреть некоторые мелкие изменения, ориентированные на разработчиков, включая более подробный взгляд на некоторые более продвинутые части OAuth, такие как PKCE, аутентификация против REST API и токены обновления.
Если разработчики хотят, чтобы мы подробнее рассказали о чем-то конкретном, о чем мы могли упомянуть за последние несколько недель, пожалуйста, дайте нам знать.
 
Назад
Сверху Снизу