Usar o Kerberos para logon único (SSO) no SAP BW com gx64krb5

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

Importante

A Microsoft permitirá que você crie conexões usando bibliotecas de SNC (como gx64krb5), mas não dará suporte para essas configurações. Além disso, o SAP não é mais compatível com a gx64krb5 para gateways de dados locais no Power BI as etapas necessárias para configurá-lo para uso com o gateway são significativamente mais complexas em comparação a CommonCryptoLib. Como resultado, a Microsoft recomenda usar CommonCryptoLib em vez disso. Para saber mais, veja Nota SAP 352295. O gx64krb5 não permite conexões de SSO do gateway de dados para os Servidores de Mensagens do SAP BW. Somente conexões com os Servidores de Aplicativos do SAP BW são possíveis. Essa restrição não existirá se você usar CommonCryptoLib como biblioteca do SNC. Para saber mais sobre como configurar o SSO usando o CommonCryptoLib, confira Configurar o SAP BW para SSO usando o CommonCryptoLib. Use o CommonCryptoLib ou o gx64krb5 como sua biblioteca SNC, mas não ambos. Não conclua as etapas de configuração para as duas bibliotecas.

Observação

A configuração de ambas as bibliotecas (sapcrypto e gx64krb5) no mesmo servidor de gateway é um cenário sem suporte. Não é recomendável configurar ambas as bibliotecas no mesmo servidor de gateway, pois isso levará a uma mistura de bibliotecas. Se você quiser usar ambas as bibliotecas, separe totalmente o servidor de gateway. Por exemplo, configure gx64krb5 para o servidor A e, em seguida, sapcrypto para o servidor B. Lembre-se de que não há suporte para qualquer falha no servidor A que usa gx64krb5, pois o gx64krb5 não tem mais suporte do SAP e da Microsoft.

Este guia é abrangente. Se você já tiver concluído parte das etapas descritas, poderá pulá-lo. Por exemplo, talvez você já tenha configurado o servidor do SAP BW para SSO usando o gx64krb5.

Configurar o gx64krb5 no computador do gateway e no servidor do SAP BW

A biblioteca do gx64krb5 precisa ser usada pelo cliente e pelo servidor para concluir uma conexão de SSO por meio do gateway. Dessa maneira, o cliente e o servidor precisam usar a mesma biblioteca SNC.

  1. Baixe o gx64krb5.dll da Nota da SAP 2115486 (usuário s da SAP necessário). Verifique se você tem pelo menos a versão 1.0.11.x. Baixe também o gsskrb5.dll (a versão de 32 bits da biblioteca) se quiser testar a conexão SSO no GUI do SAP antes de tentar a conexão SSO por meio do gateway (recomendado). A versão de 32 bits é necessária para testar com o GUI do SAP, porque este só está disponível em 32 bits.

  2. Coloque o gx64krb5.dll em um local no computador do gateway que possa ser acessado pelo usuário do serviço do gateway. Caso você deseje testar a conexão SSO usando a GUI do SAP, coloque também uma cópia de gsskrb5.dll no computador e defina a variável de ambiente SNC_LIB para que aponte para ela. O usuário do serviço do gateway e os usuários do AD (Active Directory) que o usuário do serviço representará precisam de permissões de leitura e execução na cópia de gx64krb5.dll. Recomendamos conceder permissões nos arquivos .dll ao grupo de usuários autenticados. Para fins de teste, você também pode conceder explicitamente essas permissões para o usuário do serviço do gateway e o usuário do Active Directory usado para teste.

  3. Se o servidor do BW ainda não estiver configurado para SSO com o gx64krb5.dll, coloque outra cópia da .dll no computador do servidor do SAP BW em um local acessível ao servidor do SAP BW.

    Para saber mais sobre como configurar o gx64krb5.dll para uso com um servidor do SAP BW, confira a Documentação do SAP (usuário s do SAP necessário).

  4. Nos computadores cliente e servidor, defina as variáveis de ambiente SNC_LIB e SNC_LIB_64:

    • Se você usar gsskrb5.dll, defina a variável SNC_LIB como o caminho absoluto.
    • Se você usar gx64krb5.dll, defina a variável SNC_LIB_64 como o caminho absoluto.

Configurar um usuário do serviço do SAP BW e habilitar a comunicação SNC no servidor do BW

Conclua esta seção caso ainda não tenha configurado o servidor do SAP BW para comunicação SNC (por exemplo, SSO) usando o gx64krb5.

Observação

Esta seção pressupõe que você já criou um usuário de serviço para BW e associou a ele um SPN adequado (por exemplo, um nome que começa com SAP/ ).

  1. Permita acesso ao usuário de serviço ao Servidor de Aplicativos do SAP BW:

    1. No computador do servidor do SAP BW, adicione o usuário de serviço ao grupo Administrador Local. Abra o programa Gerenciamento de Computador e identifique o grupo Administrador Local do servidor.

      Computer Management program

    2. Clique duas vezes no grupo Administrador Local e selecione Adicionar para adicionar o usuário de serviço ao grupo.

    3. Selecione Verificar Nomes para garantir que você inseriu o nome corretamente e clique em OK.

  2. Defina o usuário de serviço do servidor do SAP BW como o usuário que o inicia no computador do servidor SAP BW:

    1. Abra Executar e insira Services.msc.

    2. Localize o serviço correspondente à instância do Servidor de Aplicativos do SAP BW, clique nele com o botão direito do mouse e selecione Propriedades.

      Screenshot of Services, with Properties highlighted

    3. Alterne para a guia Fazer logon e altere o usuário para o usuário de serviço do SAP BW.

    4. Insira a senha do usuário e selecione OK.

  3. Entre no servidor no Logon do SAP e defina os seguintes parâmetros de perfil usando a transação RZ10:

    1. Defina o parâmetro de perfil snc/identity/as como p:<o usuário de serviço do SAP BW que você criou> . Por exemplo, p:BWServiceUser@MYDOMAIN.COM. p: antecede o UPN do usuário do serviço, ao contrário de p:CN= , que precede o UPN quando você usa CommonCryptoLib como biblioteca SNC.

    2. Defina o parâmetro de perfil snc/gssapi_lib como o <caminho para gx64krb5.dll no servidor do BW>. Coloque a biblioteca em um local que o Servidor de Aplicativos do SAP BW possa acessar.

    3. Defina os seguintes parâmetros de perfil adicionais, alterando os valores conforme necessário para atender às suas necessidades. As últimas cinco opções permitem que os clientes se conectem ao servidor do SAP BW usando o Logon do SAP, sem a necessidade de ter o SNC configurado.

      Configuração Valor
      snc/data_protection/max 3
      snc/data_protection/min 1
      snc/data_protection/use 9
      snc/accept_insecure_cpic 1
      snc/accept_insecure_gui 1
      snc/accept_insecure_r3int_rfc 1
      snc/accept_insecure_rfc 1
      snc/permit_insecure_start 1
    4. Defina a propriedade snc/enable como 1.

  4. Após definir esses parâmetros de perfil, abra o Console de Gerenciamento do SAP no computador do servidor e reinicie a instância do SAP BW.

    Se o servidor não for iniciado, confirme se você definiu os parâmetros de perfil corretamente. Para saber mais sobre as configurações de parâmetro de perfil, confira a Documentação do SAP. Também é possível consultar a seção Solução de problemas neste artigo.

Mapear um usuário do SAP BW para um usuário do Active Directory

Caso ainda não tenha feito isso, mapeie um usuário do Active Directory para um usuário do Servidor de Aplicativos do SAP BW e teste a conexão de SSO no Logon do SAP.

  1. Entre no servidor SAP BW usando o Logon do SAP. Execute a transação SU01.

  2. Em Usuário, insira o usuário do SAP BW em que você quer habilitar a conexão de SSO. Selecione o ícone Editar (ícone de caneta) perto do canto superior esquerdo da janela Logon do SAP.

    SAP BW User maintenance screen

  3. Selecione a guia SNC. Na caixa de entrada do nome SNC, insira p:<seu usuário do Active Directory>@<seu domínio>. Para o nome SNC, p: deve preceder o UPN do usuário do Active Directory. Observe que o UPN diferencia maiúsculas de minúsculas.

    O usuário do Active Directory especificado deve pertencer à pessoa ou à organização para a qual você deseja habilitar o acesso SSO ao Servidor de Aplicativos do SAP BW. Por exemplo, se você quiser habilitar o acesso SSO para o usuário testuser@TESTDOMAIN.COM, insira 2p:testuser@TESTDOMAIN.COM.

    SAP BW Maintain users screen

  4. Clique no ícone Salvar (imagem de disquete) próximo ao canto superior esquerdo da tela.

Testar a entrada por meio do SSO

Verifique se você pode entrar no servidor usando o Logon do SAP por SSO como o usuário do Active Directory para o qual você habilitou acesso por SSO:

  1. Como o usuário do Active Directory para o qual você acabou de habilitar o acesso SSO, entre em um computador no domínio no qual o Logon do SAP esteja instalado. Inicie o Logon do SAP e crie uma conexão.

  2. Copie o arquivo gsskrb5.dll baixado anteriormente para o local do computador em que você fez logon. Defina a variável de ambiente SNC_LIB para o caminho absoluto desse local.

  3. Inicie o Logon do SAP e crie uma conexão.

  4. Na tela Criar Nova Entrada do Sistema, selecione Sistema Especificado pelo Usuário e, em seguida, Avançar.

    Create New System Entry screen

  5. Preencha os detalhes apropriados na próxima tela, incluindo o servidor de aplicativos, o número da instância e a ID do sistema. Em seguida, selecione Concluir.

  6. Clique com o botão direito do mouse na nova conexão, selecione Propriedades e a guia Rede.

  7. Na caixa Nome SNC, insira p:<o UPN do usuário de serviço do SAP BW> . Por exemplo, p:BWServiceUser@MYDOMAIN.COM. Selecione OK.

    System Entry Properties screen

  8. Clique duas vezes na conexão recém-criada para tentar uma conexão de SSO com o servidor SAP BW.

    Se essa conexão for bem-sucedida, vá para a próxima seção. Caso contrário, examine as etapas anteriores neste documento para garantir que foram concluídas corretamente ou examine a seção Solução de problemas. Se não for possível se conectar ao servidor SAP BW por meio do SSO neste contexto, você não poderá se conectar ao servidor SAP BW usando o SSO no contexto do gateway.

Adicionar entradas de registro ao computador do gateway

Adicione as entradas de Registro necessárias ao Registro do computador em que o gateway está instalado, bem como a computadores destinados à conexão do Power BI Desktop. Para adicionar essas entradas de Registro, execute os seguintes comandos:

  • REG ADD HKLM\SOFTWARE\Wow6432Node\SAP\gsskrb5 /v ForceIniCredOK /t REG_DWORD /d 1 /f

  • REG ADD HKLM\SOFTWARE\SAP\gsskrb5 /v ForceIniCredOK /t REG_DWORD /d 1 /f

Adicionar uma nova fonte de dados do Servidor de Aplicativos do SAP BW ao serviço do Power BI ou edite uma existente

  1. Na janela de configuração da fonte de dados, insira o Nome do host, o Número do Sistema e a ID do cliente do Servidor de Aplicativos do SAP BW, como faria para entrar no servidor SAP BW por meio do Power BI Desktop.

  2. No campo Nome do Parceiro SNC, insira p:<o SPN mapeado para o usuário do serviço do SAP BW> . Por exemplo, se o SPN for SAP/BWServiceUser@MYDOMAIN.COM, insira p:SAP/BWServiceUser@MYDOMAIN.COM no campo Nome do Parceiro SNC.

  3. Para a biblioteca SNC, selecione a opção Personalizado e forneça o caminho absoluto de GX64KRB5.DLL ou GSSKRB5.DLL no computador do gateway.

  4. Selecione Usar SSO via Kerberos para consultas do DirectQuery e Aplicar. Se a conexão de teste não for bem-sucedida, verifique se as etapas de instalação e de configuração anteriores foram concluídas corretamente.

  5. Executar um relatório do Power BI

Solução de problemas

Solução de problemas de configuração do gx64krb5

Caso ocorra algum dos problemas a seguir, siga estas etapas para solucionar problemas de instalação do gx64krb5 e de conexões SSO:

  • Você encontra erros ao concluir as etapas de configuração do gx64krb5. Por exemplo, o servidor do SAP BW não será iniciado depois que você alterar os parâmetros do perfil. Exiba os logs do servidor (... work\dev_W0 na máquina do servidor) para solucionar esses erros.

  • Não é possível iniciar o serviço do SAP BW devido a uma falha de logon. Talvez você tenha digitado a senha incorreta ao configurar o usuário Iniciar como do SAP BW. Verifique a senha entrando como o usuário de serviço do SAP BW em um computador no ambiente do Active Directory.

  • Caso você receba erros que indiquem que as credenciais da fonte de dados subjacente (por exemplo, SQL Server) estão impedindo a inicialização do servidor, verifique se você permitiu acesso ao usuário do serviço ao banco de dados do SAP BW.

  • Talvez receberá a seguinte mensagem: (GSS-API) O destino especificado é desconhecido ou inacessível. Isso geralmente significa que o nome SNC incorreto foi especificado. Use apenas p: , e não p:CN = para anteceder o UPN do usuário de serviço no aplicativo cliente.

  • Talvez receberá a seguinte mensagem: (GSS-API) Um nome inválido foi fornecido. Garanta que p: esteja no valor do parâmetro de perfil da identidade SNC do servidor.

  • Talvez receberá a seguinte mensagem: (Erro de SNC) O módulo especificado não pôde ser encontrado. Normalmente, esse erro é causado ao colocar o gx64krb5.dll em um local que exige privilégios elevados (../direitos de administrador) para acessar.

Solucionar problemas de conectividade do gateway

  1. Verifique os logs de gateway. Abra o aplicativo de configuração do gateway, selecione Diagnóstico e, em seguida, Exportar logs. Os erros mais recentes são mostrados na parte inferior de qualquer arquivo de log examinado.

    On-premises data gateway application, with Diagnostics highlighted

  2. Ative o rastreamento do SAP BW e examine os arquivos de log gerados. Há vários tipos diferentes de rastreamento do SAP BW disponíveis (por exemplo, rastreamento CPIC):

    a. Para habilitar o rastreamento CPIC, defina duas variáveis de ambiente: CPIC_TRACE e CPIC_TRACEDIR.

    A primeira variável define o nível de rastreamento e a segunda define o diretório do arquivo de rastreamento. O diretório deve ser um local onde os membros do grupo usuários autenticados possam gravar.

    b. Defina CPIC_TRACE como 3 e CPIC_TRACE_DIR como qualquer diretório em que você deseja gravar os arquivos de rastreamento. Por exemplo:

    CPIC tracing

    c. Reproduza o problema e verifique se CPIC_TRACE_DIR contém arquivos de rastreamento.

    d. Examine o conteúdo dos arquivos de rastreamento para determinar o problema de bloqueio. Por exemplo, você pode descobrir que o gx64krb5.dll não foi carregado corretamente ou que um usuário do Active Directory diferente daquele que você esperava iniciou a tentativa de conexão de SSO.

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