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:
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:
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.
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:
No diretório de instalação do gateway, localize e abra este arquivo de configuração: Microsoft.PowerBI.DataMovement.Pipeline.GatewayCore.dll.config.
Localize a propriedade
FullDomainResolutionEnabled
e altere seu valor paraTrue
.<setting name=" FullDomainResolutionEnabled " serializeAs="String"> <value>True</value> </setting>
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:
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:
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:
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
.
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:
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.
Conteúdo relacionado
Para saber mais sobre o gateway de dados local e o DirectQuery, confira estes recursos: