Pluggable Authentication Modules
A estrutura do módulo de autenticação plugáveis (PAM) permite aos administradores do sistema incorporar vários mecanismos de autenticação em um sistema existente por meio do uso de módulos plugáveis.
Os aplicativos que estão habilitados para o uso do PAM podem ser conectados a novas tecnologias sem que os aplicativos existentes sejam modificados. Essa flexibilidade oferece aos administradores as seguintes opções:
- Selecionar qualquer serviço de autenticação no sistema para um aplicativo
- Usar vários mecanismos de autenticação para um determinado serviço
- Incluir novos módulos de autenticação sem modificar os aplicativos existentes
- Usar uma senha incluída anteriormente para autenticação em vários módulos
A estrutura de um PAM é composta por uma biblioteca, módulos plugáveis e um arquivo de configuração. A biblioteca do PAM implementa a interface de programação de aplicativos (API) do PAM e é usada para gerenciar as transações do PAM e chamar a interface de programação de serviços (SPI) do PAM definida nos módulos plugáveis. Os módulos plugáveis são carregados dinamicamente pela biblioteca com base no serviço responsável pela chamada e sua entrada no arquivo de configuração. O êxito é determinado não somente pelo módulo plugável, mas também pelo comportamento definido para o serviço. Pelo conceito de empilhamento, um serviço pode ser configurado para autenticação por meio de vários métodos de autenticação. Caso haja suporte, os módulos também podem ser configurados para usar uma senha já enviada anteriormente, em vez de solicitar uma entrada adicional.
- login
- passwd
- su
- ftp
- telnet
- rlogin
- rexec
- rsh
- snappd
- imapd
- dtaction
- dtlogin
- dtsession
A ilustração a seguir mostra a interação entre os aplicativos habilitados para PAM, a biblioteca do PAM, o arquivo de configuração e os módulos PAM em um sistema que foi configurado para utilizar o PAM. Os aplicativos habilitados para o PAM chamam a API do PAM na biblioteca do PAM. A biblioteca determina o módulo adequado a ser carregado na entrada do aplicativo no arquivo de configuração e chama o SPI do PAM no módulo. A comunicação entre o módulo do PAM e o aplicativo se dá por meio do uso de uma função de conversação implementada no aplicativo. O êxito ou a falha do módulo e o comportamento definido no arquivo de configuração determinam, então, a necessidade de carregamento de outro módulo. Se for necessário, o processo continua; caso contrário, o resultado é transmitido para o aplicativo.
