Le fichier de configuration du système PAM

Les paramètres suivants sont disponibles lors de la configuration de IBM® Verify Gateway for Linux® PAM and AIX® PAM (Pluggable Authentication Modules).

Sous Linux®, tous les services compatibles PAM ont un fichier dans /etc/pam.d portant le même nom que le service. Par exemple, sous Redhat 7, le contenu du fichier de service sshd dans /etc/pam.d/sshd est le suivant :
#%PAM-1.0
auth       required     pam_sepermit.so
auth       substack     password-auth
auth       include      postlogin
...
Sous AIX, tous les services compatibles PAM se trouvent dans le fichier /etc/pam.conf . Par exemple, sous AIX 7.2 , le fichier /etc/pam.conf contient:
#
# Authentication
#
authexec      auth     required      pam_aix
dtaction      auth     required      pam_aix
dtsession     auth     required      pam_aix
...
Chaque ligne est au format suivant :
module_interface control_flag module_name [module_arguments]
Remarque: Le signe dièse (#) indique le début d'un commentaire dans les configurations PAM. Il peut avoir des conséquences inattendues sur votre configuration.

Interface du module

Le type d'interface de module auth seulement est pris en charge par ce module pam_ibm_auth.so.

Nom du module

Le nom du module est pam_ibm_auth.so.

Arguments du module

L'exemple suivant présente une entrée pour le module PAM avec des arguments :
auth sufficient pam_ibm_auth.so auth_method=choice-then-otp 
Les arguments ci-après sont admis par le module pam_ibm_auth.so.
Remarque: Le module PAM requiert que les arguments soient placés entre crochets s'ils contiennent un espace. Par exemple :
[otp-prompt=Enter OTP %C- ]
user_env= {name}
Ajouter une variable d'environnement PAM contenant " {name} = {user-json} " pour les modules PAM en aval. La valeur de {user-json} est une chaîne contenant les informations de l'utilisateur IBM Verify au format JSON. Utilisé principalement pour aider les développeurs du module PAM à intégrer le module PAM de IBM.
prompt_choice_start= {prompt}
La chaîne {prompt} est générée immédiatement avant la liste des options 2FA . Par exemple, si {prompt} contient "Choose one of: \n", vous pouvez voir:
Choose one of:
1) user@us.ibm.com
2) 15551234567
3) TOTP
Your choice (1->3):
prompt_choice_end= {prompt}
La chaîne {prompt} est générée immédiatement avant la liste des options 2FA . Toute valeur %T dans cette {prompt} est remplacée par un nombre représentant le nombre total de choix. Par exemple, si {prompt} contient "Your choice (1-> %T):", vous pouvez voir:
Choose one of:
1) user@us.ibm.com
2) 15551234567
3) TOTP
Your choice (1->3):
prompt_trans_email= {prompt}
prompt_trans_sms= {prompt}
prompt_totp= {prompt}
prompt_email= {prompt}
prompt_sms= {prompt}
voix_primaire= {prompt}
présence_du_dispositif_de_primaire= {prompt}
prompt_device_biomertic= {prompt}
Ces arguments personnalisent l'option d'invite pour chaque type 2FA . Les substitutions suivantes peuvent être appliquées:
  • %I Index de l'option 2FA
  • %N Valeur associée au nom de l'option 2FA (par exemple, une adresse électronique)
  • %T Nombre total de choix
Par exemple, si prompt_trans_sms = "%I) SMS non validé %N \n", vous pouvez voir:
Choose one of:
1) user@us.ibm.com
2) Unvalidated SMS 15551234567
3) TOTP
Your choice (1->3):
Remarque: Ces options peuvent rendre les arguments du module PAM très longs et difficiles à gérer. Pour surmonter ce nombre d'arguments de module pouvant être déplacés dans le fichier /etc/pam_ibm_auth.json , voir la fonction "additional-args" sous l'objet "pam" dans ce fichier.
device_prompt= {prompt}
Si cette option est définie, le message spécifié s'affiche pour l'utilisateur lorsqu'il doit l'approuver sur un appareil 2FA . L'utilisation de cette option avec SSH. présente certaines limitations. Certains serveurs SSH transmettent un message (sans demander d'entrée), d'autres non. Par défaut, aucune invite n'est envoyée, elle dépend de l'appareil de l'utilisateur pour l'alerte.
nom_utilisateur_attr= {attr_name}

Associe le nom d'utilisateur fourni à PAM à un utilisateur IBM Verify , en fonction d'un attribut contenu dans l'utilisateur Verify . Par exemple, le nom de l'utilisateur PAM peut être ajouté à un attribut personnalisé de l'utilisateur Verify appelé autre nom d'utilisateur. Cet attribut personnalisé spécifie

user_name_attr=urn:ietf:params:scim:schemas:extension:ibm:2.0:User:customAttributes.otherUserName

Par défaut, l'attribut utilisateur "userName" est utilisé pour localiser l'utilisateur Verify qui correspond au nom d'utilisateur PAM.

gecos_match= {regex}
gecos_replace= {replace_format}
Ces arguments sont utilisés comme alternative à la méthode gecos_field/gecos_separator . {regex} est utilisé pour correspondre à la valeur GECOS de l'utilisateur et extrait la valeur à fournir au format gecos_replace . Voir la page de manuel regex (7) pour plus de détails sur regex.

La valeur {replace_format} est utilisée pour générer le nom de l'utilisateur Verify . Dans le site {replace_format} , tout $N, où N est compris entre 1 et 9, est remplacé par l'atome de regex correspondant, (pat), de la correspondance {regex}.

Par exemple :
[gecos_match=^([^/\]+)/([^/\]+)/([^/\]+)] [gecos_replace=$3/$1@MyRealm]
Remarque: lors de l'utilisation de la méthode PAM [ arg ], tous les caractères imbriqués dans l'arg doivent être placés entre guillemets à l'aide de \.

Si la zone GECOS est "Test User/+15551234567/ibm.com" , l'utilisateur généré est "ibm.com/Test User@MyRealm"

débogage
Cet argument est une option de module PAM standard. Utilisez l'appel syslog() pour consigner des informations de débogage dans les fichiers journaux du système.
nowarn
Cet argument est une option de module PAM standard. L'option nowarn désactive la génération d'avertissements, notamment relatifs à l'expiration des mots de passe.
ibm_auth_config={config-file}
Si rien n'est spécifié, la valeur par défaut est /etc/pam_ibm_auth.json pour les systèmes Linux et UNIX™. Ce fichier contient la configuration de l'API d'authentification IBM qui contient les détails de connexion du serveur Verify . Voir Le fichier de configuration du module.
auth_method={auth_method}
Cet argument est facultatif et la méthode par défaut est la validation des mots de passe à utilisation unique limitée dans le temps (TOTP). Cet argument spécifie la méthode d'authentification qui est requise pour authentifier les utilisateurs. La liste de méthodes d'authentification ci-dessous inclut en premier les méthodes qui acceptent un mot de passe. Dans ces méthodes, le mot de passe fait référence au mot de passe de l'utilisateur Verify et non au mot de passe UNIX.
Remarque: Si un mot de passe a été fourni à un module PAM précédemment démarré, par exemple pam_unix.so, ce mot de passe est utilisé dans tout Verify auth methods qui implique un mot de passe. Si le mot de passe fourni précédemment et le mot de passe Verify ne correspondent pas, l'authentification échoue. Ce problème est une limitation connue.
Tableau 1. Valeurs acceptables
Valeur Descriptif
Mot de passe Requiert un mot de passe Verify valide.
password-and-totp Un mot de passe Verify plus une valeur TOTP doit être fourni en une seule valeur. Vous pouvez indiquer si le mot de passe ou la valeur de mot de passe à utilisation unique limitée dans le temps (TOTP) apparaît en premier dans la valeur et configurer le caractère utilisé pour séparer les deux valeurs. Par défaut, le format est TOTP:password.
password-then-totp Un mot de passe Verify doit être fourni et, s'il est correctement fourni, une valeur TOTP est demandée et validée.
totp Une valeur de mot de passe à utilisation unique limitée dans le temps (TOTP) est demandée, puis validée.
password-then-smsotp Un mot de passe Verify doit être fourni et, s'il est correctement fourni, un message SMS est envoyé à l'appareil mobile enregistré de l'utilisateur avec une valeur de mot de passe à utilisation unique. Ensuite, le module PAM demande la valeur SMSOTP à l'utilisateur et la valide.
smsotp La validation du mot de passe à utilisation unique envoyé par SMS est initiée et la valeur de mot de passe à utilisation unique envoyée par SMS est demandée, puis validée.
password-then-emailotp Un mot de passe Verify doit être fourni et, s'il est correctement fourni, un message électronique est envoyé à l'utilisateur avec une valeur de mot de passe à utilisation unique. Le module PAM demande la valeur EmailOTP et la valide.
emailotp La validation du mot de passe à utilisation unique envoyé par courrier électronique est initiée et le module PAM demande la valeur de mot de passe à utilisation unique envoyée par courrier électronique, puis la valide.
password-then-choice-then-otp Un mot de passe Verify doit être fourni et, s'il est correctement fourni, l'utilisateur est invité à choisir l'une de ses inscriptions à l'authentification par mot de passe à utilisation unique. Une fois le choix effectué, la validation du mot de passe à utilisation unique est initiée et l'utilisateur est invité à entrer la valeur de mot de passe à utilisation unique.
Remarque :
  • Si l'utilisateur est inscrit à une seule méthode d'authentification par mot de passe à utilisation unique (OTP), l'étape de choix est ignorée et l'utilisateur est directement invité à entrer la valeur de mot de passe à utilisation unique.
  • Si l'utilisateur n'est pas inscrit à une méthode d'authentification par mot de passe à utilisation unique (OTP), le paramètre "reject-on-missing-auth-method" est appliqué.
  • Si l'option "add_devices_to_choice" est activée, les options d'appareil sont ajoutées à la liste. Reportez-vous à la méthode d'authentification de l'appareil pour des détails sur les options ajoutées.
  • Si l'option "transients_in_choice" est activée, les sources de courriers électroniques et de SMS transitoires sont répertoriées en tant qu'options.
  • Si l'option "voice_in_choice" est activée, l'entrée Mot de passe à utilisation unique envoyé par message vocal est répertoriée en tant qu'option.
choice-then-otp L'utilisateur est invité à choisir l'une de ses inscriptions à l'authentification par mot de passe à utilisateur unique (OTP). Une fois le choix effectué, la validation du mot de passe à utilisation unique est initiée et l'utilisateur est invité à entrer la valeur de mot de passe à utilisation unique.
Remarque :
  • Si l'utilisateur est inscrit à une seule méthode d'authentification par mot de passe à utilisation unique (OTP), l'étape de choix est ignorée et l'utilisateur est directement invité à entrer la valeur de mot de passe à utilisation unique ou la vérification d'appareil.
  • Si l'utilisateur n'est pas inscrit à une méthode d'authentification par mot de passe à utilisation unique (OTP), le paramètre reject-on-missing-auth-method est appliqué.
  • Si l'option "add_devices_to_choice" est activée, les options d'appareil sont ajoutées à la liste. Reportez-vous à la méthode d'authentification de l'appareil pour des détails sur les options ajoutées.
  • Si l'option "transients_in_choice" est activée, les sources de courriers électroniques et de SMS transitoires sont répertoriées en tant qu'options.
  • Si l'option "voice_in_choice" est activée, l'entrée Mot de passe à utilisation unique envoyé par message vocal est répertoriée en tant qu'option.
password-then-device Un mot de passe Verify doit être fourni et, s'il est correctement fourni, l'utilisateur est invité à se valider à l'aide de l'application IBM Verify sur son téléphone.
périphérique L'utilisateur est invité à se valider lui-même à l'aide de l'application IBM Verify sur son téléphone. Si plusieurs appareils sont disponibles, l'utilisateur doit effectuer un choix.
Remarque: l'option "add_devices_to_choice="détermine s'il faut utiliser fingerprint ou userPresence. L'un de ces deux attributs seulement peut être utilisé pour un appareil particulier.
password-then-transsmsotp Un mot de passe Verify doit être fourni et, s'il est correctement fourni, l'utilisateur est invité à fournir le mot de passe à utilisation unique envoyé par SMS à son téléphone mobile. Le numéro de téléphone est celui qui est défini dans l'enregistrement utilisateur.
transsmsotp L'utilisateur est invité à fournir le mot de passe à utilisation unique envoyé par SMS sur son téléphone mobile. Le numéro de téléphone est celui qui est défini dans l'enregistrement utilisateur.
password-then-transemailotp Un mot de passe Verify doit être fourni et, s'il est correctement fourni, l'utilisateur est invité à fournir le mot de passe à utilisation unique qui lui a été envoyé par courrier électronique. L'adresse électronique est celle qui est définie dans l'enregistrement utilisateur.
transemailotp L'utilisateur est invité à fournir le mot de passe à utilisation unique qui lui a été envoyé par courrier électronique. L'adresse électronique est celle qui est définie dans l'enregistrement utilisateur.
voiceotp L'utilisateur reçoit un appel sur son téléphone et un message vocal lui transmet la valeur Mot de passe à utilisation unique envoyé par message vocal à utiliser pour valider la connexion.
mot de passe-puis-voiceotp Un mot de passe IBM Verify doit être fourni. S'il est correctement fourni, un appel est effectué au téléphone de l'utilisateur et un message vocal informe l'utilisateur de la valeur OTP que muse doit être utilisée pour valider la connexion.
mot-de-passe-et-totp-ou-dispositif Si une valeur TOTP est détectée dans le mot de passe fourni par l'utilisateur, la méthode équivalente à la méthode " password-and-totp est utilisée. Pour plus d'informations, voir password-and-totp.

Si aucune valeur TOTP n'est détectée dans le mot de passe fourni par l'utilisateur, la méthode équivalente à la méthode " password-and-device est utilisée. Pour plus d'informations, voir password-then-device.

Remarque : si le mot de passe réel de l'utilisateur commence ou se termine par six chiffres et un séparateur, le serveur RADIUS peut le confondre avec une valeur TOTP intégrée. Par exemple, l'option " password-first est définie sur false et le mot de passe commence par les six chiffres et le séparateur. De même, si la valeur est fixée à true et que le mot de passe se termine par un séparateur et six chiffres, la même condition s'applique. Dans l'un ou l'autre cas, une poussée de l'appareil ne peut pas être utilisée comme deuxième facteur pour l'authentification RADIUS. Le serveur RADIUS l'interprète comme une valeur TOTP et tente de la valider. La validation échoue et l'authentification est rejetée.
Si "password" ne figure pas dans la valeur auth-method, par exemple "device", le module libpam_ibm_auth.so peut être préfixé par le module PAM UNIX/Linux standard afin d'authentifier un mot de passe local pour former les deux facteurs. Il peut également être ignoré pour une authentification sans mot de passe.
accept_on_missing_auth_method
Cet argument est facultatif. S'il est défini et que l'utilisateur n'est pas enregistré pour l'authentification à deux facteurs, l'utilisateur est authentifié. Si cette option n'est pas définie et que l'utilisateur n'est pas enregistré pour l'authentification à deux facteurs, l'utilisateur n'est pas authentifié.
otp_prompt={promt_str}
Cet argument est facultatif. Par défaut, il s'agit de la chaîne en anglais "Enter OTP %C- ". Cette chaîne est affichée lorsque l'utilisateur est invité à saisir le mot de passe à utilisation unique. Les caractères %C dans l'invite sont remplacés par la corrélation de mot de passe à utilisation unique (OTP) ou la chaîne vide pour le mot de passe à utilisation unique limitée dans le temps (TOTP). Les caractères %% dans l'invite sont remplacés par un caractère % unique.
password_first
Cet argument est facultatif. Il n'a d'impact que sur la méthode d'authentification "password-and-totp" et détermine l'ordre des valeurs de mot de passe et de mot de passe à utilisation unique limitée dans le temps (TOTP) dans la chaîne que l'utilisateur doit fournir. Normalement, le mot de passe est fourni à la fin de la chaîne après le caractère de séparation totp:password. Si l'argument est défini, le mot de passe doit être fourni au début de la chaîne avant le caractère de séparation password:totp.
password_separator={sep_char}
Cet argument est facultatif. Par défaut, le caractère de séparation est : (deux-points). Il n'a d'impact que sur la méthode d'authentification "password-and-totp" et spécifie le caractère que l'utilisateur doit employer pour séparer la valeur de mot de passe à utilisation unique limitée dans le temps (TOTP) et la valeur de mot de passe.
verify_method_order={order}
Cet argument est facultatif. Par défaut, sa valeur est "fingerprint,userPresence". Cette option indique laquelle des deux valeurs est prioritaire. L'ordre par défaut donne la priorité à la valeur fingerprint, si elle est indiquée.
Remarque: Si l'option "add_devices_to_choice" est activée, l'option "device" auth_method n'utilise qu'une seule des méthodes, fingerprint ou userPresence.
verify_message={message}
Cet argument est facultatif et prend par défaut la valeur"Do you approve the request from {hostname}?"{hostname} correspond au nom de l'hôte sur lequel s'exécute le module PAM. Si la méthode d'authentification "device" est utilisée, l'appareil de l'utilisateur affiche ce message lorsque l'utilisateur est invité à vérifier l'accès.
append={string}
Cet argument est facultatif. Par défaut, sa valeur est "". A la fin du processus de mappage du nom d'utilisateur UNIX à un nom d'utilisateur Verify , cette chaîne est ajoutée au nom d'utilisateur Verify résultant. Un cas d'utilisation typique consiste à ajouter le domaine utilisateur Verify à l'utilisateur, par exemple "@www.ibm.com" " pour le domaine utilisateur w3id .
add_devices_to_choice
Cet argument est facultatif. Le comportement par défaut consiste à ne pas ajouter les enregistrements d'appareil de l'utilisateur aux méthodes d'authentification "choice-then-otp" et "password-then-choice-then-otp". Si cet argument est défini, les enregistrements d'appareil sont ajoutés à la liste des choix de l'utilisateur pour l'authentification à deux facteurs.
exempt_group={unix_group_name}
Cette valeur est facultative. Par défaut, il s'agit de exempt_group. Lorsque cet argument est défini, le groupe UNIX spécifié est utilisé pour déterminer si une connexion utilisateur UNIX est exemptée de l'authentification 2FA . Si un utilisateur UNIX se trouve dans le groupe, il n'a pas besoin de se soumettre à l'authentification à deux facteurs.
2fa_group={unix_group_name}
Cette valeur est facultative. Lorsque cette option est activée, le groupe UNIX spécifié est utilisé pour déterminer si la connexion d'un utilisateur UNIX nécessite un 2FA. Lorsque cette option est activée et que l'utilisateur UNIX ne fait pas partie du groupe, l'utilisateur n'est pas invité à utiliser la 2FA.
retry={num_retries}
Cet argument est facultatif et sa valeur par défaut est 3. Il définit le nombre de tentatives d'un utilisateur s'il fournit une valeur 2FA non valide, par exemple, une mauvaise valeur de mot de passe TOTP. Il définit également le nombre de nouvelles tentatives de sélection du type de mot de passe à utilisation unique à employer pouvant être effectuées au cours de l'étape de choix.
failmode_insecure
Cette valeur est facultative. Par défaut, il s'agit du mode sécurisé failmode. Cet argument affecte le comportement lorsque le module PAM d' Verify ne parvient pas à se connecter au serveur Verify . Si cet argument est défini, l'authentification 2FA aboutit lorsque le serveur Verify est inaccessible. Si l'option n'est pas fournie, toutes les authentifications qui requièrent une 2FA échouent si le serveur Verify est inaccessible.
gecos_field={field_number}
Cet argument est facultatif. Le comportement par défaut consiste à ne pas utiliser la zone GECOS de l'utilisateur. Lorsqu'elle est définie sur une valeur comprise entre 1 et 32, la zone GECOS spécifiée à partir de l'utilisateur UNIX est utilisée comme nom d'utilisateur Verify . L'option append continue d'avoir un impact sur cette valeur. La première zone GECOS est associée au numéro de zone 1.
gecos_separator={char}
Cet argument est facultatif. Par défaut, sa valeur est , (virgule). Cette valeur définit le caractère de séparation de la zone GECOS.
id={pam_module_id}
Cet argument est facultatif. Par défaut, sa valeur est "pam_ibm_auth". Si plusieurs occurrences du module PAM d' Verify se produisent dans l'ensemble de modules PAM configurés pour authentifier un utilisateur, un ID unique doit être attribué à chaque instance. Sinon, les modules risquent d'interférer les uns avec les autres.
identity_source={id}
Cet argument est facultatif. Le comportement par défaut consiste à utiliser la source d'identité Cloud Directory. Si cet argument est défini, il spécifie la source d'identité à utiliser pour authentifier les utilisateurs. Les utilisateurs sont authentifiés avec une source d'identité passe-système LDAP configurée. Une collection de sources d'identité configurées et leurs ID peuvent être extraits à partir d'une demande GET envoyée à: https://<tenant>/verify/v1.0/authnmethods/password.
ignore_isvalidated
Cette valeur est facultative. Par défaut, il s'agit de false. Si la valeur est true, le module PAM tente d'utiliser des méthodes d'authentification à deux facteurs pertinentes même si celles-ci n'ont pas été validées.
transients_in_choice
Cet argument ajoute des adresses électroniques et des numéros de téléphone transitoires à la liste des méthodes utilisées pour l'authentification à l'aide d'un mot de passe à utilisation unique.
voice_in_choice
Cet argument ajoute le mot de passe à utilisation unique envoyé par message vocal à la liste des méthodes utilisées pour s'authentifier via un mot de passe à utilisation unique envoyé par message vocal.
transient_choices={choices}
Cet argument répertorie les choix et les méthodes transitoires disponibles. Sa valeur doit être "emails" et/ou "phoneNumbers". Les choix doivent être séparés par une virgule , (virgule).
poll_timeout={seconds}
Cet argument spécifie le délai pendant lequel l'utilisateur peut valider la connexion depuis son appareil. Si le délai est dépassé, la connexion échoue.
no_enrollments_in_choice

Cet argument indique qu'aucune inscription à l'authentification par mot de passe à utilisation unique limitée dans le temps (TOTP), envoyé par SMS ou par courrier électronique, ne doit être ajoutée dans les choix. Pour qu'un choix soit disponible, vous devez configurer transients_in_choice ou add_devices_to_choice, ou les deux.

id_link_attr= {attr_name}
Lorsqu'il existe plusieurs sources d'identité définies dans le titulaire et qu'elles utilisent la liaison d'identité, cet élément de configuration définit le nom d'un attribut de l'utilisateur localisé par "user_name_attr" qui identifie le nom d'utilisateur par rapport auquel le mot de passe doit être validé. Exemple de valeurs {attr_name} :
  • "urn:ietf:params:scim:schemas:extension:ibm:2.0:user:linkedAccounts.myOnPremIdSource"
  • "emails.type%20eq%20%22work%22%20and%20emails.value"
  • "urn:ietf:params:scim:schemas:extension:ibm:2.0:user:customAttributes.myCustomAttribute"
  • "userName"

Définition des méthodes 2FA fournies dans le choix auth_methods

Comment activer ou désactiver les types d'authentification deuxième facteur présentés dans le choix de méthodes d'authentification.

Tableau 2. 2FA Inclusion dans le choix :
Type 2FA Par défaut Option d'activation/désactivation Descriptif
Emailotp totp smsotp activé no_enrollments_in_choice L'heure, le SMS et le mot de passe à utilisation unique par e-mail sont inclus par défaut et doivent être explicitement désactivés pour qu'ils ne soient pas présents.
périphérique désactivé(e) add_devices_to_choice La fonction push de l'appareil, à la fois la biométrie (empreinte digitale) et la présence (accès à l'application de l'appareil), sont désactivées en tant que choix par défaut et doivent être explicitement activées si nécessaire. L'option verify_method_order détermine la priorité et les éléments utilisés.
transsmsotp transemailotp désactivé(e) transients_in_choice Les valeurs de compte utilisateur transitoires (non vérifiées pour le téléphone mobile et l'e-mail) sont désactivées par défaut et doivent être explicitement activées si nécessaire. L'option transient_choices= détermine laquelle des options smsotp et/ou emailotp est utilisée.
voiceotp désactivé(e) voice_in_choice Le mot de passe à usage unique basé sur le rappel vocal est désactivé par défaut et doit être explicitement activé si nécessaire. L'utilisateur doit s'inscrire explicitement à cette méthode pour qu'elle soit disponible.
Remarque: Si l'option de configuration ignore_isvalidé est présente, totp, smsotp, emailotp et voiceotp sont inclus même si la méthode n'a pas été validée avec l'utilisateur.