При определенных условиях синхронизация групп 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
удаление членства в группе A неверно
У меня пока нет второй синхронизированной группы B. В противном случае — да.
1 лайк