Na pré-autenticação, o WebFOCUS confia que a autenticação já foi efetuada, e as informações sobre a identidade do usuário são passadas para o WebFOCUS por um dos métodos descritos nos tópicos a seguir. Nesta configuração, o WebFOCUS não exibe uma página de conexão para os usuários. Certos recursos do WebFOCUS, como o acesso anônimo e o recurso que permite que usuários alterem suas próprias senhas, devem ser desabilitados.
A pré-autenticação oferece diversos benefícios, como a experiência de conexão única (SSO) para usuário e a autenticação centralizada para administradores, eliminando a necessidade de sincronização de senhas entre o WebFOCUS e outra fonte de dados. Dependendo do método de pré-autenticação escolhido, passos adicionais podem ser necessários para garantir que a configuração da pré-autenticação não seja comprometida. Por exemplo, se o ID do usuário pré-autenticado for passado em um cabeçalho HTTP, os passos devem ser efetuados para garantir que o valor deste cabeçalho não seja comprometido.
Se um usuário se conecta a partir de uma zona de segurança configurada para pré-autenticação, o WebFOCUS automaticamente:
Para portais, desabilite o link DCesconectar na sua barra de menu ou defina um valor apropriado para a definição IBI_Signout_Redirect_URL para evitar contínuas tentativas mal-sucedidas de conexão.
Por exemplo, se você estiver utilizando o sistema Web Access Management ou o OpenID, utilize o valor especificado na documentação do fornecedor para IBI_Signout_Redirect_URL. Se você estiver utilizando a Autenticação do Windows, utilize uma URL totalmente qualificada fora do aplicativo da web do WebFOCUS como o valor. Para obter mais informações sobre a definição IBI_Signout_Redirect_URL, consulte Configurações de Segurança.
Como: |
É possível configurar o WebFOCUS para pré-autenticar usuário do Microsoft Windows que foram autenticados pelo Microsoft Internet Information Services (IIS) com as suas opções de autenticação Básica ou do Windows. Esta configuração necessita de uma configuração de plug-in que permite que o IIS passe, de forma segura, as identidades de usuários para o contêiner de aplicativo da web do Java que hospeda o WebFOCUS. Informações adicionais para a configuração do IIS com o Tomcat e IIS com WebSphere estão incluídas no procedimento a seguir.
Alguns dos problemas que você pode encontrar com a Autenticação do Windows são:
Antes de começar, desempenhe as seguintes etapas caso ainda não as tenha feito.
Também recomendamos que você faça um backup do arquivo securitysettings.xml antes de alterá-lo.
Para obter mais informaões sobre como criar uma conta de administrador do WebFOCUs, consulte Como Criar uma Conta de Administrador do WebFOCUS para Fontes Externas. Para obter mais informações sobre como habilitar a zona alternativa, consulte Como Habilitar a Zona Alternativa. Para obter informações sobre como habilitar o acesso de superusuário, consulte Como Habilitar Acesso de Superusuário.
<!-- Define an AJP 1.3 Connector on port 8009 --> <Connector port="8009" protocol="AJP/1.3" tomcatAuthentication="false" redirectPort="8443" />
Clique em Salvar e saia do Console Administrativo.
Para obter mais informações sobre a definição IBI_Signout_Redirect_URL, consulte Configurações de Segurança.
Se você habilitou a zona alternativa como recomendado, é possível acessar o WebFOCUS utilizando a autenticação interna se você estiver usando a máquina do WebFOCUS. A URL é http://localhost/ibi_apps.
De forma alternativa, a pré-autenticação permite que você acesse o WebFOCUS se conectando em http://nomedamáquina/ibi_apps a partir de qualquer área de trabalho.
Observação: Se o navegador da web não estiver configurado para utilizar a Autenticação do Windows automaticamente com o domínio, o navegador irá solicitar as credenciais aos usuários quando estes se conectarem utilizando http://nomedamáquina.domínio.com/ibi_apps.
Como: |
Sistemas WebAccess Management, incluindo o CA SiteMinder, Oracle Access Manager (antigo Oblix) e o IBM Tivoli Access Manager WebSEAL podem ser utilizados para habilitar a conexão única (SSO) com o WebFOCUS. Estes sistemas interceptam solicitações para o WebFOCUS, certificam-se de que o usuário está autenticado e autorizado para acessar o WebFOCUS e, em seguida, fornecem um cabeçalho HTTP no qual o WebFOCUS pode encontrar o ID de usuário pré-autenticado. Estes sistemas interceptam e preenchem o cabeçalho HTTP em cada solicitação, portanto, o WebFOCUS pode confiar que o ID de usuário encontrado neste cabeçalho é válido.
Antes de começar, desempenhe as seguintes etapas caso ainda não as tenha feito.
Também recomendamos que você faça um backup do arquivo securitysettings.xml antes de alterá-lo.
Para obter mais informaões sobre como criar uma conta de administrador do WebFOCUs, consulte Como Criar uma Conta de Administrador do WebFOCUS para Fontes Externas. Para obter mais informações sobre como habilitar a zona alternativa, consulte Como Habilitar a Zona Alternativa. Para obter informações sobre como habilitar o acesso de superusuário, consulte Como Habilitar Acesso de Superusuário.
Observação: Algumas configurações do servidor da web alteram nomes de cabeçalho HTTP. Por exemplo, underscores (_) podem ser substituídos por hífens (-). As letras também podem ser alteradas de maiúsculas para minúsculas.
Para obter mais informações sobre a definição IBI_Signout_Redirect_URL, consulte Configurações de Segurança.
Para o CA SiteMinder, o valor é normalmente SM_USER. para o IBM Tivoli Access Manager WebSEAL, o valor é normalmente iv-user. para o Oracle Access Manager, não há valor padrão. Para obter mais informações, consulte o seu administrador Oracle Access Manager.
Como: |
Contêineres de Java, como o Apache Tomcat, IBM WebSphere e o Oracle Logic, podem autenticar usuários em nome do WebFOCUS. O contêiner de Java utiliza a chamada getRemoteUser() para fornecer IDs de usuário para o WebFOCUS.
Antes de começar, desempenhe as seguintes etapas caso ainda não as tenha feito.
Também recomendamos que você faça um backup do arquivo securitysettings.xml antes de alterá-lo.
Para obter mais informaões sobre como criar uma conta de administrador do WebFOCUs, consulte Como Criar uma Conta de Administrador do WebFOCUS para Fontes Externas. Para obter mais informações sobre como habilitar a zona alternativa, consulte Como Habilitar a Zona Alternativa. Para obter informações sobre como habilitar o acesso de superusuário, consulte Como Habilitar Acesso de Superusuário.
Para obter mais informações sobre a definição IBI_Signout_Redirect_URL, consulte Configurações de Segurança.
Como: |
Um provedor OpenID pode autenticar usuários para o WebFOCUS. Provedores com suporte incluem Google Accounts e Yahoo®, mas também é possível utilizar um provedor OpenID hospedado internamente. O WebFOCUS oferece suporte apenas para um provedor OpenID por instalação. Certifique-se de configurar a URL de desconexão adequada.
Para obter mais informações sobre como configurar o OpenID, consulte a documentação do provedor OpenID.
Antes de começar, desempenhe as seguintes etapas caso ainda não as tenha feito.
Também recomendamos que você faça um backup do arquivo securitysettings.xml antes de alterá-lo.
Para obter mais informaões sobre como criar uma conta de administrador do WebFOCUs, consulte Como Criar uma Conta de Administrador do WebFOCUS para Fontes Externas. Para obter mais informações sobre como habilitar a zona alternativa, consulte Como Habilitar a Zona Alternativa. Para obter informações sobre como habilitar o acesso de superusuário, consulte Como Habilitar Acesso de Superusuário.
Por padrão, claimedIdentityFieldValue é definido com a URL adequada para o Google Accounts. O valor padrão para attributeNameForAccountID é e-mail.
Por exemplo, para Google Accounts, digite:
https://www.google.com/accounts/Logout
Para obter mais informações sobre a definição IBI_Signout_Redirect_URL, consulte Configurações de Segurança. Para obter mais informações sobre endereços de desconexão para OpenID, consulte a documentação do provedor OpenID.
O WebFOCUS oferece suporte à conexão única para SAML 2.0. Para obter mais informações sobre a configuração do SAML com o CA SiteMinder ou CA CloudMinder, consulte:
https://techsupport.informationbuilders.com/tech/wbf/wbf_rln_saml_2.html
Como: |
É possível configurar o WebFOCUS para utiliza o Central Autenticação Service (CAS) para a pré-autenticação. CAS permite que clientes, como aplicativos da web, autentiquem usuários sem receber acesso às credenciais de segurança do usuário. Em vez disso, o cliente se autentica no servidor CAS, que, em seguida, exibe um bilhete de segurança ao cliente para validar que a conexão é segura. O cliente valida o bilhete fornecendo o próprio bilhete e seu indentificador de serviço para o servidor CAS, que retorna informações confiáveis sobre a autenticação do usuário individual.
Se o servidor CAS utilizar um certificado autoassinado, na maioria dos casos, você precisará adicionar uma autoridade de certificado assinando o certificado nos certificados de raiz confiáveis para a JVM utilizada pelo WebFOCUS.
Antes de começar, desempenhe as seguintes etapas caso ainda não as tenha feito.
Também recomendamos que você faça um backup do arquivo securitysettings.xml antes de alterá-lo.
Para obter mais informaões sobre como criar uma conta de administrador do WebFOCUs, consulte Como Criar uma Conta de Administrador do WebFOCUS para Fontes Externas. Para obter mais informações sobre como habilitar a zona alternativa, consulte Como Habilitar a Zona Alternativa. Para obter informações sobre como habilitar o acesso de superusuário, consulte Como Habilitar Acesso de Superusuário.
Especifica o protocolo de servidor CAS, a porta e a URL de conexão.
Especifica o protocolo do WebFOCUS, a porta e o contexto.
Especifica o protocolo de servidor CAS, a porta e o contexto.
Observação: As definições sendRenew, key e ticketValidationClassName não precisam ser modificadas.
Quando usuários se desconectam do WebFOCUS com esta URL, tanto a sessão do WebFOCUS quanto a sessão do CAS são terminadas.
Para obter mais informações sobre a definição IBI_Signout_Redirect_URL, consulte Configurações de Segurança. Para obter mais informações sobre endereços de desconexão para CAS, consulte a documentação do servidor CAS.
Se estiver utilizando um certificado assinado por uma autoridade de certificado confiável, o WebFOCUS estará, agora, configurado para utilizar a autenticação CAS. Se estiver utilizando um certificado autoassinado, você também precisará adicionar uma autoridade de certificado assinando o certificado nos certificados de raiz confiáveis para a JVM utilizada pelo WebFOCUS. Para obter mais informações, consulte Como Adicionar Certificado Autoconectado para a CAS Certificate Store .
O código a seguir é um exemplo de como alterar a seção casPreference do arquivo securitysettings.xml para implementar a pré-autenticação pelo CAS.
<bean id="casPreference" class="com.ibi.webapp.security.config.WFCasPreference"> <property name="loginUrl" value="https://CASServer:port/cas/login"/> <property name="serviceUrl" value="http://WebFOCUSServer:port/ibi_context/"/> <property name="sendRenew" value="false"/> <property name="key" value=""/> <property name="casServerUrlPrefix" value="https://CASServer:port/cas"/> <property name="ticketValidatorClassName" value=""/> </bean>
onde:
É o servidor ou porta CAS.
É o servidor, porta e diretório de raiz de contexto do WebFOCUS.
Se estiver utilizando um certificado autoassinado, você também precisará adicionar um certificado aos certificados de raiz confiáveis para a JVM utilizada pelo WebFOCUS.
Observação: Esta tarefa não é necessária se você estiver utilizando um certificado assinado por uma autoridade de certificado confiável.
..\..\..\bin\keytool -import -alias youralias -keystore cacerts -file path\to\youralias.crt
onde:
É o alias atribuído ao seu certificado.
É o arquivo de certificado.
Erros de validação do CAS podem ocorrer caso você esteja utilizando um certificado autoassinado que não foi adicionado à loja de certificados confiáveis. Nestes casos, você receberá uma mensagem de erro similar à seguinte:
[YYYY-MM-DD hh:mm:ss,sss] ERROR
org.jasig.cas.client.validation.Cas20ServiceTicketValidator
http-apr-8080-exec-2 - javax.net.ssl.SSLHandshakeException:
sun.security.validator.ValidatorException: PKIX path building failed:
sun.security.provider.certpath.SunCertPathBuilderException:
unable to find valid certification path to requested target
javax.net.ssl.SSLHandshakeException:
sun.security.validator.ValidatorException: PKIX path building failed:
sun.security.provider.certpath.SunCertPathBuilderException:
unable to find valid certification path to requested target
at com.sun.net.ssl.internal.ssl.Alerts.getSSLException(Unknown Source)
.
.
.
... 60 more
Caused by: sun.security.provider.certpath.SunCertPathBuilderException:
unable to find valid certification path to requested target
at sun.security.provider.certpath.SunCertPathBuilder.engineBuild(Unknown Source)
at java.security.cert.CertPathBuilder.build(Unknown Source)
... 66 more
O WebFOCUS pode ser integrado a outros aplicativos para fornecer a usuários uma experiência de conexão única (SSO). Por exemplo, usuários podem se conectar a um aplicativo da web existente com credenciais que são validadas pelo aplicativo. Se usuários clicarem em botões ou links que os levam a um portal do WebFOCUS, você pode querer que os usuários sejam automaticamente conectados ao WebFOCUS em vez de solicitar suas senhas novamente.
A melhor forma de se realizar este tipo de integração é através do desenvolvimento de um filtro de servlet de Java personalizado dentro do aplicativo da web do WebFOCUS. O Serviço de Atendimento ao Cliente pode desenvolver uma solução personalizada com base no IBIServletFilter. De forma alternativa, se os seu usuários acessarem o WebFOCUS através do IIS, é possível instalar um módulo HTTP utilizando ASP.NET no IIS.
As soluções personalizadas normalmente seguem uma destas abordagens:
O usuário inicia uma conexão com o WebFOCUS clicando em um link, botão ou guia no aplicativo da web existente. O aplicativo da web cria uma string aleatória (ou token) e armazena o token e o ID de usuário em um banco de dados que o WebFOCUS pode acessar. Este token é passado para o WebFOCUS com a solicitação de conexão por um redirecionamento HTTP 302, iniciado pelo servidor de aplicativo ou por uma solicitação JavaScript assincrônica iniciada pelo aplicativo no navegador da web.
Quando o IBIServletFilter determina que não há uma sessão do WebFOCUS associada com a solicitação SSO, o servlet faz uma solicitação ODBC para o banco de dados compartilhados para obter o ID de usuário associado ao token. A linha é excluída do banco de dados para impedir que o token seja reutilizado. O ID de usuário está definido como o valor de um cabeçalho HTTP personalizado que é passado para o WebFOCUS na pré-autenticação.
O usuário inicia uma conexão com o WebFOCUS clicando em um link, botão ou guia no aplicativo da web existente. O aplicativo da web cria um hash do ID do usuário que incorpora um segredo compartilhado com o IBIServletFilter. O hash, em seguida, é passado para o WebFOCUS. IBIServletFilter gera um hash do ID do usuário utilizando o mesmo algoritmo e segredo, e o compara com o hash passado na solicitação. Se forem iguais, o ID de usuário será considerado confiável. Se eles não forem iguais, a conexão será rejeitada.
É possível que o aplicativo da web possa gerar uma declaração SAML contendo o ID de usuário e outras informações. IBIServletFilter pode ser modificado para validar a declaração SAML passada pelo aplicativo e definida como cabeçalho HTTP com o ID do usuário.
Comunicado: Simplesmente passar o ID de usuário em um cabeçalho HTTP ou cookie não cria uma implementação SSO segura. Você deve fornecer uma forma de garantia de que o ID do usuário é válido.
Por exemplo, se você simplesmente passar o ID de usuário em um cabeçalho HTTP chamado SSO_USER, um usuário não-autorizado pode utilizar um plug-in de navegador da web para gerar o cabeçalho HTTP e preenchê-lo com um ID de usuário válido. O WebFOCUS não teria como saber que o cabeçalho HTTP foi criado por umprocesso não-autorizado. O uso de tokens de segurança, segredos compartilhados ou da integração SAML fornece a validação necessária para impedir isto.
Para obter mais informações sobre uma solução SSO personalizada, entre em contato com o Serviço de Atendimento ao Cliente.
Nesta seção: Como: |
O Departamento de Defesa dos Estados Unidos emite um cartão chamado de Cartão de Acesso Comum (CAC) para a identificação de todos os funcionários e terceirizados da instituição. Quando utilizado com a configuração adequada do leitor de cartão em uma máquina de usuário final, um servidor da web configurado para exigir certificados do lado do cliente seguindo o padrão do PKI, estes cartões podem ser utilizados para desempenhar a autenticação com base em certificados.
O WebFOCUS pode obter os atributos Nome Comum ou Nome Principal de Usuário do certificado de usuário fornecido e utilizá-los para preencher a variável REMOTE_USER. Isto fornece uma conexão confiável ao WebFOCUS utilizando o CAC.
CDeve-se configurar o servidor da web para solicitar de usuários os certificados do lado do cliente utilizando o PKI. O software de leitura de cartão ActivIdentity™ deve estar instalado corretamente nas máquinas de usuários finais antes que o WebFOCUS Client possa ser configurado para confiar no certificado do cliente. Para obter mais informações sobre como configurar o software ActivIdentity, consulte a documentação fornecida pelo Departamento de Defesa.
Este procedimento é parecido com o procedimento de configuração da pré-autenticação com segurança de contêiner Java. Antes de começar, desempenhe as seguintes etapas caso ainda não as tenha feito.
O ID de usuário da conta de administrador do WebFOCUS deve ser o valor do atributo do certificado escolhido para a definição IBI_PKI_Userid_Source.
Por exemplo, se o administrador do WebFOCUS possuir o Nome Comum (CN) Joe.Smith.1122334455 e IBI_PKI_Userid_Source estiver definido como cn, o ID de usuário do WebFOCUS deve ser Joe.Smith.1122334455. Se o administrador do WebFOCUS possuir o Nome Principal de Usuário (UPN) 1122334455@mil e IBI_PKI_Userid_Source estiver definido como upn, O ID de usuário do WebFOCUS deve ser 1122334455@mil.
Para obter mais informaões sobre como criar uma conta de administrador do WebFOCUs, consulte Como Criar uma Conta de Administrador do WebFOCUS para Fontes Externas. Para obter mais informações sobre como habilitar a zona alternativa, consulte Como Habilitar a Zona Alternativa. Para obter informações sobre como habilitar o acesso de superusuário, consulte Como Habilitar Acesso de Superusuário.
Os atributos são ativados logo após serem salvos. Não é necessário reciclar o servidor de aplicativos.
Ativa o filtro PKI que extrairá o atributo especificado na configuração IBI_PKI_Userid_Source para preencher o REMOTE_USER. O Managed Reporting e o ReportCaster devem ser configurados para usar a variável REMOTE_USER para conexão separadamente. O valor padrão é Falso. Para obter mais informações, consulte Como Configurar a Pré-Autenticação.
Especifica o atributo de certificado que deve ser usado para preencher o ID de usuário especificado pelo REMOTE_USER. Os valores possíveis são:
cn. O nome comum para o certificado. Por exemplo, Joe.Smith.1122334455.
subject. O atributo de assunto para o certificado. Este é o valor padrão.
upn. O atributo userPrincipalName da seção de Nome Alternativo do Assunto do certificado. Por exemplo, 1122334455@mil.
Devido ao modo em que o UPN é codificado, é necessário ter uma cópia da biblioteca Bouncy Castle Java Cryptography em seu caminho de classe. O download pode ser feito no site Bouncy Castle: http://www.bouncycastle.org/java.html.
Especifica uma lista de endereços IP, separados por ponto e vírgula, que serão permitidos passar pelo filtro de PKI mesmo se não houver um certificado de cliente válido na solicitação. O endereço IP do Servidor de Distribuição do ReportCaster deve ser incluído nessa lista para que o Servidor de Distribuição consiga obter o conteúdo do WebFOCUS. Segue uma lista de exemplo:
127.0.0.1;127.0.0.2
Se um endereço IP não for especificado aqui e um certificado de cliente não for fornecido, o filtro PKI retornará um erro de proibição 403 ao ser acessado.
O WebFOCUS oferece suporte de conexão única (SSO) entre um navegador da web, o WebFOCUS Client e o WebFOCUS Reporting Server para Windows. Isto inclui o suporte de imitação no Reporting Server, que significa que o recurso SSO pode ser extendido através de adaptadores RDBMS que suportam conexões confiáveis, incluindo o Microsoft SQL Server. Este tópico explica como configurar o ambiente SSO, que utiliza o suporte nativo do Kerberos no Active Directory.
O recurso SSO necessita de um domínioActive Directory m um nível funcional do Windows 2000 ou mais alto:
user_ID@domain.com
onde:
É o ID de usuário adequado.
É um domínio ou extensão disponível.
Sufixo de domínio. Normalmente, o Kerberos anexa o domínio do Windows do usuário ao ID passado para o WebFOCUS no formato ID do usuário@domínio.com Por padrão, o WebFOCUS remove o domínio do valor, deixando apenas o ID de usuário. O ID de usuário, em seguida, é utilizado para concluir o processo de conexão. Para anexar o domínio, altere a definição stripDomainSuffix para falso na seção kerberosPreference do arquivo securitysettings.xml.
Um administrador de rede com privilégios de Administrador de Domínio deve desempenhar os seguintes passos de pré-instalação. As imagens de exemplo se aplicam a um ambiente Windows 2003 ou Windows 2008.
Observação: Se você estiver executando o Windows 2008, pode ser necessário instalar o seguinte patch da Microsoft para o seu controlador de domínio para oferecer suporte ao uso de um arquivo keytab do Kerberos:
O valor especificado para Campo 1 deve começar com HTTP em maiúsculas. O formato do é
HTTP/computername.domain.ext
onde:
É o nome de domínio totalmente qualificado da máquina na qual o WebFOCUS Client será instalado.
O valor especificado para Campo 2 se torna o atributo sAMAccountName para a conta de serviço. O formato do é
http_computername
onde:
É o nome da máquina na qual o WebFOCUS será instalado.
A imagem a seguir é um exemplo da caixa de diálogo Novo Objeto - Usuário. Mostra campos que são definidos no formato recomendado, indicando que o WEBFOCUS Client será instalado em uma máquina de nome wf-kerb.
Uma caixa de diálogo de confirmação se abre, indicando que o usuário será criado com as propriedades exibidas.
Observação: A guia Delegação não é exibida na caixa de diálogo Propriedades. A guia Delegação não será exibida até que você execute o comando ktpass, como descrito na etapa 5.
Deve-se executar o ktpass a partir da linha de comando no controlador de domínio em uma linha. Substitua seus valores no exemplo como a seguir. Mantenha uma cópia da sintaxe de comando que você utiliza. Pode ser necessário para resolução de problemas no futuro.
O formato do comando ktpass é
ktpass /out filename /mapuser user_ID /princ principal /crypto encryption/pass password /ptype KRB5_NT_PRINCIPAL
onde:
É o nome que o ktpass irá utilizar para criar o arquivo keytab do Kerberos. O valor recomendado é http_nomedocomputador.keytab.
É o valor sAMAccountName fornecido na etapa 1.
É especificado através da concatenação do valor do nome de conexão do usuário fornecido na etapa 1 com @REALM, onde REALM é o domínio Kerberos. O domínio do Kerberos é normalmente o mesmo do sufixo Active Directory DNS, mas deve estar em maiúsculas.
É a opção de criptografia que será utilizada na criação do arquivo keytab. Você pode precisar baixar as mais recentes ferramentas de suporte da Microsoft para uma versão do comando ktpass que suporta o valor recomendado de RC4-HMAC-NT.
Observação: Se qualquer uma das máquinas na sua rede estiver executando o Windows 2008 R2, Windows 7 ou mais recente, você deve escolher RC4-HMAC-NT para que estas máquinas funcionem adequadamente com o Kerberos. A Microsoft removeu todo o suporte para DES das versões mais recentes do Windows.
É a senha do Windows associada à conta de serviço em texto simples.
Um comando ktpass formatado corretamente que se aplica aos exemplos fornecidos anteriormente nesta seção é:
C:\>ktpass /out http_wf-kerb.keytab /mapuser http_wf-kerb /princ HTTP/wf-kerb.ibi.com@IBI.COM /crypto RC4-HMAC-NT /pass password1 /ptype KRB5_NT_PRINCIPAL
O Windows responde com as seguintes mensagens:
Targeting domain controller: ibidca.ibi.com Successfully mapped HTTP/wf-kerb.ibi.com to http_wf-kerb. Key created. Output keytab to http_wf-kerb.keytab: Keytab version: 0x502 keysize 63 HTTP/wf-kerb.ibi.com@IBI.COM ptype 1 (KRB5_NT_PRINCIPAL) vno 2 etype 0x17 (RC4-HMAC) keylength 16 (0x0df97e7355555817c828671454137af0)
O comando ktpass adiciona um atributo chamado serviceprincipalName (SPN) e modifica o atributo userPrincipalName, como ilustrado na imagem a seguir.
Agora, a guia Delegação é exibida na caixa de diálogo Propriedades, como ilustrado na imagem a seguir.
Observação: Antes da execução do comando ktpass, a guia Delegação não será exibida. Após a execução do comando ktpass, a opção Delegação se tornará disponível.
Se estiver utilizando um ou mais cabeçalhos de host, você deve desempenhar as seguintes etapas.
O procedimento a seguir presume que há dois nomes de cabeçalho de host, wf-kerb1 e wf-kerb2.
Observação: Não crie registros C.
ktpass /in filename /out filename /princ principal /crypto encryption/pass password /ptype KRB5_NT_PRINCIPAL
ktpass /in c:\keytab\http_wf-kerb.keytab /out c:\keytab\http_wf-kerb.keytab /princ HTTP/wf-kerb1.ibi.com@IBI.COM /crypto RC4-HMAC-NT /pass password1 /ptype KRB5_NT_PRINCIPAL
A saída resulante é:
Existing keytab: Keytab version: 0x502 keysize 63 HTTP/wf-kerb.ibi.com@IBI.COM ptype 1 (KRB5_NT_PRINCIPAL) vno 2 etype 0x17 (RC4-HMAC) keylength 16 (0x5835048ce94ad0564e29a924a03510ef) NOTE: creating a keytab but not mapping principal to any user. For the account to work within a Windows domain, the principal must be mapped to an account, either at the domain level (with /mapuser) or locally (using ksetup) If you intend to map HTTP/wf-kerb1.ibi.com@IBI.COM to an account through other means or don't need to map the user, this message can safely be ignored. WARNING: pType and account type do not match. This might cause problems. Key created. Output keytab to c:\keytab\http_wf-kerb.keytab: Keytab version: 0x502 keysize 63 HTTP/wf-kerb.ibi.com@IBI.COM ptype 1 (KRB5_NT_PRINCIPAL) vno 2 etype 0x17 (RC4-HMAC) keylength 16 (0x5835048ce94ad0564e29a924a03510ef) keysize 64 HTTP/wf-kerb1.ibi.com@IBI.COM ptype 1 (KRB5_NT_PRINCIPAL) vno 1 etype 0x17 (RC4-HMAC) keylength 16 (0x5835048ce94ad0564e29a924a03510ef)
ktpass /in c:\keytab\http_wf-kerb.keytab /out c:\keytab\http_wf-kerb.keytab /princ HTTP/wf-kerb2.ibi.com@IBI.COM /crypto RC4-HMAC-NT /pass password1 /ptype KRB5_NT_PRINCIPAL
A saída resulante é:
Existing keytab: Keytab version: 0x502 keysize 63 HTTP/wf-kerb.ibi.com@IBI.COM ptype 1 (KRB5_NT_PRINCIPAL) vno 2 etype 0x17 (RC4-HMAC) keylength 16 (0x5835048ce94ad0564e29a924a03510ef) keysize 64 HTTP/wf-kerb1.ibi.com@IBI.COM ptype 1 (KRB5_NT_PRINCIPAL) vno 1 etype 0x17 (RC4-HMAC) keylength 16 (0x5835048ce94ad0564e29a924a03510ef) NOTE: creating a keytab but not mapping principal to any user. For the account to work within a Windows domain, the principal must be mapped to an account, either at the domain level (with /mapuser) or locally (using ksetup) If you intend to map HTTP/wf-kerb2.ibi.com@IBI.COM to an account through other means or don't need to map the user, this message can safely be ignored. WARNING: pType and account type do not match. This might cause problems. Key created. Output keytab to c:\keytab\http_wf-kerb.keytab: Keytab version: 0x502 keysize 63 HTTP/wf-kerb.ibi.com@IBI.COM ptype 1 (KRB5_NT_PRINCIPAL) vno 2 etype 0x17 (RC4-HMAC) keylength 16 (0x5835048ce94ad0564e29a924a03510ef) keysize 64 HTTP/wf-kerb1.ibi.com@IBI.COM ptype 1 (KRB5_NT_PRINCIPAL) vno 1 etype 0x17 (RC4-HMAC) keylength 16 (0x5835048ce94ad0564e29a924a03510ef)
Observação: É possível se referir a cada cabeçalho de host de duas formas: utilizando o nome do domínio totalmente qualificado ou o nome com uma parte. Por exemplo, você pode se referir ao primeiro cabeçalho de host como wf-kerb1.ibi.com (nome de domínio totalmente qualificado) ou como wf-kerb1 (nome com uma parte). Como resultado, quando você executa os comandos setspn neste passo, há quatro entradas.
setspn -A HTTP/wf-kerb1.ibi.com ibi\http_wf-kerb
A saída resulante é:
Registering ServicePrincipalNames for CN=http_wf-kerb,OU=USERS,OU=DEVELOPMENT, O=BIPG,OU=COR,DC=ibi,DC=com HTTP/wf-kerb1.ibi.com Updated object
setspn -A HTTP/wf-kerb1 ibi\http_wf-kerb
A saída resulante é:
Registering ServicePrincipalNames for CN=http_wf-kerb,OU=USERS,OU=DEVELOPMENT, O=BIPG,OU=COR,DC=ibi,DC=com HTTP/wf-kerb1 Updated object
setspn -A HTTP/wf-kerb2.ibi.com ibi\http_wf-kerb
A saída resulante é:
Registering ServicePrincipalNames for CN=http_wf-kerb,OU=USERS,OU=DEVELOPMENT, O=BIPG,OU=COR,DC=ibi,DC=com HTTP/wf-kerb2.ibi.com Updated object
setspn -A HTTP/wf-kerb2 ibi\http_wf-kerb
A saída resulante é:
Registering ServicePrincipalNames for CN=http_wf-kerb,OU=USERS,OU=DEVELOPMENT, O=BIPG,OU=COR,DC=ibi,DC=com HTTP/wf-kerb2 Updated object
O procedimento a seguir descreve os passos para a configuração do WebFOCUS Client.
Se as informações do sufixo do domínio forem necessárias:
<property name="stripDomainSuffix" value="false" />
O ID de usuário será criado no seguinte formato:
user_ID@mydomain.extension
A seção agora contém o seguinte código:
<property name="anonymousAuthEnabled" value="false"/> <property name="formAuthEnabled" value="false"/> <property name="stripDomainSuffix" value="true"/> . . . <property name="spnegoAuthEnabled" value="true"/>
<property name="servicePrincipal" value="HTTP/wf-kerb.ibi.com" /> <property name="keyTabLocation" value="file:c:/ibi/WebFOCUS81/ webapps/webfocus/WEB-INF/http_wf-kerb.keytab" />
Observação:Se você deseja estender o recurso SSO para um RDBMS, como o Microsoft SQL Server, defina a opção de segurança do adaptador do Servidor de Relatórios como Confiável.
Se as informações do sufixo do domínio forem necessárias:
<property name="stripDomainSuffix" value="false"/>
O ID de usuário será criado no seguinte formato:
user_ID@mydomain.extension
A seção agora contém o seguinte código:
<property name="anonymousAuthEnabled" value="false"/> <property name="formAuthEnabled" value="true"/> <property name="stripDomainSuffix" value="true"/> <property name="formAuthenticationFallbackEnabled" value="true"/> . . . <property name="spnegoAuthEnabled" value="true"/>
<property name="servicePrincipal" value="HTTP/wf-kerb.ibi.com"/> <property name="keyTabLocation" value="file:c:/ibi/WebFOCUS81/ webapps/webfocus/WEB-INF/http_wf-kerb.keytab"/>
Comunicado:
O recurso SSO necessita de um domínioActive Directory m um nível funcional do Windows 2000 ou mais alto. Os navegadores a seguir possuem suporte:
Na maioria dos casos, não é necessária configuração especial para o Google Chrome em ambientes do Microsoft Windows. Ambas as autenticações NTLM e Kerberos podem ser normalmente concluídas sem qualquer alteração na política do Chrome ou parâmetro de linha de comando especial. Se necessário, as definições podem ser configuradas com os parâmetros da linha de comando.
Por exemplo, para definir o parâmetro auth-server-whitelist, inicie o Chrome a partir da linha de comando da seguinte forma:
"C:\Users\user\AppData\Local\Google\Chrome\Application\chrome.exe"
--auth-server-whitelist="example.com"
A sintaxe é:
http://server.url.domain:port/context
Se o Kerberos estiver configurado corretamente e o seu ID de usuário tiver sido adicionado ao Managed Reporting como indicado anteriormente, a conexão ao BIP será efetuada utilizando as suas credenciais do Kerberos.
O arquivo de log edaprint do Reporting Server irá registrar solicitação de cmrpip0000xx para que o Kerberos se conecte ao agente e refletirá o seu ID de conexão do Windows no formato UPN.
A autenticação do Kerberos necessita de uma conexão sincrônica entre o Reporting Server e a sessão do navegador do usuário, mas o ReportCaster não utilizar uma sessão do navegador enquanto executa relatórios agendados. Portanto, o ReportCaster deve fornecer ao Kerberos um ID e uma senha de usuário para habilitar os relatórios.
Na ferramenta Configuração de Servidor do ReportCaster, configure cada um dos servidores de dados com os quais o ReportCaster está configurado para se comunicar. Utilize Usuário em Tipo de ID de Execução para garantir que IDs e senhas sejam solicitados uma vez aos usuário finais para cada nó.
De forma alternativa, defina Tipo de ID de Execução como Estático e forneça o ID e a senha do usuário que serão utilizados para todos os agendamentos para este Servidor de Relatórios.
A implementação do Microsoft Windows do Kerberos coloca todos os identificadores de grupo do Windows no bilhete do Kerberos de cada usuário, o que pode resultar em um bilhete grande para um usuário que pertence a muitos grupos. O bilhete do Kerberos é transportado em um cabeçalho HTTP, o que gera diversos problemas técnicos se o bilhete for grande. Se um usuário possuir mais de 100 grupos, pode ser necessário desempenhar algumas ou todas as tarefas de configuração especiais a seguir:
Também deve-se definir MaxTokenSize para os controladores de domínio.
Este tópico descreve os passos adicionais necessários para que o Kerberos funcione corretamente em um ambiente multidomínio ou de subdomínio.
Por exemplo, se você possuir usuários que são membros do SUBA.MYDOMAIN.COM, SUBB.MYDOMAIN.COM e MYDOMAIN.COM, e todos estes usuários necessitarem de acesso ao ambiente Kerberos, você deve seguir as instruções neste tópico.
Para lidar com as configurações adicionais necessárias para que o Kerberos funcione corretamente em um ambiente multidomínio, deve-se criar um arquivo de configuração do Kerberos chamado krb5.ini. Este arquivo contém todas as informações adicionais necessárias para que o Kerberos funcione corretamente quando se utiliza mais de um domínio.
Diversas versões do Java possuem um bug que não permite que diversos domínios funcionem adequadamente mesmo com a configuração krb5.ini. Como resultado, pode ser necessário atualizar a versão do Java. Para obter detalhes sobre o bug do Java, vá para o seguinte relatório de bugs do Java:
É possível criar este arquivo em qualquer lugar do sistema de arquivos, já que você irá se referir ao seu local explicitamente no futuro. Para os fins deste exemplo, crie o arquivo em:
C:\ibi\WebFOCUS81\config\krb5.ini
Substitua o nome default_realm, MYDOMAIN.COM, na última linha do exemplo, pelo nome DNS totalmente qualificado para o domínio da máquina a qual o WebFOCUS Client se uniu.
Digite o nome para default_realm em maiúsculas, já que este campo faz diferenciação entre maiúsculas e minúsculas.
[libdefaults] ticket_lifetime = 600 default_tgt_enctypes = rc4-hmac default_tgs_enctypes = rc4-hmac default_checksum = rsa-md5 forwardable = true default_realm = MYDOMAIN.COM
Se os domínios e subdomínios compartilharem controladores de domínios, você pode criar uma seção [realms] aqui e criar referências para as relações na próxima seção, [domain_realm]. A seção [domain_realm] está descrita na etapa 4.
[realms] MYDOMAIN.COM = { kdc = dc1.mydomain.com:88 kdc = dc2.mydomain.com:88 kdc = dc3.mydomain.com:88 default_domain = mydomain.com } SUBA.MYDOMAIN.COM = { kdc = dc1.suba.mydomain.com:88 kdc = dc2.suba.mydomain.com:88 default_domain = suba.ibi.com } SUBB.MYDOMAIN.COM = { kdc = dc1.subb.mydomain.com:88 kdc = dc2.subb.mydomain.com:88 default_domain = subb.ibi.com }
Com na seção [libdefaults], os valores na seção [realms] possuem diferenciação entre minúsculas e maiúsculas. Por exemplo, o primeiro nome de referência (como MYDOMAIN.COM no primeiro bloco do exemplo) deve estar em maiúsculas e o valor para default_domain, em minúsculas.
Cadaentrada para kdc deve ser referir ao nome do DNS de um controlador de domínio para o domínio aplicável. Apenas uma entrada kdc é necessária por domínio listado, mas diversas entradas kdc permitem redundância.
Um domínio direciona para o domínio de mesmo nome, mas em letras maiúsculas. Como resultado, as seguintes entradas são redundantes:
[domain_realm] .suba.mydomain.com = SUBA.MYDOMAIN.COM .subb.mydomain.com = SUBB.MYDOMAIN.COM .mydomain.com = MYDOMAIN.COM
Para obter mais informações sobre a seção [domain_realm], consulte as especificações do MIT Kerberos no website a seguir:
http://web.mit.edu/kerberos/krb5-1.4/krb5-1.4.1/doc/krb5-admin/domain_realm.html
A seção [capaths] é necessária apenas em ambientes nos quais o domínio pai não possui relações de confiança unilaterais com os domínios filho ou em ambientes nos quais diversas hierarquias de domínio são utilizadas.
Nestas situações, o protocolo do Kerberos não pode determinar como autenticar um usuário de um domínio para um recurso em outro domínio. Como resultado, as relações necessárias para completar a autenticação necessitam ser mapeadas para que o Kerberos saiba qual caminho seguir para autenticar um usuário. As relações de confiança a seguir se aplicam:
Neste exemplo, o Kerberos pode autenticar diretamente qualquer usuário a partir de SUBA.DOMAIN.COM, para qualquer recurso em SUBB.DOMAIN.COM. Para autenticar um usuário no SUBA.MYDOMAIN.COM com o MYDOMAIN.COM, deve-se autenticá-lo pelo SUBB.MYDOMAIN.COM, já que SUBA.MYDOMAIN.COM não possui uma relação de confiança direta com MYDOMAIN.COM.
[capaths] SUBA.MYDOMAIN.COM { SUBB.MYDOMAIN.COM = . MYDOMAIN.COM = SUBB.MYDOMAIN.COM } SUBB.MYDOMAIN.COM { SUBA.MYDOMAIN.COM = . MYDOMAIN.COM = . } MYDOMAIN.COM { SUBB.MYDOMAIN.COM = . SUBA.MYDOMAIN.COM = SUBB.MYDOMAIN.COM }
No primeiro bloco, há informações para a autenticação de um usuário a partir de SUBA.DOMAIN.COM. O Kerberos pode autenticar um usuário diretamente a partir de SUBA.MYDOMAIN.COM em SUBB.MYDOMAIN.COM, como representado por um ponto final (.). Para autenticar um usuário de SUBA.MYDOMAIN.COM no MYDOMAIN.COM, o Kerberos deve passar pelo SUBB.MYDOMAIN.COM. É por isso que o código exibe MYDOMAIN.COM =SUBB.MYDOMAIN.COM.
No segundo bloco, há informações para a autenticação de um usuário a partir do SUBB.MYDOMAIN.COM. O Kerberos pode autenticar um usuário diretamente de SUBB.MYDOMAIN.COM em SUBA.MYDOMAIN.COM e MYDOMAIN.COM, portanto, um ponto final (.) é incluído nas duas colunas.
No terceiro bloco, há informações para a autenticação de um usuário a partir do MYDOMAIN.COM. O Kerberos pode autenticar um usuário diretamente a partir de MYDOMAIN.COM para recursos em SUBB.MYDOMAIN.COM, como representado por um ponto final (.). O Kerberos deve autenticar um usuário de SUBA.MYDOMAIN.COM passando primeiramente por SUBB.MYDOMAIN.COM.
Para obter mais informações sobre a utilização da seção [capaths] com o protocolo Kerberos, consulte o documento a seguir da MIT:
http://web.mit.edu/kerberos/krb5-1.5/krb5-1.5.4/doc/krb5-admin/capaths.html
Após a conclusão, o seu arquivo krb5.ini terá uma aparência similar à imagem abaixo:
[libdefaults] ticket_lifetime = 600 default_tgt_enctypes = rc4-hmac default_tgs_enctypes = rc4-hmac default_checksum = rsa-md5 forwardable = true default_realm = MYDOMAIN.COM [realms] MYDOMAIN.COM = { kdc = dc1.mydomain.com:88 kdc = dc2.mydomain.com:88 kdc = dc3.mydomain.com:88 default_domain = mydomain.com } SUBA.MYDOMAIN.COM = { kdc = dc1.suba.mydomain.com:88 kdc = dc2.suba.mydomain.com:88 default_domain = suba.ibi.com } SUBB.MYDOMAIN.COM = { kdc = dc1.subb.mydomain.com:88 kdc = dc2.subb.mydomain.com:88 default_domain = subb.ibi.com } [domain_realm] .suba.mydomain.com = SUBA.MYDOMAIN.COM .subb.mydomain.com = SUBB.MYDOMAIN.COM .mydomain.com = MYDOMAIN.COM [capaths] SUBA.MYDOMAIN.COM { SUBB.MYDOMAIN.COM = . MYDOMAIN.COM = SUBB.MYDOMAIN.COM } SUBB.MYDOMAIN.COM { SUBA.MYDOMAIN.COM = . MYDOMAIN.COM = . } MYDOMAIN.COM { SUBB.MYDOMAIN.COM = . SUBA.MYDOMAIN.COM = SUBB.MYDOMAIN.COM }
Para que o Kerberos utilize o arquivo krb5.ini no WebFOCUS, deve-se referir ao local do arquivo utilizando a seguinte opção Java™. É possível especificar a opção -Djava.security.krb5.conf no Tomcat, como descrito no procedimento a seguir.
Normalmente, o diretório bin se encontra no local a seguir:
C:\ibi\tomcat\bin\
-Djava.security.krb5.conf=C:\ibi\WebFOCUS81\config\krb5.ini
Se você escolher outro local para armazenar o seu arquivo krb5.ini, você deve se referir a este local, e não ao local no exemplo anterior.
WebFOCUS |