Partilhar via


Usar Kerberos para SSO para SAP HANA

Este artigo descreve como configurar sua fonte de dados do SAP HANA para habilitar o logon único (SSO) do serviço do Power BI.

Importante

Como o SAP não suporta mais OpenSSL, a Microsoft também descontinuou seu suporte. Suas conexões existentes continuam funcionando, mas você não pode mais criar novas conexões. Em vez disso, use SAP Cryptographic Library (CommonCryptoLib) ou sapcrypto.

Nota

Antes de tentar atualizar um relatório baseado no SAP HANA que usa Kerberos SSO, conclua as etapas neste artigo e Configure Kerberos SSO.

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 da plataforma do servidor SAP HANA:

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

  3. Verifique se o servidor SAP HANA foi configurado para SSO baseado em Kerberos. Para obter mais informações sobre como configurar o SSO para SAP HANA usando Kerberos, consulte Logon único usando Kerberos. Veja também os links dessa página, particularmente SAP Note 1837331 – HOWTO HANA DBSSO Kerberos/Ative Directory.

Também recomendamos seguir estas etapas extras, que podem gerar uma pequena melhoria de desempenho:

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

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

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

Resolver problemas

Esta seção fornece instruções para solucionar problemas usando Kerberos para logon único (SSO) para SAP HANA no serviço Power BI. Usando estas etapas de solução de problemas, você pode autodiagnosticar e corrigir muitos problemas que você pode estar enfrentando.

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

Erro TLS/SSL (certificado)

Este problema tem vários sintomas.

  • Quando você tenta adicionar uma nova fonte de dados, você pode ver um erro como a seguinte mensagem:

    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."
    
  • Quando tenta criar ou atualizar um relatório, poderá ver a seguinte mensagem de erro:

    Captura de ecrã de uma janela de erro TLS/SSL de resolução de problemas 'Não é possível carregar o modelo'.

  • Quando você investiga o Mashup[date]*.log, você vê 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 TLS/SSL, vá para a conexão da fonte de dados e, na seção Validar Certificado do Servidor, desative a configuração, conforme mostrado na imagem a seguir:

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

Depois de desativar essa configuração, a mensagem de erro não será mais exibida.

Falsificação de identidade

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 nesta entrada de log são as informações exibidas após a ImpersonationLevel: entrada. 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 direitos de política local à conta de serviço do gateway 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, em seguida, 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). Certifique-se de que a ImpersonationLevel configuração 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 seja um problema de delegação, colete rastreamentos do Wireshark e use Kerberos como filtro. Para saber mais sobre o Wireshark e obter informações sobre erros Kerberos, consulte Erros Kerberos em capturas de rede.

Os seguintes sintomas e etapas de solução de problemas podem ajudar a solucionar alguns problemas comuns.

Questões do SPN

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

Quando você investiga mais usando rastreamentos do Wireshark, revela 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 esse, você deve adicionar um SPN a uma conta de serviço. Para obter mais informações, consulte a documentação do SAP em Configurar 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.

Sem problemas de credenciais

Pode não haver sintomas claros associados a esse problema. Quando você investiga o Mashup[date]*.log, você vê o seguinte erro:

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:

Quando você investiga o mesmo arquivo, o seguinte erro (inútil) aparece:

No credentials are available in the security package

A captura de vestígios do Wireshark revela o seguinte erro: KRB5KDC_ERR_BADOPTION.

Captura de ecrã a mostrar um 'Erro sem credenciais'.

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

Resolução

Para resolver o problema Sem credenciais, siga as etapas descritas em Configurar delegação restrita de Kerberos. Quando concluída corretamente, a guia delegação na conta de serviço do gateway reflete o arquivo HansaWorld Database (HDB) e o FQDN (nome de domínio totalmente qualificado) na lista de Serviços aos quais essa conta pode apresentar credenciais delegadas.

Validação

Seguir as etapas anteriores deve resolver o problema. Se você ainda tiver problemas de Kerberos, poderá ter uma configuração incorreta no gateway do Power BI ou no próprio servidor HANA.

Erros de credenciais

Se você tiver erros de credenciais, os erros nos logs ou rastreamentos expõem erros que descrevem Credentials are invalid ou erros semelhantes. Esses erros podem se manifestar de forma diferente no lado da fonte de dados da conexão, como o SAP HANA. A imagem a seguir mostra um exemplo de erro:

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

Sintoma 1

Nos rastreamentos de autenticação HANA, você pode ver entradas semelhantes à seguinte mensagem:

[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 na máquina 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 com êxito o relatório no serviço do Power BI.

Sintoma 2

Nos rastreamentos de autenticação HANA, você pode ver entradas semelhantes à seguinte entrada:

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 o ID externo Kerberos em Usuário HANA para determinar se os IDs correspondem corretamente.

Validação

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

Para obter mais informações sobre o gateway de dados local e o DirectQuery, consulte os seguintes recursos: