IBM HTTP Server ajuda: Autenticação de cliente

Autenticação de cliente

O servidor suporta três níveis de autenticação de cliente e dois tipos de controle de acesso, com base nas informações de certificação do cliente.

Nível de autenticação de clientes

O nível é definido com a diretiva SSLCLientAuth:

Se você escolher "obrigatório"...

Se você escolher o nível obrigatório de autenticação de clientes, o servidor protegido exige um certificado de todos os clientes que fazem um pedido https. O servidor valida os clientes verificando os certificados da raiz de CA de confiança no banco de dados de chaves local. Um certificado de raiz de CA de confiança é um certificado assinado por uma autoridade de certificação que é designada como uma CA de confiança no seu servidor Web.

O servidor estabelece uma conexão protegida se o cliente possui um certificado válido. O servidor nega o pedido se o cliente possuir um certificado que expirou ou se o certificado estiver assinado por uma autoridade de certificação (CA) que não está designada como uma CA de confiança no servidor.

Lembre-se de que a autenticação SSL de clientes aumenta o tráfego na rede.

Se você escolher "opcional"...

Se você escolher o nível opcional, o servidor exige um certificado do cliente. Se o cliente não fornecer um, ainda assim será estabelecida uma conexão protegida. O servidor nega o pedido se o cliente fornecer um certificado que expirou ou se o certificado estiver assinado por uma autoridade de certificação (CA) que não está designada como uma CA de confiança no servidor.

Lembre-se de que a autenticação SSL de clientes aumenta o tráfego na rede.

Se você escolher "nenhum"...

Se você escolher nenhum, o servidor protegido não exige certificados dos clientes.

Tipos de controle de acesso baseados nas informações do certificado do cliente

O tipo é definido com as diretivas SSLFakeBasicAuth ou SSLClientAuthRequire.

Nota: SSLClientAuthRequire é o tipo preferido de autenticação de clientes.

Diretiva SSLFakeBasicAuth

O uso de SSLFakeBasicAuth não é recomendado. Os arquivos de senhas que foram gerados para utilização com o código SSL do Apache (ou mod_ssl e Apache) não funcionarão com IBM HTTP Server porque o formato do nome distinto é diferente.

O tipo SSLFakeBasicAuth é um método muito simples de execução de autenticação de clientes. Se você especificar SSLFakeBasicAuth, o nome distinto do certificado do cliente e a senha (que é "password") são codificados em Base64 e colocados no cabeçalho da autorização. O módulo mod_ibm_ssl precisa ser o primeiro módulo na lista de módulos para que os módulos de autenticação subseqüentes possuam o ID e senha de autenticação básica falsa disponíveis. Lembre-se que o suporte de autenticação básica dentro de um host virtual específico não funcionará porque o ID de usuário e senha fornecidos pelo usuário serão sobrescritos pelo nome distinto e senha (que é "password") do cliente.

Para exibir o nome distinto a partir de um certificado do cliente, crie um programa CGI para imprimir a variavel de ambiente SSL_CLIENT_DN.

Diretiva SSLClientAuthRequire

O suporte SSLClientAuthRequire mais extenso permite que o Webmaster defina expressões lógicas que contêm os atributos x509. Estas expressões lógicas são então comparadas às informações do certificado do cliente para ou conceder ou negar o acesso a um objeto. Antes de todo esse processamento poder ocorrer, no entanto, o GSK primeiro valida o certificado do cliente para garantir que ele foi assinado por uma autoridade de certificação de confiança.

A diretiva SSLClientAuthRequire permite que um Webmaster crie uma expressão lógica consistindo em verificações de atributos com links com AND, OR e NOTs. Parênteses também são permitidos. Por exemplo:

SSLClientAuthRequire (CommonName = "Fred Smith" OR CommonName = "John Deere") AND Org = IBM
significa que o objeto não será servido a não ser que o certificado do cliente contenha um nome comum Fred Smith ou John Deere e a organização deve ser IBM.

Para as verificações de atributos, as únicas comparações válidas são igual e não igual (= e !=). Cada verificação de atributo pode ser unida com AND, OR, ou NOT (também &&, ||, e !). Quando múltiplas diretivas SSLClientAuthRequire são especificadas por um recurso, o efeito no recurso é como se os valores estivessem unidos por operadores Booleanos E.

Parênteses também podem ser usados para agrupar comparações. Se o valor do atributo conter um caractere não alfanumérico, o valor deve ser delimitado com aspas.

Os atributos válidos são:

IssuerStateOrProvince 
IssuerCommonName 
IssuerOrgUnit 
IssuerCountry 
IssuerLocality 
IssuerOrg 
IssuerEmail 
StateOrProvince 
CommonName 
OrgUnit 
Country 
Locality 
Org 
Email 

Também são válidos os nomes curtos:

     IST, ICN, IOU, IC, IL, IO, IE, ST, CN, OU, C, L, O, E 

Informações relacionadas