É possível utilizar o console administrativo para configurar Kerberos como
o mecanismo de autenticação para o servidor de aplicativos. Quando você
tiver digitado e aplicado as informações necessárias à configuração,
o service principal name do Kerberos será formado como <nome_do_serviço>/<nome_do_host_completo>@KerberosRealm
e será usado para verificar pedidos recebidos de token do Kerberos.
Antes de Iniciar
Leia sobre Suporte do Mecanismo de Autenticação Kerberos (KRB5) para Segurança para entender
o mecanismo de autenticação do Kerberos nesta versão do WebSphere Application Server. Você deverá
ter concluído as seguintes etapas antes de configurar o Kerberos como
o mecanismo de autenticação usando o console administrativo:
- Se você ainda não tiver um arquivo de configuração Kerberos, krb5.ini ou krb5.conf,
use a tarefa de comando createkrbConfigFile para criar o arquivo de configuração
Kerberos. Leia sobre a Criando um Arquivo de Configuração do Kerberos para
obter informações adicionais.
- Você deve ter um arquivo keytab do Kerberos, krb5.keytab, que
contenha um service principal name (SPN) do Kerberos, <nome_do_serviço>/<nome_do_host_completo>@KerberosRealm, para cada máquina que executar WebSphere Application Servers.
O nome do serviço pode ser qualquer um que você escolher; o valor-padrão é WAS.
Por
exemplo, se você tiver duas máquinas servidor de aplicativos, host1.austin.ibm.com e host2.austin.ibm.com,
o arquivo keytab do Kerberos deverá conter os SPNs <service_name>/host1.austin.ibm.com e <service_name>/host2.austin.ibm.com
e suas chaves do Kerberos.
Kerberos só carregará e usará um arquivo keytab
por sessão. Por exemplo, se o Kerberos estiver configurado e você quiser
utilizar um novo arquivo keytab com o mesmo nome e local do anterior,
primeiro você deverá reiniciar o servidor para utilizar o novo
arquivo keytab.
Se
o Kerberos estiver sendo configurado pela primeira vez e, acidentalmente,
o arquivo keytab errado for usado, o Kerberos deverá ser desconfigurado e o servidor
reiniciado para que o Kerberos possa ser configurado novamente usando um novo arquivo
keytab. Isso não é verdade, no entanto, se o Java™ SE Development Kit (JDK) com SP3 estiver instalado.
Primeiro é necessário ativar a segurança global e de aplicativo.
Se o Kerberos estiver configurado
na segurança global, mas você quiser configurar o Simple and Protected
GSS-API Negotiation (SPNEGO) em um domínio usando uma região diferente do
Kerberos, você deverá, primeiramente, usar o comando Java ktab
-m para mesclar arquivos keytab existentes no arquivo keytab.
Use esse arquivo keytab mesclado para configurar o Kerberos e o SPNEGO na segurança
global e de domínio.
Procedimento
- No console administrativo, clique em Segurança > Segurança Global.
- A partir de Autenticação, clique em Configuração de Kerberos.
- Digite o nome do serviço Kerberos. Por convenção, um proprietário de serviço Kerberos é dividido em três partes: o
nome principal, o da instância e o da região do Kerberos. O formato do service principal
name do Kerberos é <nome_do_serviço>/<nome_do_host_completo>@KERBEROS_REALM. O nome do serviço é a primeira parte do nome do proprietário do serviço Kerberos. Por exemplo, em WAS/test.austin.ibm.com@AUSTIN.IBM.COM, o nome
de serviço é WAS. Neste exemplo, o arquivo keytab deve ter o nome de
proprietário de serviço Kerberos, WAS/test.austin.ibm.com@AUSTIN.IBM.COM,
e suas chaves.
- Digite o nome do arquivo de configuração Kerberos ou clique em
Procurar para localizá-lo. O arquivo de configuração do cliente Kerberos,
krb5.conf ou krb5.ini, contém informações de configuração
de Kerberos, incluindo os locais dos KDCs (Key Distribution Centers)
para a região de interesse.
O arquivo krb5.conf é o nome do arquivo padrão
para todas as plataformas, exceto para o sistema operacional Windows, que utiliza
o arquivo krb5.ini.
Nota: O nome do
arquivo de configuração Kerberos e o caminho do nome do arquivo keytab do Kerberos não
precisam ser caminhos absolutos. É possível usar variáveis WebSphere para os caminhos.
Se você tiver um ambiente combinado de plataforma, poderá usar a variável
${CONF_OR_INI}
do arquivo de configuração Kerberos. A configuração de segurança a expandirá
para ini em plataformas Windows ou
para conf em plataformas não Windows. Por exemplo:
${WAS_INSTALL_ROOT}\etc\krb5\krb5.${CFG_OR_INI}
- Opcional: Digite o nome do arquivo keytab Kerberos
ou clique em Procurar para localizá-lo. O arquivo keytab do Kerberos contém um ou mais nomes e chaves de proprietário de
serviço Kerberos.
O arquivo keytab padrão é krb5.keytab. É importante para os hosts
protegerem seus arquivos keytab Kerberos armazenando-os no disco local, o que os
torna legíveis apenas aos usuários autorizados. Consulte Criação de um Nome do Principal Serviço Kerberos e um Arquivo keytab para obter mais informações. Se você não especificar esse parâmetro, o nome do keytab padrão no arquivo de configuração do Kerberos será utilizado.
Nota: O nome do
arquivo de configuração Kerberos e o caminho do nome do arquivo keytab do Kerberos não
precisam ser caminhos absolutos. É possível usar variáveis WebSphere para os caminhos.
${WAS_INSTALL_ROOT}\etc\krb5\krb5.keytab
- Digite o nome de sua região do Kerberos no campo Nome da Região
do Kerberos. Na maioria dos casos, a região é o nome do domínio em letras
maiúsculas. Se você não especificar esse parâmetro, o nome de região do Kerberos padrão no arquivo de configuração do Kerberos será utilizado.
Por exemplo, uma máquina com o nome de domínio test.austin.ibm.com tem
um nome de região do Kerberos AUSTIN.IBM.COM.
Nota: O nome da
região do Kerberos do KDC para Microsoft é
um valor em maiúsculas do nome do Controlador de Domínio.
- Opcional: Remover Região do Kerberos do Nome do Proprietário é selecionado por padrão. Esta opção poderá ser limpa se você
quiser que o sufixo do nome do Kerberos principal seja retido. Esta opção especifica
se o módulo de login Kerberos remove o sufixo do nome de usuário
principal, começando a partir de @ que antecede o nome de região do Kerberos. Se
esse atributo for configurado como true, o sufixo do nome do
usuário do proprietário será removido. Se esse atributo estiver configurado como false,
o sufixo do nome do proprietário será retido.
O valor padrão utilizado é true.
- Opcional: Ativar Delegação de Credenciais de Kerberos é
selecionado por padrão. Esta opção especifica
se as credenciais delegadas do Kerberos são extraídas do
pedido do cliente. O token de autenticação do Kerberos (KRBAuthnToken)
será criado com o nome principal do cliente e o ticket Kerberos
delegado do cliente se o cliente receber a credencial de delegação do Kerberos
como parte do pedido. O KRBAuthnToken é armazenado no assunto do
cliente. O KRBAuthnToken é propagado para o servidor de recebimento de dados
como parte da propagação do atributo de segurança. Se um aplicativo cliente
precisar da GSSCredential para autenticação com um recurso de backend
ou um servidor de recebimento de dados, você deverá recuperar a GSSCredential do
KRBAuthnToken usando o método com.ibm.wsspi.wssecurity.platform.token.KRBAuthnToken.getGSSCredential()
e colocá-la no assunto.
Se você não marcar essa opção,
o KRBAuthnToken terá apenas o nome do Kerberos principal.
Nota: Se
este parâmetro for true e o ambiente de tempo de execução não puder
extrair uma credencial de delegação GSS do cliente, uma mensagem de aviso
será exibida.
- Clicar em OK.
Resultados
Quando você selecionar Aplicar ou OK, a
autenticação Kerberos será automaticamente testada. Se a configuração Kerberos
não for concluída, será exibida uma mensagem indicando a falha de autenticação.
Você salvou e configurou o Kerberos como o mecanismo de
autenticação do WebSphere Application
Server.
O que Fazer Depois
Para ativar o SPNEGO, clique em Ativação de Autenticação da Web SPNEGO
em Configuração Relacionada.
A autenticação da Web SPNEGO e a autenticação Kerberos usam a mesma configuração e arquivos keytab do cliente Kerberos.
Quando você tentar se autenticar no console
administrativo, use um ID do usuário administrativo existente no KDC que
esteja associado ao servidor de aplicativos. Se você usar um ID do usuário administrativo existente em um KDC diferente que não estiver associado ao
console administrativo, o processo de login falhará e a seguinte mensagem de erro
será incluída no arquivo de log:
SECJ9200E: Nenhuma credencial de Kerberos localizada no conjunto de credenciais do assunto.
Por
exemplo, o cliente pode estar associado a um KDC diferente do KDC
do servidor de aplicativos.