Создайте группу доступа и укажите там имя аккаунта в виде
[#username#]_adm (или другой
постфикс\префикс):
Таким образом каждый пользователь входящий в группу доступа получит
возможность подключаться с любым аккаунтом, имя которого совпадает
с логином пользователя+постфикс, если такие УЗ существуют в
системе.
То есть пользователь ivan увидит аккаунт
ivan_adm, а пользователь sergey
увидит sergey_adm
На JumpServer копируем файл из контейнера jms_core в папку
/opt/jumpserver/:
docker cp jms_core:/opt/jumpserver/apps/perms/utils/asset_perm.py /opt/jumpserver/
Редактируем файл в 2 местах:
Примерно на 18й строчке добавляем одну строку
USERNAME_TEMPLATE_TOKEN = '[#username#]' чтобы
получилось так:
class PermAssetDetailUtil:
""" 资产授权账号相关的工具 """
USERNAME_TEMPLATE_TOKEN = '[#username#]'
def __init__(self, user, asset_or_id):
self.user = user
if isinstance(asset_or_id, Asset):
self.asset_id = asset_or_id.id
self.asset = asset_or_id
else:
self.asset_id = asset_or_id
Примерно на 136 строчке добавляем
if alias ==
AliasAccount.USER and user.username in
username_accounts_mapper:
_accounts =
username_accounts_mapper[user.username]
elif
cls.USERNAME_TEMPLATE_TOKEN in alias:
rendered_username = alias.replace(cls.USERNAME_TEMPLATE_TOKEN,
user.username)
_accounts =
username_accounts_mapper.get(rendered_username, [])
чтобы получилось так:
def map_alias_to_accounts(cls, alias_action_bit_mapper, alias_date_expired_mapper, asset, user):
username_accounts_mapper = defaultdict(list)
cleaned_accounts_expired = defaultdict(list)
asset_accounts = asset.all_valid_accounts.all()
# 用户名 -> 账号
for account in asset_accounts:
username_accounts_mapper[account.username].append(account)
cleaned_accounts_action_bit = defaultdict(int)
for alias, action_bit in alias_action_bit_mapper.items():
account = None
_accounts = []
if alias == AliasAccount.USER and user.username in username_accounts_mapper:
_accounts = username_accounts_mapper[user.username]
elif cls.USERNAME_TEMPLATE_TOKEN in alias:
rendered_username = alias.replace(cls.USERNAME_TEMPLATE_TOKEN, user.username)
_accounts = username_accounts_mapper.get(rendered_username, [])
elif alias in username_accounts_mapper:
_accounts = username_accounts_mapper[alias]
elif alias in ['@INPUT', '@ANON', '@USER']:
account = VirtualAccount.get_special_account(alias, user, asset, from_permed=True)
elif alias.startswith('@'):
continue
Сохраняем файл и подключаем его в compose файле из текущего дистрибутива.
nano /opt/jumpserver-installer-v4.10.16/compose/core.yml
Добавляем в файле ссылку на отредактированный файл
asset_perm.py:
services:
core:
image: ${REGISTRY:-docker.io}/jumpserver/core:${VERSION}
container_name: jms_core
hostname: jms_core
ulimits:
core: 0
restart: always
command: start web
env_file:
- ${CONFIG_FILE}
environment:
TIME_ZONE: ${TZ:-Asia/Shanghai}
volumes:
- ${CONFIG_DIR}/certs:/opt/jumpserver/data/certs
- ${VOLUME_DIR}/core/data:/opt/jumpserver/data
- /opt/jumpserver/asset_perm.py:/opt/jumpserver/apps/perms/utils/asset_perm.py
healthcheck:
test: "check http://localhost:8080/api/health/"
interval: 10s
timeout: 5s
retries: 3
start_period: 90s
networks:
- net
После правки compose файла нужно перезапустить JumpServer:
jmsctl restart
| << Примеры API запросов (получение списка пользователей и устройств, список команд в сессии) |
Вы начали тестирование JumpServer PAM EE и столкнулись с проблемой? Наш процесс включает в себя организацию групп переписок в электронной почте или групп в Telegram для оперативного решения вопросов. Если вы уверены, что вас не добавили в такую группу, обратитесь к вашему поставщику или к нам по адресу support@afi-d.ru
В рамках действующей подписки на техническую поддержку мы обучим ваших специалистов установке, настройке, адмнистрированию JumpServer PAM, а также восстановлению после ошибок и аварий.
Обучение проходит онлайн, по заранее согласованному плану, включает в себя обязательную проверку знаний на практике с выдачей именных сертификатов (в случае успешной сдачи экзамена).
Посетите наш канал на RuTube с видео-инструкциями по настройке всех разделов JumpServer PAM. Видео на русском языке и актуализируются с выходом новых версий.
Мысль о внедрении непростой, но критичной для бизнеса PAM-системы может пугать кажущейся сложностью настройки системы, обучением администраторов и специалистов ИБ, изменениями в процессах работы с учетными записями.
Чтобы внедрение и настройка JumpServer Community Edition были комфортными, а также чтобы вы всегда могли обратиться за помощью к профессионалам, AFI Distribution предлагают годовую подписку на техническую поддержку.
Пакет поддержки в 1.5 млн рублей за экземпляр JumpServer Community Edition (без ограничений на количество пользователей и целевых систем) включает всё необходимое для использования PAM: