Настройка аутентификации SSO на Proxmox через Authentik [закрыто]Python

Программы на Python
Anonymous
Настройка аутентификации SSO на Proxmox через Authentik [закрыто]

Сообщение 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]


Подробнее здесь: https://stackoverflow.com/questions/799 ... -authentik

Вернуться в «Python»