O arquivo de configuração do sistema PAM

Os parâmetros a seguir estão disponíveis ao configurar o IBM® Verify Gateway for Linux® PAM and AIX® PAM (Pluggable Authentication Modules).

No ` Linux® `, todos os serviços compatíveis com PAM possuem um arquivo no diretório /etc/pam.d com o mesmo nome do serviço. Por exemplo, no Redhat 7 o arquivo de serviço /etc/pam.d/sshd do sshd contém:
#%PAM-1.0
auth       required     pam_sepermit.so
auth       substack     password-auth
auth       include      postlogin
...
No ` AIX `, todos os serviços compatíveis com PAM estão no /etc/pam.conf arquivo. Por exemplo, em AIX7.2, o /etc/pam.conf arquivo contém:
#
# Authentication
#
authexec      auth     required      pam_aix
dtaction      auth     required      pam_aix
dtsession     auth     required      pam_aix
...
Cada linha tem o formato:
module_interface control_flag module_name [module_arguments]
Nota: O símbolo de cerquilha (#) indica o início de um comentário nas configurações do PAM. Este caractere pode ter consequências não intencionais em sua configuração.

Interface do módulo

Somente o tipo module_interface de auth é suportado por este módulo pam_ibm_auth.so.

Nome do módulo

O nome do módulo é pam_ibm_auth.so.

Argumentos do módulo

Este exemplo mostra uma entrada para o módulo PAM com argumentos.
auth sufficient pam_ibm_auth.so auth_method=choice-then-otp 
Os argumentos a seguir são aceitos pelo módulo pam_ibm_auth.so.
Observação: o PAM exige que os argumentos sejam colocados entre colchetes caso contenham um espaço. Por exemplo,
[otp-prompt=Enter OTP %C- ]
user_env= {name}
Adicione uma variável de ambiente PAM com o valor “ {name} = {user-json} ” para os módulos PAM a jusante. O valor de ` {user-json} ` é uma string que contém as IBM Verify informações do usuário no formato JSON. Utilizado principalmente para auxiliar os desenvolvedores do módulo PAM na integração com o módulo PAM do IBM.
prompt_choice_start= {prompt}
A sequência " {prompt} " é exibida imediatamente antes da lista de opções " 2FA ". Por exemplo, se o arquivo ` {prompt} ` contivesse "Escolha uma das seguintes opções:\n", você poderia ver:
Choose one of:
1) user@us.ibm.com
2) 15551234567
3) TOTP
Your choice (1->3):
prompt_choice_end= {prompt}
A sequência " {prompt} " é exibida imediatamente antes da lista de opções " 2FA ". Qualquer valor %T dentro deste {prompt} é substituído por um número que representa o número total de opções. Por exemplo, se {prompt} contivesse "Sua escolha (1->%T):", você poderia ver:
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_biometric= {prompt}
Esses argumentos personalizam a opção de prompt para cada tipo de ` 2FA `. Podem ser aplicadas as seguintes substituições:
  • %I Índice de opções do ` 2FA `
  • %N O valor associado ao nome da opção 2FA (por exemplo, um endereço de e-mail)
  • %T O número total de opções
Por exemplo, se prompt_trans_sms="%I) SMS não validada %N\n", você poderá ver:
Choose one of:
1) user@us.ibm.com
2) Unvalidated SMS 15551234567
3) TOTP
Your choice (1->3):
Observação: essas opções podem fazer com que os argumentos do módulo PAM fiquem muito longos e difíceis de gerenciar. Para resolver isso, muitos dos argumentos do módulo podem ser transferidos para o /etc/pam_ibm_auth.json arquivo; consulte o recurso "additional-args" no objeto "pam" desse arquivo.
device_prompt= {prompt}
Se essa opção estiver ativada, a mensagem especificada será exibida para o usuário quando ele precisar aprovar uma ação em um dispositivo do tipo “ 2FA ”. O uso disso com o SSH. tem algumas limitações. Alguns servidores SSH exibem uma mensagem (sem solicitar uma resposta), outros não. Por padrão, não é enviado nenhum aviso; o alerta depende do dispositivo do usuário.
user_name_attr= {attr_name}

Mapeia o nome de usuário fornecido ao PAM para um IBM Verify usuário, com base na correspondência de um atributo contido nesse Verify usuário. Por exemplo, o nome de usuário do PAM poderia ser adicionado a um Verify atributo personalizado do usuário chamado “Outro nome de usuário”. Esse atributo personalizado especifica

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

Por padrão, o atributo de usuário "userName" é usado para localizar o Verify usuário que corresponde ao nome de usuário PAM.

gecos_match= {regex}
gecos_replace= {replace_format}
Esses argumentos são utilizados como alternativa ao método gecos_field/gecos_separator . O ` {regex} ` é usado para comparar o valor GECOS do usuário e extrair o valor a ser fornecido ao `format` gecos_replace . Consulte a página de manual do regex(7) para obter mais detalhes sobre expressões regulares.

O {replace_format} valor é usado para gerar o Verify nome do usuário. Em {replace_format} qualquer $N, onde N é um número de 1 a 9, é substituído pelo átomo de expressão regular correspondente (padrão), proveniente da correspondência do {regex}.

Por exemplo,
[gecos_match=^([^/\]+)/([^/\]+)/([^/\]+)] [gecos_replace=$3/$1@MyRealm]
Observação: ao usar o método PAM [arg], quaisquer caracteres ] incorporados em arg devem ser colocados entre aspas usando \.

Se o campo GECOS fosse "Test User/+15551234567/ibm.com" , então o usuário gerado seria "ibm.com/Test User@MyRealm"

depuração
Esse argumento é uma opção de módulo do PAM padrão. Use a chamada syslog() para registrar informações sobre depuração nos arquivos de log do sistema.
nowarn
Esse argumento é uma opção de módulo do PAM padrão. A opção nowarn desativa a geração de avisos, incluindo avisos de expiração de senha.
ibm_auth_config={config-file}
Se não for especificado, o padrão é /etc/pam_ibm_auth.json para sistemas Linux e e UNIX™. Este arquivo contém a configuração da API de autenticação do IBM, que inclui os Verify detalhes de conexão do servidor. Consulte o arquivo de configuração do módulo.
auth_method={auth_method}
Esse argumento é opcional e padronizado para validação de TOTP. Esse argumento especifica o método de autenticação necessário para autenticar usuários. A lista de métodos de autenticação a seguir inclui alguns métodos que aceitam uma senha primeiro. A palavra “senha” nesses métodos refere-se à senha Verify do usuário, e não à senha do UNIX.
pam_unix.soObservação: Se uma senha tiver sido fornecida a um módulo PAM iniciado anteriormente, por exemplo, essa senha será utilizada em qualquer Verify operação auth methods que exija uma senha. Se a senha fornecida anteriormente e a Verify senha atual não corresponderem, a autenticação falhará. Esse problema é uma limitação conhecida.
Tabela 1. Valores aceitáveis
Valor Descrição
Senha É necessária uma senha válida Verify .
password-and-totp É necessário fornecer uma Verify senha e um valor TOTP em um único campo. É possível configurar se a senha ou o valor de TOTP deve vir primeiro no valor e configurar o caractere usado para separar os dois valores. Por padrão, o formato é TOTP:password.
password-then-totp É necessário inserir uma Verify senha e, caso seja inserida corretamente, é solicitado e validado um valor TOTP.
totp Um valor de TOTP é solicitado e validado.
password-then-smsotp É necessário inserir uma Verify senha e, caso a inserção seja bem-sucedida, uma mensagem SMS é enviada para o celular cadastrado do usuário com um código OTP. Em seguida, o módulo PAM solicitará o valor de SMSOTP junto ao usuário e o validará.
smsotp Uma validação de OTP de SMS é iniciada e o valor de OPT de SMS é solicitado e validado.
password-then-emailotp É necessário inserir uma Verify senha e, caso a inserção seja bem-sucedida, uma mensagem de e-mail é enviada ao usuário com um código OTP. O módulo PAM solicita o valor de EmailOTP e o valida.
emailotp Uma validação de OTP de e-mail é iniciada e o módulo PAM solicita o valor de OTP do e-mail e, em seguida, o valida.
password-then-choice-then-otp É necessário inserir uma Verify senha e, caso a inserção seja bem-sucedida, o usuário é solicitado a escolher uma de suas opções de OTP cadastradas. Após a opção ser feita, a validação do OTP será iniciada e o usuário será solicitado em um prompt pelo valor do OTP.
Nota:
  • Se o usuário estiver inscrito em apenas um método de OTP, a etapa de opção será ignorada e o usuário será solicitado diretamente a fornecer o valor de OTP.
  • Caso o usuário não tenha cadastramentos de OTP, o "reject-on-missing-auth-method" entrará em vigor.
  • Se a opção "add_devices_to_choice" estiver ativada, as opções de dispositivo serão incluídas na lista. Consulte o método de autenticação de dispositivo para obter detalhes sobre o que está incluído.
  • Se a opção "transients_in_choice" estiver ativada, o e-mail temporário e as origens de sms serão listados como opções.
  • Se a opção "voice_in_choice" estiver ativada, então, a OTP de voz será listada como uma opção.
choice-then-otp O usuário é solicitado a escolher uma de suas inscrições de OTP. Após a opção ser feita, a validação do OTP será iniciada e o usuário será solicitado em um prompt pelo valor do OTP.
Nota:
  • Se o usuário estiver inscrito em apenas um método OTP, a etapa de opção será ignorada e o usuário será solicitado diretamente a fornecer o valor de OTP ou a verificação de dispositivo.
  • Caso o usuário não tenha inscrições de OTP, reject-on-missing-auth-method entrará em vigor.
  • Se a opção "add_devices_to_choice" estiver ativada, as opções de dispositivo serão incluídas na lista. Consulte o método de autenticação de dispositivo para obter detalhes sobre o que está incluído.
  • Se a opção "transients_in_choice" estiver ativada, o e-mail temporário e as origens de sms serão listados como opções.
  • Se a opção "voice_in_choice" estiver ativada, então, a OTP de voz será listada como uma opção.
password-then-device É necessário inserir uma Verify senha e, caso a senha seja digitada corretamente, o usuário será solicitado a se autenticar usando o aplicativo IBM Verify no celular.
dispositivo O usuário é solicitado a validar a si mesmo usando o IBM Verify App em seu telefone. Se houver vários dispositivos disponíveis, o usuário será solicitado a escolher uma opção.
Nota: A opção "add_devices_to_choice="determina se se deve usar fingerprint ou userPresence. Apenas um desses dois atributos pode ser utilizado para um dispositivo específico.
password-then-transsmsotp É necessário inserir uma Verify senha e, caso a inserção seja bem-sucedida, o usuário será solicitado a fornecer a senha de uso único (OTP) enviada por SMS para seu celular. O número do telefone é aquele que está configurado em seu registro do usuário.
transsmsotp O usuário é solicitado a fornecer o OTP enviado por SMS para seu telefone celular. O número do telefone é aquele que está configurado em seu registro do usuário.
password-then-transemailotp É necessário inserir uma Verify senha e, caso a senha seja digitada corretamente, o usuário será solicitado a inserir a senha de uso único (OTP) enviada por e-mail. O endereço de e-mail é aquele que está configurado em seu registro do usuário.
transemailotp O usuário é solicitado a fornecer o OTP que foi enviado a ele por e-mail. O endereço de e-mail é aquele que está configurado em seu registro do usuário.
voiceotp Uma chamada é feita para o telefone do usuário e uma mensagem de voz informa o usuário do valor da OTP que deve ser usado para validar o login.
senha-e-OTP-por-voz É necessário inserir uma IBM Verify senha. Se o número for fornecido corretamente, é feita uma ligação para o telefone do usuário, e uma mensagem de voz informa o valor da senha de uso único (OTP) que deve ser usado para validar o login.
senha-e-totp-ou-dispositivo Se for detectado um valor TOTP na senha fornecida pelo usuário, será utilizado o password-and-totp método equivalente. Para mais informações, consulte password-and-totp.

Se não for detectado um valor TOTP na senha fornecida pelo usuário, será utilizado o password-and-device método equivalente. Para mais informações, consulte password-then-device.

Observação: Se a senha real do usuário começar ou terminar com seis dígitos e um separador, ela pode ser confundida com um valor TOTP incorporado pelo servidor RADIUS. Por exemplo, a password-first opção está definida como false e a senha começa com os seis dígitos e o separador. Da mesma forma, se estiver definido como verdadeiro e a senha terminar com um separador seguido de seis dígitos, a mesma condição se aplica. Em qualquer uma das situações, uma notificação de dispositivo não pode ser usada como segundo fator para a autenticação RADIUS. O servidor RADIUS interpreta isso como um valor TOTP e tenta validá-lo. A validação falha e a autenticação é rejeitada.
Se "password" não fizer parte do valor do método de autenticação, por exemplo, "device", o módulo libpam_ibm_auth.so poderá ser prefixado pelo módulo PAM padrão do UNIX/Linux para autenticar uma senha local para formar os dois fatores. Ele também pode ser deixado de fora para uma autenticação sem senha.
accept_on_missing_auth_method
Esse argumento é opcional. Se configurado, e se o usuário não estiver registrado para a autenticação de segundo fator, o usuário será autenticado. Se essa opção não estiver configurada e o usuário não estiver registrado para autenticação de segundo fator, o usuário não será autenticado.
otp_prompt={promt_str}
Este argumento é opcional e padronizado para a sequência em inglês "Enter OTP %C- ". Essa sequência é exibida quando a entrada OTP é solicitada ao usuário. Qualquer %C no prompt será substituído pela correlação OTP ou a sequência vazia para TOTP. Quaisquer %% no prompt serão substituídos por um único %.
password_first
Esse argumento é opcional. Ele afeta apenas o método de autenticação "password-and-totp" e determina a ordem dos valores de senha e de TOTP na sequência que o usuário deve fornecer. Normalmente, a senha é fornecida no final da sequência, após o caractere separador totp:password. Se o argumento for configurado, a senha deve ser fornecida no início da sequência, antes do caractere separador password:totp.
password_separator={sep_char}
Este argumento é opcional e padronizado para um separador de senha de : (dois pontos). Ele afeta apenas o método de autenticação "password-and-totp" e especifica o caractere que o usuário deve usar para separar os valores de TOTP e de senha.
verify_method_order={order}
Este argumento é opcional e é padronizado como "fingerprint,userPresence". Esta opção escolhe qual das duas tem prioridade. A ordem padrão prioriza a impressão digital, se estiver presente.
Observação: Se a opção "add_devices_to_choice" estiver ativada, a "device" opção `auth_method` utiliza apenas um dos métodos, seja fingerprint ou userPresence.
verify_message={message}
Este argumento é opcional e o valor padrão é"Do you approve the request from {hostname}?"em que {hostname} é substituído pelo nome do host no qual o módulo PAM está sendo executado. Quando o método de autenticação "device" é usado, o dispositivo do usuário exibe essa mensagem para solicitar que o usuário verifique o acesso.
append={string}
Este argumento é opcional e é padronizado como "". No final do processo de mapeamento do nome de usuário do UNIX para um Verify nome de usuário, essa sequência de caracteres é anexada ao nome de usuário resultante Verify . Um caso de uso típico é adicionar o Verify domínio do usuário ao usuário, por exemplo,@www.ibm.com" " w3id ".
add_devices_to_choice
Este argumento é opcional e padronizado para não incluir os registros de dispositivo do usuário nos métodos de autenticação "choice-then-otp" e "password-then-choice-then-otp". Se esse argumento for configurado, os registros do dispositivo serão incluídos na lista de opções do usuário para 2FA.
exempt_group={unix_group_name}
Este valor é opcional e padronizado para nenhum exempt_group. Quando este argumento é definido, o grupo UNIX especificado é usado para determinar se o login de um usuário UNIX está isento da autenticação d 2FA. Se houver um usuário UNIX no grupo, ele será isento e nunca será solicitado a fornecer 2FA.
2fa_group={unix_group_name}
Esse valor é opcional. Quando essa opção estiver ativada, o grupo UNIX especificado será usado para determinar se o login de um usuário UNIX requer uma senha de login ( 2FA ). Quando essa opção estiver ativada e o usuário UNIX não fizer parte do grupo, não será solicitada um 2FA e.
retry={num_retries}
Esse argumento é opcional e padronizado para 3. Ele define o número de novas tentativas que um usuário terá se fornecer um valor 2FA inválido, por exemplo, um valor TOTP ruim. Ele também define o número de novas tentativas para escolher qual tipo de OTP deve ser usado durante a etapa de escolha.
failmode_insecure
Este valor é opcional e padronizado como um failmode seguro. Este argumento afeta o comportamento quando o Verify módulo PAM não consegue se conectar ao Verify servidor. Se este parâmetro estiver definido, a autenticação do tipo “ 2FA ” será bem-sucedida quando o Verify servidor estiver inacessível. Se a opção não estiver definida, todas as autenticações que exigem um 2FA falharão caso o Verify servidor esteja inacessível.
gecos_field={field_number}
Este argumento é opcional e padronizado para não usar o campo GECOS do usuário. Quando definido com um valor entre 1 e 32, o campo GECOS especificado pelo usuário UNIX é usado como nome Verify de usuário. A opção de anexação ainda afeta esse valor. O primeiro campo GECOS é definido como o campo número 1.
gecos_separator={char}
Este argumento é opcional e padronizado como , (vírgula). Esse valor define o caractere separador do campo GECOS.
id={pam_module_id}
Este argumento é opcional e é padronizado como "pam_ibm_auth". Se houver mais de uma ocorrência do módulo Verify PAM no conjunto de módulos PAM configurados para autenticar um usuário, cada instância deverá receber um ID exclusivo. Caso contrário, os módulos podem causar interferências entre si.
identity_source={id}
Este argumento é opcional e padronizado para usar a origem da identidade do Diretório da nuvem. Caso seja configurado, esse argumento especifica a origem da identidade a ser usada para autenticar usuários. Os usuários são autenticados em uma origem de identidade configurada de Passagem LDAP. Uma coleção de origens de identidade configuradas e seus IDs pode ser recuperada a partir de uma solicitação GET para: https://<tenant>/verify/v1.0/authnmethods/password.
ignore_isvalidated
Esse valor é opcional e é padronizado como false. Quando configurado como true, o módulo PAM tenta usar os métodos 2FA relevantes, mesmo que eles não estejam validados.
transients_in_choice
Este argumento inclui e-mails e números de telefone temporários na lista de métodos que são usados para autenticação com o OTP.
voice_in_choice
Este argumento inclui a OTP de voz na lista de métodos que são usados para autenticar com a OTP.
transient_choices={choices}
Este argumento lista os métodos temporários e as opções que são disponibilizadas. O valor do argumento deve ser um ou mais "emails" e "phoneNumbers". Cada opção deve ser separada por apenas uma , (vírgula).
poll_timeout={seconds}
Este argumento especifica o tempo a esperar para que o usuário valide o login a partir de seu dispositivo. Se o tempo for excedido, o tempo limite será atingido e haverá uma falha no login.
no_enrollments_in_choice

Este argumento especifica para não incluir inscrições de SMS, e-mail ou TOTP nas opções. Para disponibilizar uma opção, deve-se configurar transients_in_choice ou add_devices_to_choice ou ambos.

id_link_attr= {attr_name}
Quando há várias fontes de identidade definidas no locatário e elas utilizam a vinculação de identidades, este item de configuração define o nome de um atributo do usuário localizado por "user_name_attr" que identifica o nome de usuário a ser utilizado para validar a senha. Exemplos de valores de ` {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"

Definindo os métodos de autenticação ( 2FA ) fornecidos na opção `auth_methods`

Como ativar ou desativar os tipos de autenticação de dois fatores apresentados na opção auth_methods.

Tabela 2. Inclusão de 2FA na escolha:
2FA Tipo Padrão Opção de ativação/desativação Descrição
OTP por SMS, OTP por e-mail ativado no_enrollments_in_choice As senhas de uso único baseadas em hora, SMS e e-mail estão incluídas por padrão e devem ser desativadas explicitamente para que não sejam utilizadas.
dispositivo desativado add_devices_to_choice As notificações push do dispositivo, tanto as biométricas (impressão digital) quanto as de presença (acesso ao aplicativo do dispositivo), estão desativadas por padrão e devem ser ativadas explicitamente, se necessário. A opção verify_method_order determina a prioridade e quais métodos serão utilizados.
transsmsotp transemailotp desativado transients_in_choice As contas temporárias (com dados não verificados de telefone celular e e-mail) estão desativadas por padrão e devem ser ativadas explicitamente, se necessário. A opção `transient_choices=` determina quais das opções `smsotp` e/ou `emailotp` serão utilizadas.
voiceotp desativado voice_in_choice A senha de uso único por meio de retorno de chamada de voz está desativada por padrão e deve ser ativada explicitamente, se necessário. O usuário deve se inscrever explicitamente neste método para que ele fique disponível.
Observação: Se a opção de configuração `ignore_isvalidated` estiver presente, os métodos `totp`, `smsotp`, `emailotp` e `voiceotp` serão incluídos, mesmo que o método não tenha sido validado com o usuário.