Как избежать жесткого кодирования идентификаторов пользователей YubiKey в стеке PAM?

модуль Yubico PAM, похоже, требует изменений в стеке PAM для каждого пользователя, который будет аутентифицироваться с помощью YubiKey. В частности, кажется, что идентификатор клиента каждого пользователя должен быть добавлен в правильный файл конфигурации PAM, прежде чем пользователь сможет пройти проверку подлинности.

хотя имеет смысл добавить авторизованные ключи в базу данных аутентификации, например /etc/yubikey_mappings или ~/.yubico/authorized_yubikeys, Кажется, что плохая практика-редактировать сам стек PAM для каждого человека пользователь. Я определенно хотел бы избежать необходимости жестко кодировать удостоверения пользователей в стек PAM таким образом.

Итак, можно ли избежать жесткого кодирования id параметр pam_yubico.так сам модуль? Если нет, есть ли другие модули PAM, которые могут использовать аутентификацию YubiKey без жесткого кодирования стека?

30
задан CodeGnome
29.04.2023 3:00 Количество просмотров материала 2979
Распечатать страницу

2 ответа

этот вопрос не получил ответов на SuperUser. Тем не менее,ответ было получено на форумах поддержки Yubico:

The id parameter to the PAM module indicates the API key ID, not the
user ID. This ID is returned with the key you get from the "Get API Key"
form if you're using the public service, or it's in the "clients" table
for your internal validation server, along with the API key.

To clarify, when documentation talks about a "client", that's a piece
of software requesting authentication services from the API -- a user
submits an OTP to the client, which submits it to the server in a request
signed with the API key.
4
отвечен CodeGnome 2023-04-30 10:48

вы можете использовать LDAP для этого и сопоставить пользователя с его публичным идентификатором либо с помощью определенного атрибута yubikey, либо с помощью существующего атрибута. Модуль Yubico PAM может проверить для этого атрибута и если проверка сопоставления в порядке, и корректный OTP был передан тогда, модуль возвращает OK. Пример:

# Fetch LDAP password + OTP, verify OTP and move on ('required' control value).
# LDAP password is stripped and passed on.
auth required pam_yubico.so id=1234 ldap_uri=ldaps://fqdn.of.ldap.server:port [ldapdn=ou=People,DC=example,DC=com] user_attr=uid yubi_attr=yubikeyid

вместо yubi_attr можно использовать другой атрибут.

2
отвечен AutoStatic 2023-04-30 13:05

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх