Группа OpenID Connect может исключить пользователей из всех несинхронизированных групп

При определенных условиях синхронизация групп OpenID Connect выкидывает пользователей из всех групп Discourse, не синхронизированных с OIDC.

Логи и общая ситуация указывают на то, что это происходит, когда пользователь теряет одну (несинхронизированную) группу OIDC. Система, по-видимому, намерена выкинуть пользователя из этой единственной группы (которая не существует), так как использует название потерянной группы в примечании об изменении.
Однако вместо этого она выкидывает их из всех несинхронизированных групп.

Учитывая потерю доступа, которую это может вызвать, я считаю эту ошибку довольно приоритетной.

Кстати, есть ли глобальный журнал изменений членства в группах? Это значительно упростило бы восстановление, но я нашёл только журнал для каждой группы в отдельности.

Можете ли вы сообщить, верна ли эта сводка?

  • Предыдущее состояние:
    • Пользователь bilbo состоит в группах A, B, C на Discourse
    • Группы B и C настроены на автоматическое членство с OIDC-группами b и c (соответственно)
    • Утверждение OpenID Connect groups claim установлено, например, в значение groups
  • Выполненное действие:
    • Пользователь bilbo входит в систему через OIDC
    • Утверждение OIDC содержит группы c, d
    • (Группа D не существует на Discourse)
    • Discourse удаляет bilbo из групп A и B
      :red_exclamation_mark: удаление членства в группе A неверно

У меня пока нет второй синхронизированной группы B. В противном случае — да.

1 лайк