Il file di configurazione del sistema PAM

I seguenti parametri sono disponibili durante la configurazione di IBM® Verify Gateway for Linux® PAM and AIX® PAM (Pluggable Authentication Modules).

Su Linux®, tutti i servizi PAM hanno un file in /etc/pam.d con lo stesso nome del servizio. Ad esempio, su Redhat 7 il sshd file del servizio /etc/pam.d/sshd contiene:
#%PAM-1.0
auth       required     pam_sepermit.so
auth       substack     password-auth
auth       include      postlogin
...
Su AIX, tutti i servizi PAM si trovano nel file /etc/pam.conf . Ad esempio, su AIX 7.2 il file /etc/pam.conf contiene:
#
# Authentication
#
authexec      auth     required      pam_aix
dtaction      auth     required      pam_aix
dtsession     auth     required      pam_aix
...
Ogni riga è del formato:
module_interface control_flag module_name [module_arguments]
Nota: Il carattere di segno della sterlina (#) denota l'inizio di un commento nelle configurazioni PAM. Questo carattere può avere conseguenze indesiderate sulla tua configurazione.

Interfaccia del modulo

Solo il tipo module_interface di auth è supportato da questo modulo pam_ibm_auth.so .

Nome modulo

Il nome del modulo è pam_ibm_auth.so.

Argomenti del modulo

Questo esempio mostra una voce per il modulo PAM con argomenti.
auth sufficient pam_ibm_auth.so auth_method=choice-then-otp 
I seguenti argomenti sono accettati dal modulo pam_ibm_auth.so .
Nota: PAM richiede che gli argomenti siano avvolti in parentesi quadre se contengono uno spazio. Ad esempio:
[otp-prompt=Enter OTP %C- ]
user_env= {name}
Aggiungere una variabile d'ambiente PAM contenente " {name} = {user-json} " per i moduli PAM a valle. Il valore di {user-json} è una stringa contenente le informazioni sull'utente IBM Verify in formato JSON. Utilizzato principalmente per aiutare gli sviluppatori di moduli PAM a integrarsi con il modulo PAM di IBM.
prompt_choice_start= {prompt}
La stringa {prompt} viene emessa immediatamente prima dell'elenco di scelte 2FA . Ad esempio, se {prompt} contiene "Scegli uno dei seguenti: \n" potrebbe essere visualizzato:
Choose one of:
1) user@us.ibm.com
2) 15551234567
3) TOTP
Your choice (1->3):
prompt_choice_end= {prompt}
La stringa {prompt} viene emessa immediatamente prima dell'elenco di scelte 2FA . Qualsiasi valore %T in questo {prompt} viene sostituito con un numero che rappresenta il numero totale di scelte. Ad esempio, se {prompt} conteneva "Your choice (1 -> %T):" potresti vedere:
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}
prompt_voice= {prompt}
prompt_device_presence= {prompt}
prompt_device_biomertic= {prompt}
Questi argomenti personalizzano l'opzione prompt per ogni tipo 2FA . Possono essere applicate le seguenti sostituzioni:
  • %I L'indice dell'opzione 2FA
  • %N Il valore associato al nome opzione 2FA (ad esempio, un indirizzo email)
  • %T Il numero totale di scelte
Ad esempio, se prompt_trans_sms = "%I) SMS non convalidato %N \n" potrebbe essere visualizzato:
Choose one of:
1) user@us.ibm.com
2) Unvalidated SMS 15551234567
3) TOTP
Your choice (1->3):
Nota: queste opzioni possono far sì che gli argomenti del modulo PAM diventino molto lunghi e difficili da gestire. Per superare questo numero di argomenti del modulo che è possibile spostare nel file /etc/pam_ibm_auth.json , consultare la funzione "additional-args" sotto l'oggetto "pam" in questo file.
device_prompt= {prompt}
Se impostato, il messaggio specificato viene visualizzato per gli utenti quando devono approvare un dispositivo 2FA . L'uso di questo con SSH. ha alcune limitazioni. Alcuni server SSH passano un messaggio (senza richiedere l'input), altri no. Per impostazione predefinita, non viene inviata alcuna richiesta, si basa sul dispositivo dell'utente per l'avviso.
nome_utente={attr_name}

Mappa il nome dell'utente fornito a PAM in un utente di IBM Verify , in base alla corrispondenza con un attributo contenuto nell'utente di Verify . Ad esempio, il nome dell'utente PAM potrebbe essere aggiunto a un attributo personalizzato dell'utente Verify chiamato altro nome utente. Tale attributo personalizzato specifica

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

Per impostazione predefinita, l'attributo utente "userName" viene usato per individuare l'utente Verify che corrisponde al nome dell'utente PAM.

gecos_match= {regex}
gecos_replace= {replace_format}
Questi argomenti sono utilizzati come alternativa al metodo gecos_field/gecos_separator . {regex} viene utilizzato per corrispondere al valore GECOS dell'utente ed estrae il valore da fornire al formato gecos_replace . Vedi la pagina man di regex (7) per i dettagli su regex.

Il valore {replace_format} viene utilizzato per generare il nome dell'utente Verify . In {replace_format} qualsiasi $N, dove N è 1 -> 9, viene sostituito dall'atomo di regex corrispondente, (pat), della corrispondenza {regex}.

Ad esempio:
[gecos_match=^([^/\]+)/([^/\]+)/([^/\]+)] [gecos_replace=$3/$1@MyRealm]
Nota: quando si utilizza il metodo PAM [ arg], i caratteri] incorporati in arg devono essere racchiusi tra virgolette utilizzando \.

Se il campo GECOS era "Test User/+15551234567/ibm.com" , l'utente generato è "ibm.com/Test User@MyRealm"

eseguire il debug
Questo argomento è un'opzione del modulo PAM standard. Utilizzare la chiamata syslog() per registrare le informazioni di debug sui file di log di sistema.
nosare
Questo argomento è un'opzione del modulo PAM standard. L'opzione nowarn disabilita la generazione di avvisi, incluse le avvertenze di scadenza delle password.
ibm_auth_config= {config-file}
Se non specificato, l'impostazione predefinita è /etc/pam_ibm_auth.json per Linux e sistemi UNIX™. Questo file contiene la configurazione dell'API di autenticazione IBM che contiene i dettagli di connessione al server Verify . Vedi Il file di configurazione del modulo.
auth_metod={auth_method}
Questo argomento è facoltativo e predefinito per la validazione TOTP. Questo argomento specifica il metodo di autenticazione necessario per autenticare gli utenti. Il seguente elenco di metodi di autenticazione include alcuni metodi che accettano prima una password. La password in questi metodi fa riferimento alla password utente Verify , non alla password UNIX.
Nota: se una password è stata fornita a un modulo PAM precedentemente avviato, ad esempio pam_unix.so, tale password viene utilizzata in qualsiasi Verify auth methods che implichi una password. Se la password precedentemente fornita e la password Verify non corrispondono, l'autenticazione ha esito negativo. Questo problema rappresenta una limitazione nota.
Tabella 1. Valori accettabili
Valore Descrizione
Password Richiede una password Verify valida.
password - e - totp Una password Verify più un valore TOTP deve essere fornita in un singolo valore. È possibile configurare se la password o il valore TOTP è prima nel valore, e configurare il carattere utilizzato per separare i due valori. Per impostazione predefinita il formato è TOTP:password.
password - quindi - totp È necessario fornire una parola d'ordine Verify e, se fornita correttamente, viene richiesto e convalidato un valore TOTP.
TOTP Viene chiesto e convalidato un valore TOTP.
password - poi - smsotp È necessario fornire una parola d'ordine Verify e, se fornita correttamente, viene inviato un messaggio SMS al dispositivo mobile registrato dell'utente con un valore OTP. Poi il modulo PAM richiede il valore SMSOTP dall'utente e lo convalida.
smsotp Viene avviata una validazione SMS OTP e viene chiesto e convalidato il valore SMS OTP.
password - quindi - emailotp È necessario fornire una parola d'ordine Verify e, se fornita correttamente, viene inviato un messaggio email all'utente con un valore OTP. Il modulo PAM richiede il valore EmailOTP e lo convalida.
emailotp Viene avviata una validazione OTP email e il modulo PAM richiede il valore email OTP e poi convalidato.
password - quindi - scelta - poi - otp È necessario fornire una password Verify e, se fornita correttamente, all'utente viene richiesto di scegliere una delle proprie iscrizioni OTP. Dopo la scelta viene effettuata la validazione OTP e l'utente viene richiesto per il valore OTP.
Nota:
  • Se l'utente è iscritto in un solo metodo OTP, allora il passo di scelta viene saltato e l'utente viene chiesto direttamente per il valore OTP.
  • Se l'utente non ha delle iscrizioni OTP, allora entra in vigore il "reject-on-missing-auth-method" .
  • Se l'opzione "add_devices_to_choice" è abilitata, le opzioni del dispositivo vengono aggiunte all'elenco. Consultare il metodo auth del dispositivo per i dettagli su quanto viene aggiunto.
  • Se l'opzione "transients_in_choice" è abilitata, le sorgenti di email e sms transitanti sono elencate come opzioni.
  • Se l'opzione "voice_in_choice" è abilitata, allora la voce OTP è indicata come opzione.
scelta - poi - otp All'utente viene chiesto di scegliere una delle relative iscrizioni OTP. Dopo la scelta viene effettuata la validazione OTP e l'utente viene richiesto per il valore OTP.
Nota:
  • Se l'utente è iscritto in un solo metodo OTP, allora il passo di scelta viene tralasciato e l'utente viene chiesto direttamente per il valore OTP o per la verifica dei dispositivi.
  • Se l'utente non ha delle iscrizioni OTP, allora reject-on-missing-auth-method entra in vigore.
  • Se l'opzione "add_devices_to_choice" è abilitata, le opzioni del dispositivo vengono aggiunte all'elenco. Consultare il metodo auth del dispositivo per i dettagli su quanto viene aggiunto.
  • Se l'opzione "transients_in_choice" è abilitata, le sorgenti di email e sms transitanti sono elencate come opzioni.
  • Se l'opzione "voice_in_choice" è abilitata, allora la voce OTP è indicata come opzione.
password - poi - dispositivo È necessario fornire una password Verify e, se fornita correttamente, all'utente viene richiesto di convalidare se stesso utilizzando l'app IBM Verify sul proprio telefono.
unità All'utente viene chiesto di convalidare se stessi utilizzando l'App IBM Verify sul proprio telefono. Se sono disponibili più dispositivi, l'utente viene spinto per una scelta.
Nota: L'opzione "add_devices_to_choice="determina se utilizzare fingerprint o userPresence. Solo uno di quei due attributi può essere utilizzato per un determinato dispositivo.
password - quindi - transsmsotp È necessario fornire una parola d'ordine Verify e, se fornita correttamente, all'utente viene richiesto di fornire l'OTP inviata tramite SMS al proprio telefono cellulare. Il numero di telefono è quello impostato nel loro record utente.
transsmsotp All'utente viene chiesto di fornire l'OTP inviato da SMS al proprio cellulare. Il numero di telefono è quello impostato nel loro record utente.
password - quindi - transemailotp È necessario fornire una parola d'ordine Verify e, se fornita correttamente, all'utente viene richiesto di fornire l'OTP inviato tramite email. L'indirizzo email è quello impostato nel loro record utente.
transemailotp All'utente viene chiesto di fornire l'OTP inviato loro per posta elettronica. L'indirizzo email è quello impostato nel loro record utente.
voceotp Una chiamata viene fatta al telefono dell'utente e un messaggio vocale informa l'utente del valore OTP che deve essere utilizzato per convalidare il login.
password-poi-voiceotp È necessario fornire una password a IBM Verify . Se viene fornito con successo, viene effettuata una chiamata al telefono dell'utente e un messaggio vocale informa l'utente del valore OTP che dovrà essere utilizzato per convalidare il login.
password-e-totp-o-dispositivo Se nella password fornita dall'utente viene rilevato un valore TOTP, viene utilizzato l'equivalente del metodo " password-and-totp. Per ulteriori informazioni, vedere password-e-totp.

Se non viene rilevato un valore TOTP nella password fornita dall'utente, viene utilizzato l'equivalente del metodo " password-and-device. Per ulteriori informazioni, vedere Password-then-device.

Nota: Se la password effettiva dell'utente inizia o termina con sei cifre e un separatore, può essere scambiata dal server RADIUS come un valore TOTP incorporato. Ad esempio, l'opzione " password-first è impostata su false e la password inizia con sei cifre e un separatore. Analogamente, se è impostata su true e la password termina con un separatore e sei cifre, si verifica la stessa condizione. In entrambe le situazioni, il push del dispositivo non può essere utilizzato come secondo fattore per l'autenticazione RADIUS. Il server RADIUS lo interpreta come un valore TOTP e cerca di convalidarlo. La convalida fallisce e l'autenticazione viene rifiutata.
Se "password" non fa parte del valore del metodo di autenticazione, ad esempio "device", il modulo libpam_ibm_auth.so può essere preceduto dal modulo PAM UNIX/Linux standard per autenticare una parola d'ordine locale per formare i due fattori. Può anche essere lasciato fuori per una password - meno autenticazione.
accet_on_missing_auth_method
Questo argomento è facoltativo. Se impostato e l'utente non è registrato per l'autenticazione di secondo fattore, l'utente viene autenticato. Se questa opzione non è impostata e l'utente non è registrato per l'autenticazione di secondo fattore, l'utente non è autenticato.
otp_prompt= {promt_str}
Questo argomento è facoltativo e viene impostato per default sulla stringa inglese "Enter OTP %C- ". Questa stringa viene visualizzata quando l'utente viene richiesto per l'input OTP. Qualsiasi %C nel prompt viene sostituito dalla correlazione OTP oppure la stringa vuota per TOTP. Qualsiasi %% nel prompt viene sostituito da un singolo %.
password_primo
Questo argomento è facoltativo. Colpisce solo il metodo "password-and-totp" auth e determina l'ordine dei valori della password e del TOTP nella stringa che l'utente deve fornire. Normalmente la password viene fornita alla fine della stringa dopo il carattere separatore totp:password. Se l'argomento è impostato, la password deve essere fornita all'inizio della stringa prima del carattere separatore password:totp.
password_separator= {sep_char}
Questo argomento è facoltativo e viene impostato per default su un separatore di password di : (colon). Colpisce solo il metodo "password-and-totp" auth e specifica il carattere che l'utente deve utilizzare per separare i valori TOTP e password.
verificfy_metod_order={order}
Questo argomento è facoltativo e viene impostato per default su "fingerprint,userPresence". Questa opzione sceglie quale dei due ha priorità. L'ordine predefinito priviledia l'impronta digitale se è presente.
Nota: Se il "add_devices_to_choice" è abilitato, l'opzione "device" auth_method utilizza solo uno dei metodi, fingerprint o userPresence.
verificfy_message={message}
Questo argomento è facoltativo e viene impostato per default su"Do you approve the request from {hostname}?"dove {hostname} viene sostituito dal nome host su cui è in esecuzione il modulo PAM. Quando viene utilizzato il "device" auth_method, il dispositivo dell'utente visualizza questo messaggio quando l'utente viene spinto a verificare l'accesso.
append= {string}
Questo argomento è facoltativo e viene impostato per default su "". Alla fine del processo per associare il nome utente UNIX ad un nome utente Verify , questa stringa viene aggiunta al nome utente Verify risultante. Un caso d'uso tipico è quello di aggiungere il dominio utente Verify all'utente, ad esempio "@www.ibm.com" per il dominio utente w3id .
add_devices_to_scelta
Questo argomento è facoltativo e predefinito per non aggiungere le registrazioni del dispositivo dell'utente ai metodi "choice-then-otp" e "password-then-choice-then-otp" auth. Se questo argomento è impostato, le registrazioni del dispositivo vengono aggiunte all'elenco delle scelte dell'utente per 2FA.
esempt_group={unix_group_name}
Questo valore è facoltativo e viene impostato per default su no exempt_group. Quando questo argomento è impostato, il gruppo UNIX specificato viene utilizzato per determinare se un login utente UNIX è esentato dall'autenticazione 2FA . Se un utente UNIX è nel gruppo, è esentato e non viene mai richiesto per 2FA.
2fa_group={unix_group_name}
Questo valore è facoltativo. Quando questa opzione è impostata, il gruppo UNIX specificato viene utilizzato per determinare se il login di un utente UNIX richiede un 2FA. Quando questa opzione è impostata e l'utente UNIX non fa parte del gruppo, all'utente non viene richiesto il 2FA.
ritry={num_retries}
Questo argomento è facoltativo e viene impostato per default su 3. Definisce il numero di tentativi che un utente ha se forniscono un valore 2FA non valido, ad esempio un valore TOTP cattivo. Definisce anche il numero di tentativi per la scelta di quale tipo OTP utilizzare durante il passo di scelta.
fallmode_insicuro
Questo valore è opzionale un default su un failmodesicuro. Questo argomento influisce sul funzionamento quando il modulo Verify PAM non è in grado di collegarsi al server Verify . Se questo argomento è impostato, l'autenticazione 2FA riesce quando il server Verify non è raggiungibile. Se l'opzione non viene fornita impostata, tutte le autenticazioni che richiedono una 2FA non riescono se il server Verify non è raggiungibile.
gecos_field= {field_number}
Questo argomento è facoltativo e predefinito per non utilizzare il campo GECOS dell'utente. Quando è impostato su un valore compreso tra 1 e 32, il campo GECOS specificato dall'utente UNIX viene utilizzato come nome utente Verify . L'opzione di accodamento influenza ancora questo valore. Il primo campo GECOS è definito come campo numero 1.
gecos_separator= {char}
Questo argomento è facoltativo e viene impostato per default su , (virgola). Questo valore definisce il carattere separatore del campo GECOS.
id= {pam_module_id}
Questo argomento è facoltativo e viene impostato per default su "pam_ibm_auth". Se più di una ricorrenza del modulo PAM di Verify si verifica nella serie di moduli PAM configurati per autenticare un utente, a ciascuna istanza deve essere fornito un ID univoco. In caso contrario, i moduli potrebbero interferire tra loro.
identity_source= {id}
Questo argomento è facoltativo e viene impostato per default sull'utilizzo dell'identità di identità di Cloud Directory. Se questo argomento è impostato, specifica la fonte di identità da utilizzare per autenticare gli utenti. Gli utenti vengono autenticati contro una fonte di identità LDAP Pass - Through configurata. Una raccolta di origini di identità configurate e i relativi ID può essere richiamata da una richiesta GET a https://<tenant>/verify/v1.0/authnmethods/password.
ignore_isvalidato
Questo valore è facoltativo e viene impostato per default su false. Quando impostato su true, il modulo PAM tenta di utilizzare i metodi 2FA rilevanti anche se non convalidati.
transitori_in_scelta
Questo argomento aggiunge email e numeri di telefono transitori all'elenco dei metodi utilizzati per autenticarsi con OTP.
voce_in_scelta
Questo argomento aggiunge voce OTP all'elenco dei metodi utilizzati per autenticarsi con OTP.
transito_choices={choices}
Questo argomento elenca i metodi e le scelte transitorie che vengono resi disponibili. Il valore dell'argomento deve essere uno o più "emails" e "phoneNumbers". Ogni scelta deve essere separata da solo un , (virgola).
poll_timeout= {seconds}
Questo argomento specifica il tempo di attesa per l'utente di convalidare il login dal proprio dispositivo. Se il tempo viene superato, si verifica un timeout e un errore di login.
nessuna_iscrizione_alla_scelta

Questo argomento specifica di non aggiungere le iscrizioni SMS, email o TOTP nelle scelte. Per rendere disponibile una scelta, transients_in_choice o add_devices_to_choice o entrambi devono essere configurati.

id_link_attr= {attr_name}
Quando sono presenti più origini identità definite nel tenant e utilizzano il collegamento identità, questo elemento di configurazione definisce il nome di un attributo dell'utente individuato da "user_name_attr" che identifica il nome utente rispetto al quale convalidare la password. Esempio{attr_name} valori:
  • "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"

Definire il2FA metodi forniti nella scelta auth_methods

Come abilitare o disabilitare i tipi di autenticazione a secondo fattore presentati nella scelta auth_methods.

Tabella 2. 2FA Inclusione nella scelta:
2FA Tipo Predefinito Opzione di abilitazione/disabilitazione Descrizione
totp smsotp emailotp abilitato nessuna_iscrizione_alla_scelta Le password monouso basate su ora, SMS ed e-mail sono incluse per impostazione predefinita e devono essere esplicitamente disabilitate affinché non siano presenti.
unità disabilitato add_devices_to_scelta Il push del dispositivo, sia la biometria (impronta digitale) che la presenza (accesso all'app del dispositivo), sono disabilitati come scelte per impostazione predefinita e devono essere abilitati esplicitamente se necessario. L'opzione verify_method_order determina la priorità e quali vengono utilizzati.
transmsotp transemailotp disabilitato transitori_in_scelta I transitori (valori dell'account utente non verificati per telefono cellulare ed e-mail) sono disabilitati come scelta per impostazione predefinita e devono essere abilitati esplicitamente se necessario. L'opzione transient_choices= determina quale tra smsotp e/o emailotp viene utilizzato.
voceotp disabilitato voce_in_scelta La password monouso basata sulla richiamata vocale è disabilitata per impostazione predefinita e deve essere abilitata esplicitamente se necessario. L'utente deve iscriversi esplicitamente a questo metodo affinché sia disponibile.
Nota: Se è presente l'opzione di configurazione ignore_isvalidated, totp, smsotp, emailotp e voiceotp vengono inclusi anche se il metodo non è stato convalidato con l'utente.