1 votes

Comment puis-je éviter de coder en dur les identités des utilisateurs YubiKey dans la pile PAM ?

En Module PAM de Yubico semble nécessiter des modifications de la pile PAM pour chaque utilisateur qui sera authentifié avec une YubiKey. Plus précisément, il semble que l'identité du client de chaque utilisateur doit être ajoutée au bon fichier de configuration PAM avant que l'utilisateur puisse être authentifié.

Bien qu'il soit logique d'ajouter des clés autorisées à une base de données d'authentification telle que /etc/yubikey_mappings o ~/.yubico/authorized_yubikeys il semble que ce soit une mauvaise pratique de devoir modifier la pile PAM elle-même pour chaque utilisateur individuel. J'aimerais vraiment éviter d'avoir à coder en dur les identités des utilisateurs dans la pile PAM de cette façon.

Est-il possible d'éviter le codage en dur de l'adresse de l'utilisateur ? id au module pam_yubico.so lui-même ? Sinon, existe-t-il d'autres modules PAM qui permettent de tirer parti de l'authentification YubiKey sans codage en dur de la pile ?

4voto

CodeGnome Points 1961

Cette question n'a reçu aucune réponse ici sur SuperUser. Cependant, le réponse suivante a été reçu sur les forums de soutien de 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.

2voto

NSResponder Points 14459

Vous pouvez utiliser LDAP pour cela et associer l'utilisateur à son ID public en utilisant soit un attribut yubikey spécifique, soit un attribut existant. Le module Yubico PAM peut vérifier cet attribut et si la vérification du mappage est correcte et que l'OTP correct a été envoyé, le module renvoie OK. Un exemple :

# 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

Au lieu de yubi_attr vous pouvez utiliser un autre attribut.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X