Я работаю над реализацией SSO-аутентификации в Proxmox через Authentik и столкнулся с постоянной проблемой.
В настоящее время все группы, к которым принадлежит пользователь, экспортируются в Proxmox. Требование состоит в том, что если пользователь принадлежит к нескольким группам, следует экспортировать только группу с наивысшим приоритетом.
Чтобы справиться с этим, я написал фильтр Python, который назначает приоритет группам на основе их уровня разрешений и возвращает только группу с самым высоким приоритетом. Я прилагаю сценарий для справки.
GROUP_PRIORITY = {
"Infr_Adm": 3,
"Infr_Sen": 2,
"Infr_Staf": 1,
}
ALLOWED_GROUPS = set(GROUP_PRIORITY.keys())
# --- Retrieve the user's groups ---
user_group_names = [g.name for g in user.ak_groups.all()]
matched_groups = [g for g in user_group_names if g in ALLOWED_GROUPS]
# --- Block if the user belongs to no allowed group ---
if not matched_groups:
raise Exception(
"Access denied: the user does not belong to any allowed group."
)
# --- Select the highest-priority group (simulating removal of lower-priority groups) ---
# We simulate “removal of lower-priority groups” by keeping only the highest one
final_group_name = max(matched_groups, key=lambda g: GROUP_PRIORITY[g])
# --- Return only this group for Proxmox ---
return [final_group_name]
Подробнее здесь: https://stackoverflow.com/questions/799 ... -authentik
Настройка аутентификации SSO на Proxmox через Authentik [закрыто] ⇐ Python
Программы на Python
-
Anonymous
1772618603
Anonymous
Я работаю над реализацией SSO-аутентификации в Proxmox через Authentik и столкнулся с постоянной проблемой.
В настоящее время все группы, к которым принадлежит пользователь, экспортируются в Proxmox. Требование состоит в том, что если пользователь принадлежит к нескольким группам, следует экспортировать только группу с наивысшим приоритетом.
Чтобы справиться с этим, я написал фильтр Python, который назначает приоритет группам на основе их уровня разрешений и возвращает только группу с самым высоким приоритетом. Я прилагаю сценарий для справки.
GROUP_PRIORITY = {
"Infr_Adm": 3,
"Infr_Sen": 2,
"Infr_Staf": 1,
}
ALLOWED_GROUPS = set(GROUP_PRIORITY.keys())
# --- Retrieve the user's groups ---
user_group_names = [g.name for g in user.ak_groups.all()]
matched_groups = [g for g in user_group_names if g in ALLOWED_GROUPS]
# --- Block if the user belongs to no allowed group ---
if not matched_groups:
raise Exception(
"Access denied: the user does not belong to any allowed group."
)
# --- Select the highest-priority group (simulating removal of lower-priority groups) ---
# We simulate “removal of lower-priority groups” by keeping only the highest one
final_group_name = max(matched_groups, key=lambda g: GROUP_PRIORITY[g])
# --- Return only this group for Proxmox ---
return [final_group_name]
Подробнее здесь: [url]https://stackoverflow.com/questions/79900743/setting-up-sso-authentication-on-proxmox-via-authentik[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия