Usar o Kerberos para SSO (logon único) no SAP HANA

Este artigo descreve como configurar a fonte de dados do SAP HANA para habilitar o SSO no serviço do Power BI.

Importante

Como o SAP deixou de suportar o OpenSSL, a Microsoft também descontinuou o suporte. As conexões existentes continuam funcionando, mas você não pode mais criar conexões. No lugar do OpenSSL use a CommonCryptoLib (Biblioteca de Criptografia SAP) ou o sapcrypto.

Observação

Antes de tentar atualizar um relatório baseado em SAP HANA que usa o SSO do Kerberos, conclua as etapas deste artigo e as etapas contidas em Configurar o SSO do Kerberos.

Habilitar o SSO para SAP HANA

Para habilitar o SSO para SAP HANA, execute as seguintes etapas:

  1. Verifique se o servidor SAP HANA está executando a versão mínima necessária, que depende do nível de plataforma de servidor SAP HANA:

  2. No computador do gateway, instale o driver ODBC mais recente do SAP HANA. A versão mínima é o HANA ODBC versão 2.00.020.00 de agosto de 2017.

  3. Verifique se o servidor do SAP HANA foi configurado para SSO baseado em Kerberos. Para saber mais sobre como configurar o SSO para o SAP HANA usando o Kerberos, confira Logon único usando o Kerberos. Confira também os links dessa página, particularmente a Nota SAP 1837331 – INSTRUÇÕES de SSO do BD HANA Kerberos/Active Directory.

Também recomendamos seguir estas etapas adicionais, que podem produzir uma pequena melhoria no desempenho:

  1. No diretório de instalação do gateway, localize e abra este arquivo de configuração: Microsoft.PowerBI.DataMovement.Pipeline.GatewayCore.dll.config.

  2. Localize a propriedade FullDomainResolutionEnabled e altere seu valor para True.

    <setting name=" FullDomainResolutionEnabled " serializeAs="String">
          <value>True</value>
    </setting>
    
  3. Execute um relatório do Power BI.

Solucionar problemas

Esta seção fornece instruções sobre como solucionar problemas usando o Kerberos para SSO (logon único) para SAP HANA no serviço do Power BI. Ao seguir essas etapas de solução de problemas, você consegue diagnosticar e corrigir os problemas que está enfrentando.

Para seguir as etapas nesta seção, você precisa coletar logs de gateway.

Erro de SSL (certificado)

Este problema tem vários sintomas.

  • Ao tentar adicionar uma nova fonte de dados, aparece um erro semelhante ao seguinte:

    Unable to connect: We encountered an error while trying to connect to.
    Details: "We could not register this data source for any gateway
    instances within this cluster.
    Please find more details below about specific errors for each gateway instance."
    
  • Ao tentar criar ou atualizar um relatório, a seguinte mensagem de erro pode aparecer:

    Captura de tela de uma janela de erro de TLS/SSL

  • Ao investigar o Mashup[date]*.log, você verá a seguinte mensagem de erro:

    A connection was successfully established with the server, 
    but then an error occurred during the login process and 
    the certificate chain was issued by an authority that is not trusted.
    

Resolução

Para resolver esse erro de TLS/SSL, vá até a conexão da fonte de dados e na seção Validar certificado do servidor, desabilite a configuração, conforme mostrado na seguinte imagem:

Captura de tela da resolução da janela de erro de TLS/SSL desabilitando o certificado.

Depois de desabilitar essa configuração, a mensagem de erro não é mais exibida.

Representação

As entradas de log para representação contêm entradas semelhantes a:

About to impersonate user DOMAIN\User (IsAuthenticated: True, ImpersonationLevel: Impersonation).

O elemento importante nessa entrada de log é a informação mostrada após a entrada ImpersonationLevel: . Qualquer valor diferente de Impersonation revela que a representação não está ocorrendo corretamente.

Resolução

Você pode configurar ImpersonationLevel corretamente seguindo as instruções em Conceder à conta de serviço do gateway, os direitos da política local no gateway.

Depois de alterar o arquivo de configuração, reinicie o serviço de gateway para que a alteração entre em vigor.

Validação

Atualize ou crie o relatório e colete os logs do gateway. Abra o arquivo GatewayInfo mais recente e verifique a seguinte cadeia de caracteres: About to impersonate user DOMAIN\User (IsAuthenticated: True, ImpersonationLevel: Impersonation). Verifique se a configuração ImpersonationLevel retorna Impersonation.

Delegação

Os problemas de delegação geralmente aparecem no serviço do Power BI como erros genéricos. Para garantir que o problema não é de delegação, colete os rastreamentos do Wireshark e use o Kerberos como filtro. Para saber mais sobre o Wireshark e obter informações sobre erros do Kerberos, confira os Erros do Kerberos em capturas de rede.

Os sintomas e as etapas de solução de problemas a seguir ajudam a corrigir alguns problemas comuns.

Problemas de SPN

Se você vir o seguinte erro: The import [table] matches no exports. Did you miss a module reference?: ao investigar o Mashup[data]*.log, você estará enfrentando problemas de SPN (nome da entidade de serviço).

Ao investigar mais detalhadamente usando o rastreamento do Wireshark, você encontra o erro KRB4KDC_ERR_S_PRINCIPAL_UNKOWN, o que significa que o SPN não foi encontrado ou não existe. A imagem a seguir mostra um exemplo:

Captura de tela mostrando um erro de nome da entidade de serviço.

Resolução

Para resolver problemas de SPN como este, você deve adicionar um SPN a uma conta de serviço. Para saber mais, consulte a documentação do SAP em Configurar o Kerberos para hosts de banco de dados SAP HANA.

Além disso, siga as instruções de resolução descritas na próxima seção.

Problemas de falta de credenciais

É possível que não haja sintomas claros associados a esse problema. Ao investigar o Mashup[data]*.log, o seguinte erro estará presente:

29T20:21:34.6679184Z","Action":"RemoteDocumentEvaluator/RemoteEvaluation/HandleException","HostProcessId":"1396","identity":"DirectQueryPool","Exception":"Exception:\r\nExceptionType: Microsoft.Mashup.Engine1.Runtime.ValueException, Microsoft.MashupEngine, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35\r\nMessage:

Ao investigar o mesmo arquivo mais detalhadamente, o seguinte erro (que não ajuda muito) aparece:

No credentials are available in the security package

A coleta do rastreamentos do Wireshark apresenta o seguinte erro: KRB5KDC_ERR_BADOPTION.

Captura de tela mostrando 'Erro de falta de credenciais '.

Geralmente esses erros significam que o arquivo SPN hdb/hana2-s4-sso2.westus2.cloudapp.azure.com foi encontrado, mas não está na lista dos Serviços aos quais essa conta pode apresentar credenciais delegadas no painel Delegação da conta de serviço do Gateway.

Resolução

Para resolver o problema Sem credenciais, siga as etapas descritas em Configurar a delegação restrita de Kerberos. Após concluir as etapas, a guia Delegação na conta de serviço do gateway refletirá o HDB (arquivo de Banco de Dados HansaWorld) e o FQDN (nome de domínio totalmente qualificado) na lista dos Serviços aos quais essa conta pode apresentar credenciais delegadas.

Validação

A execução das etapas anteriores deve resolver o problema. Caso ainda tenha problemas com o Kerberos, talvez haja uma configuração incorreta no gateway do Power BI ou no servidor HANA.

Erros de credenciais

Se ocorrerem erros de credenciais, os erros nos logs ou nos rastreamentos mostrarão que as Credentials are invalid ou mostrarão erros semelhantes. Esses erros podem aparecer de forma diferente no lado da fonte de dados da conexão, como o SAP HANA. A seguinte imagem mostra um exemplo de erro:

Captura de tela mostrando um erro de credenciais inválidas.

Sintoma 1

Nos rastreamentos de autenticação do HANA, podem aparecer entradas semelhantes a:

[Authentication|manager.cpp:166] Kerberos: Using Service Principal 
Name johnny@contoso.com@CONTOSO.COM with name type: GSS_KRB5_NT_PRINCIPAL_NAME 
[Authentication|methodgssinitiator.cpp:367] Got principal name: 
johnny@contoso.com@CONTOSO.COM

Resolução

Siga as instruções descritas em Definir parâmetros de configuração de mapeamento de usuário no computador do gateway, mesmo que você já tenha configurado o serviço Microsoft Entra Connect.

Validação

Depois de concluir a validação, você pode carregar o relatório com êxito no serviço do Power BI.

Sintoma 2

Nos rastreamentos de autenticação do HANA, podem aparecer entradas semelhantes a:

Authentication ManagerAcceptor.cpp(00233) : Extending list of expected
external names by johnny@CONTOSO.COM (method: GSS) Authentication 
AuthenticationInfo.cpp(00168) : ENTER getAuthenticationInfo 
(externalName=johnny@CONTOSO.COM) Authentication AuthenticationInfo.cpp(00237) : 
Found no user with expected external name!

Resolução

Verifique a ID externa do Kerberos no Usuário do HANA para determinar se as IDs correspondem corretamente.

Validação

Depois de resolver o problema, você conseguirá criar ou atualizar os relatórios no serviço do Power BI.

Para saber mais sobre o gateway de dados local e o DirectQuery, confira estes recursos: