Аутентификация Microsoft

:discourse: Хостится нами? Этот плагин доступен в наших тарифных планах Business и Enterprise. Вход через Amazon и Microsoft | Discourse — цивилизованное обсуждение

:discourse2: Краткое описание Включает возможность входа пользователей с использованием их учетных записей Microsoft (также известных как учетные записи Office 365 или Microsoft 365)
:open_book: Руководство по установке Этот плагин входит в состав ядра Discourse. Отдельная установка плагина не требуется.

Краткое описание

Аутентификация Microsoft позволяет пользователям входить на ваш форум Discourse, используя свои учетные записи Microsoft (также известные как учетные записи Office 365 или Microsoft 365). Это упрощает процесс входа для организаций, использующих сервисы Microsoft.

Возможности

  • Позволяет пользователям входить с использованием учетных данных Microsoft
  • Поддерживает конфигурации как для нескольких арендаторов (multi-tenant), так и для одного (single-tenant)
  • Интегрируется с Microsoft Azure Active Directory
  • Упрощает регистрацию пользователей и вход в систему

Настройка

Чтобы настроить аутентификацию Microsoft для вашего форума Discourse:

  1. Перейдите на страницу регистрации приложений портала Azure

  2. Зарегистрируйте новое приложение:

    • Выберите имя (обычно используется название вашего сайта)
    • В разделе «Поддерживаемые типы учетных записей» выберите наиболее подходящий для ваших целей вариант

  3. Добавьте ваш сайт в качестве URI перенаправления для веб-приложения в следующем формате:

    • https://your.discourse.forum/auth/microsoft_office365/callback

  4. Сохраните изменения

  5. В меню левой боковой панели перейдите в раздел Сертификаты и секреты и нажмите Новый секрет клиента

    • Добавьте простое описание
    • В поле «Срок действия» выберите 24 месяца (обратите внимание: его необходимо будет обновлять)
    • Скопируйте Значение (это и есть секрет приложения) и сохраните его для настроек плагина
  6. Перейдите в раздел Обзор (в левой боковой панели) и скопируйте Идентификатор приложения (ID клиента)

  7. В административной панели Discourse перейдите в Настройки и найдите «microsoft auth»

  8. Введите Идентификатор приложения и Секрет из предыдущих шагов

Проблемы с аутентификацией single-tenant

Если вы настроили свое приложение Microsoft как single_tenant, некоторые пользователи могут испытывать проблемы при входе в систему. Это происходит потому, что электронные адреса, используемые для входа, считаются ненадежными, и система не может автоматически связать их с существующими учетными записями Discourse.

Чтобы решить эту проблему, пользователи могут:

  1. Найти раздел «Уже есть аккаунт?» в нижней части формы регистрации
  2. Нажать на предоставленную ссылку, чтобы пройти процесс привязки аккаунта
  3. Завершить шаги аутентификации, чтобы связать свою учетную запись Microsoft с существующей учетной записью Discourse

Другой вариант — включить настройку сайта microsoft auth email verified, если администраторы уверены, что у всех пользователей подтверждены адреса электронной почты. Это гарантирует, что возвращающиеся пользователи с существующими аккаунтами не создадут дубликаты при аутентификации через Microsoft.

Дополнительные параметры конфигурации

Вы можете обновить все настройки аутентификации Microsoft, перейдя в область Администратор > Настройки и найдя «microsoft auth».

Для конфигураций single-tenant вам понадобится идентификатор вашего арендатора, который можно найти в свойствах арендатора портала Azure.

Дополнительные ресурсы

25 лайков

У меня возникли проблемы с использованием этого плагина.
Не могли бы вы дать мне несколько советов?

Поскольку я уже дважды ошибался при обновлении конфигурации для этого плагина, я создал этот PR:

https://github.com/discourse/discourse-microsoft-auth/pull/61

Проблема в том, что панель приложения Microsoft предлагает три похожих поля для «Секрета»: Client ID, Value и Secret ID. Без пояснений я оба раза выбирал не то поле, и подозреваю, что я не одинок в этом!

Только что попробовал этот плагин, и он не работает для одиночного арендатора.

Почему?

option :client_options,
             site: "https://login.microsoftonline.com",
             authorize_url: "/common/oauth2/v2.0/authorize",
             token_url: "/common/oauth2/v2.0/token"

Проблема в слове “common”.
Похоже, его нужно заменить на ID арендатора для одиночного арендатора.
Если у вас есть учётная запись Microsoft, вы найдёте свой ID арендатора здесь: Microsoft Azure

Я пока не пробовал внести это изменение самостоятельно. Возможно, попробую.
Если нет, и вы тоже планируете использовать это для одиночного арендатора, не тратьте время — сейчас это не сработает.

См. прикреплённое изображение ниже в качестве примера ошибки, которую вы получите.
image

Хорошо, я никогда не программировал на Ruby, а с программированием и работой с техническими вещами я сталкивался несколько лет назад. Но всё готово. Теперь это работает и для конфигураций Single Tenant.

3 лайка

Извините за столь поздний ответ, но вышеупомянутый PR уже принят!

2 лайка

Ура!

Мой первый вклад в сообщество. И, думаю, не последний. :slight_smile:

2 лайка

:partying_face: Этот плагин теперь включён в ядро Discourse в рамках Bundling more popular plugins with Discourse core. Если вы ведёте собственный хостинг и используете этот плагин, вам нужно удалить его из файла app.yml перед следующим обновлением.