Compartilhar via


Use SAML (Security Assertion Markup Language) para logon único do Power BI em fontes de dados locais

A habilitação do SSO (logon único) torna mais fácil a atualização de dados locais nos relatórios e painéis do Power BI, respeitando as permissões de usuários que são configuradas nessas fontes. Use SAML (Security Assertion Markup Language) para possibilitar a conectividade ininterrupta de logon único.

Observação

Você pode se conectar a apenas a uma fonte de dados usando logon único do SAML com um gateway de dados local. Para se conectar a uma fonte de dados adicional usando o logon único do SAML, você deve usar um gateway de dados local diferente.

Fontes de dados com suporte para SAML

No momento, a Microsoft é compatível com SAP HANA com SAML. Para saber mais sobre como configurar e definir o logon único para o SAP HANA usando o SAML, confira SSO do SAML para a Plataforma BI para HANA.

Temos compatibilidade com outras fontes de dados para o Kerberos, incluindo o SAP HANA.

Para SAP HANA, recomenda-se habilitar a criptografia antes de estabelecer uma conexão de SSO do SAML. Para habilitar a criptografia, configure o servidor do HANA para aceitar conexões criptografadas. Também configure o gateway para usar a criptografia para se comunicar com o servidor do HANA. Como o driver ODBC do HANA não criptografa declarações SAML por padrão, a declaração SAML assinada será enviada do gateway para o servidor do HANA às claras e estará vulnerável à interceptação e reutilização por terceiros.

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.

Configurar a fonte de dados e o gateway

Para usar o SAML, é necessário estabelecer uma relação de confiança entre os servidores do HANA em que você quer habilitar o SSO e o gateway. Nesse cenário, o gateway atua como IdP (provedor de identidade) do SAML. Estabeleça essa relação de várias maneiras. O SAP recomenda o uso do CommonCryptoLib para concluir as etapas de configuração. Para saber mais, confira a documentação oficial da SAP.

Criar os certificados

Estabeleça uma relação de confiança entre o servidor do HANA e o IdP do gateway assinando o certificado X509 do IdP do gateway com uma AC (autoridade de certificação) raiz, considerada confiável pelo servidor do HANA.

Execute as seguintes etapas para criar os certificados:

  1. No dispositivo que executa o SAP HANA, crie uma pasta vazia para armazenar os certificados e acesse a pasta.

  2. Crie os certificados raiz executando o seguinte comando:

    openssl req -new -x509 -newkey rsa:2048 -days 3650 -sha256 -keyout CA_Key.pem -out CA_Cert.pem -extensions v3_ca'''
    

    Não se esqueça de copiar e guardar a frase secreta para usar esse certificado para assinar outros certificados. Os arquivos CA_Cert.pem e CA_Key.pem serão criados.

  3. Crie os certificados do IdP executando o seguinte comando:

    openssl req -newkey rsa:2048 -days 365 -sha256 -keyout IdP_Key.pem -out IdP_Req.pem -nodes
    

    Os arquivos IdP_Key.pem e IdP_Req.pem serão criados.

  4. Assine os certificados do IdP com os certificados raiz:

    openssl x509 -req -days 365 -in IdP_Req.pem -sha256 -extensions usr_cert -CA CA_Cert.pem -CAkey CA_Key.pem -CAcreateserial -out IdP_Cert.pem
    

    Os arquivos CA_Cert.srl e IdP_Cert.pem serão criados. Neste momento, apenas o arquivo IdP_Cert.pem é importante.

Criar o mapeamento para o certificado do provedor de identidade do SAML

Para criar o mapeamento para o certificado do provedor de identidade do SAML, siga as etapas:

  1. No SAP HANA Studio, clique com o botão direito do mouse no nome do servidor do SAP HANA e selecione Segurança>Abrir Console de Segurança>Provedor de Identidade do SAML.

  2. Selecione a opção Biblioteca de Criptográfica do SAP. Não use a opção de Biblioteca de Criptografia do OpenSSL, que é preterida pelo SAP.

    Screenshot of the

  3. Importe o certificado assinado IdP_Cert.pem clicando no botão azul importar, mostrado na imagem a seguir:

    Screenshot of the

  4. Não esqueça de atribuir um nome ao provedor de identidade.

Importar e criar os certificados assinados no HANA

Para importar e criar os certificados assinados no HANA, siga as etapas:

  1. No SAP HANA Studio, execute a seguinte consulta:

    CREATE CERTIFICATE FROM '<idp_cert_pem_certificate_content>'
    

    Aqui está um exemplo:

    CREATE CERTIFICATE FROM
    '-----BEGIN CERTIFICATE-----
    MIIDyDCCArCgA...veryLongString...0WkC5deeawTyMje6
    -----END CERTIFICATE-----
    '
    
  2. Se não houver um PSE (ambiente de segurança pessoal) com finalidade SAML, crie um executando a seguinte consulta no SAP HANA Studio:

    CREATE PSE SAMLCOLLECTION;
    set pse SAMLCOLLECTION purpose SAML;
    
  3. Adicione o certificado assinado recém-criado ao PSE executando o seguinte comando:

    alter pse SAMLCOLLECTION add CERTIFICATE <certificate_id>;
    

    Por exemplo:

    alter pse SAMLCOLLECTION add CERTIFICATE 1978320;
    

    Verifique a lista de certificados criados executando a seguinte consulta:

    select * from PUBLIC"."CERTIFICATES"
    

    O certificado agora está instalado corretamente. Para confirmar a instalação, execute a seguinte consulta:

    select * from "PUBLIC"."PSE_CERTIFICATES"
    

Mapear o usuário

Para mapear o usuário, siga as etapas:

  1. No SAP HANA Studio, selecione a pasta Segurança.

    Screenshot of the Security folder structure on the left pane.

  2. Expanda Usuários e selecione o usuário que deseja mapear para o usuário do Power BI.

  3. Marque a caixa de seleção SAML e selecione Configurar, conforme mostrado na imagem a seguir:

    Screenshot of the

  4. Escolha o provedor de identidade criado na seção Criar o mapeamento para o certificado do provedor de identidade do SAML. Em Identidade Externa, insira o UPN do usuário do Power BI (geralmente é o endereço de email que o usuário usa para entrar no Power BI) e selecione Adicionar.

    Screenshot of the

    Se você tiver configurado o gateway para usar a opção de configuração ADUserNameReplacementProperty, insira o valor que substituirá o UPN original do usuário do Power BI. Por exemplo, se você definiu ADUserNameReplacementProperty para SAMAccountName, insira o SAMAccountName do usuário.

Configurar o gateway

Agora que o certificado e a identidade do gateway foram configurados, converta o certificado em um arquivo de formato PFX e configure o gateway para usar o certificado:

  1. Converta o certificado para o formato PFX executando o comando a seguir. Esse comando nomeia o arquivo resultante como samlcert.pfx e define root como a senha, conforme mostrado abaixo:

    openssl pkcs12 -export -out samltest.pfx -in IdP_Cert.pem -inkey IdP_Key.pem -passin pass:root -passout pass:root
    
  2. Copie o arquivo PFX para o computador do gateway:

    a. Clique duas vezes em samltest.pfx e selecione Computador Local>Avançar.

    b. Insira a senha e selecione Avançar.

    c. Selecione Colocar todos os certificados no repositório a seguir e depois Procurar>Pessoal>OK.

    Screenshot of the

    d. Selecione Avançar e, em seguida, selecione Concluir.

  3. Para conceder à conta de serviço do gateway o acesso à chave privada do certificado, siga as etapas:

    a. No computador do gateway, execute o MMC (Console de Gerenciamento Microsoft).

    Screenshot of the gateway machine

    b. No MMC, selecione Arquivo>Adicionar/Remover Snap-in.

    Screenshot of the

    c. Selecione Certificados>Adicionar e Conta de computador>Avançar.

    d. Selecione Computador Local>Concluir>OK.

    e. Expanda Certificados>Pessoal>Certificados e encontre o certificado.

    f. Clique com o botão direito do mouse no certificado e selecione Todas as Tarefas>Gerenciar Chaves Privadas.

    Screenshot of the

    g. Adicione a conta de serviço de gateway à lista. Por padrão, a conta é NT SERVICE\PBIEgwService. Descubra qual conta está executando o serviço de gateway executando services.msc e localizando Serviço de gateway de dados local.

    Screenshot of the

Por fim, adicione a impressão digital do certificado à configuração do gateway:

  1. Para listar os certificados em seu computador, execute o seguinte comando do PowerShell:

    Get-ChildItem -path cert:\LocalMachine\My
    
  2. Copie a impressão digital do certificado criado.

  3. Acesse o diretório do gateway, que por padrão é C:\Program Files\Gateway de dados local.

  4. Abra o PowerBI.DataMovement.Pipeline.GatewayCore.dll.config e encontre a seção SapHanaSAMLCertThumbprint. Cole a impressão digital copiada na etapa 2.

  5. Reinicie o serviço do gateway.

Executar um relatório do Power BI

Agora você pode usar a página Gerenciar Gateway no Power BI para configurar a fonte de dados do SAP HANA. Em Configurações Avançadas, habilite o SSO por meio do SAML. Ao fazer isso, você pode publicar relatórios e conjuntos de dados associados à fonte de dados.

 Screenshot of advanced settings with single sign-on for SAML.

Observação

O SSO usa a Autenticação do Windows, portanto, certifique-se de que a conta do Windows pode acessar o computador do gateway. Caso contrário, adicione NT-AUTHORITY\Usuários Autenticados (S-1-5-11) ao grupo "Usuários" do computador local.

Solução de problemas usando o SAML para logon único no SAP HANA

Esta seção fornece etapas abrangentes sobre como solucionar problemas usando o SAML para logon único no SAP HANA. O uso dessas etapas ajuda a diagnosticar e corrigir os problemas que você possa enfrentar.

Credenciais rejeitadas

Depois de configurar o SSO baseado em SAML, talvez apareça o seguinte erro no portal do Power BI: “As credenciais fornecidas não podem ser usadas para a fonte SapHana”. Esse erro indica que as credenciais do SAML foram rejeitadas pelo SAP HANA.

Os rastreamentos de autenticação do lado do servidor fornecem informações detalhadas para solução de problemas com credenciais no SAP HANA. Para configurar o rastreamento no servidor SAP HANA, siga estas etapas:

  1. No servidor SAP HANA, ative o rastreamento de autenticação executando a consulta a seguir:

    ALTER SYSTEM ALTER CONFIGURATION ('indexserver.ini', 'SYSTEM') set ('trace', 'authentication') = 'debug' with reconfigure 
    
  2. Reproduza o problema.

  3. No SAP HANA Studio, abra o console de administração e selecione a guia Arquivos de Diagnóstico.

  4. Abra o rastreamento mais recente do servidor de indexação e procure por SAMLAuthenticator.cpp.

    Deve existir uma mensagem de erro detalhada indicando a causa raiz, como no exemplo a seguir:

    [3957]{-1}[-1/-1] 2018-09-11 21:40:23.815797 d Authentication   SAMLAuthenticator.cpp(00091) : Element '{urn:oasis:names:tc:SAML:2.0:assertion}Assertion', attribute 'ID': '123123123123123' is not a valid value of the atomic type 'xs:ID'.
    [3957]{-1}[-1/-1] 2018-09-11 21:40:23.815914 i Authentication   SAMLAuthenticator.cpp(00403) : No valid SAML Assertion or SAML Protocol detected
    
  5. Depois de solucionar o problema, desative o rastreamento de autenticação executando a consulta a seguir:

    ALTER SYSTEM ALTER CONFIGURATION ('indexserver.ini', 'SYSTEM') UNSET ('trace', 'authentication');
    

Verificar e solucionar problemas de erros do gateway

Para seguir os procedimentos nesta seção, é necessário coletar os logs do gateway.

Erro de SSL (certificado)

Sintomas do erro

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, aparece uma mensagem de erro como a da imagem a seguir:

Screenshot of a 'Cannot load model' troubleshooting SSL error window.

Ao investigar o Mashup[data]*.log, aparece o seguinte 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 SSL, vá para a conexão da fonte de dados e na lista suspensa Validar Certificado do Servidor, selecione Não conforme mostrado na seguinte imagem:

Screenshot showing the S S L error being resolved on the 'Data Source Settings' pane.

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

Erro de SignXML do gateway

O erro SignXML do gateway pode ser o resultado de configurações incorretas no SapHanaSAMLCertThumbprint ou pode ser um problema com o servidor HANA. As entradas nos logs de gateway ajudam a identificar onde o problema está e como resolvê-lo.

Sintomas do erro

Registros de log para SignXML: Found the cert...: se o arquivo GatewayInfo[data].log contém esse erro, o certificado SignXML foi encontrado, e seus esforços para solucionar o problema devem se concentrar nas etapas descritas na seção “Verificar e solucionar problemas no servidor HANA”.

Registros de log para Couldn't find saml cert: se o arquivo GatewayInfo[data].log contém esse erro, o SapHanaSAMLCertThumbprint foi definido incorretamente. A seção de resolução a seguir descreve como resolver o problema.

Resolução

Para definir corretamente o SapHanaSAMLCertThumbprint, siga as instruções na seção "Configurar o gateway". As instruções começam com Por fim, adicione a impressão digital do certificado à configuração do gateway.

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

Validação

Quando SapHanaSAMLCertThumbprint estiver definido corretamente, os logs do gateway terão entradas que incluirão SignXML: Found the cert.... Neste ponto, você deve conseguir prosseguir para a seção “Verificar e solucionar problemas no servidor HANA.

Se o gateway não conseguir usar o certificado para assinar a asserção SAML, aparecerá um erro nos logs semelhante ao seguinte:

GatewayPipelineErrorCode=DM_GWPipeline_UnknownError GatewayVersion= InnerType=CryptographicException InnerMessage=<pi>Signing key is not loaded.</pi> InnerToString=<pi>System.Security.Cryptography.CryptographicException: Signing key is not loaded.

Para resolver esse erro, siga as instruções começando na etapa 3 da seção "Configurar o gateway".

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

Verificar e solucionar problemas no servidor HANA

Use as soluções nesta seção se o gateway encontrar o certificado e assinar a asserção SAML, mas ainda estiver exibindo erros. Você precisa coletar os rastreamentos de autenticação do HANA, conforme descrito anteriormente na seção "Credenciais rejeitadas".

O provedor de Identidade SAML

A presença da cadeia de caracteres Found SAML provider nos rastreamentos de autenticação do HANA indica que o provedor de identidade do SAML está configurado corretamente. Se a cadeia de caracteres não está presente, a configuração não está correta.

Resolução

Primeiro, determine se a organização está usando OpenSSL ou commoncrypto como o sslcryptoprovider. Para determinar qual provedor está sendo usado, faça o seguinte:

  1. Abra o SAP HANA Studio.

  2. Abra o Console de Administração para o locatário que está sendo usado.

  3. Selecione a guia Configuração e use sslcryptoprovider como filtro, conforme mostrado na seguinte imagem:

    Screenshot of the sslcryptoprovider information in SAP HANA Studio.

Em seguida verifique se a biblioteca de criptográfica está definida corretamente, seguindo as etapas:

  1. Vá até o Console de Segurança no SAP HANA Studio selecionando a guia Provedores de Identidade do SAML e siga um destes procedimentos:

    • Se o sslcryptoprovider for OpenSSL, escolha Biblioteca de Criptográfica do OpenSSL.
    • Se o sslcryptoprovider for commonCrypto, escolha Biblioteca Criptográfica do SAP.

    Na imagem a seguir, a Biblioteca Criptográfica do SAP está selecionada:

    Screenshot of SAP HANA Studio with 'SAP Cryptographic Library' selected as the sslcryptoprovider.

  2. Implante as alterações selecionando o botão Implantar no canto superior direito, conforme mostrado na imagem a seguir:

    Screenshot of the 'Deploy' button for deploying your solution changes.

Validação

Quando configurados corretamente, os rastreamentos apresentarão Found SAML provider e não apresentarão SAML Provider not found. Prossiga para a próxima seção "Solucionar problemas da assinatura de asserção SAML".

Se o provedor criptográfico estiver definido, mas o SAML Provider not found ainda estiver sendo relatado, procure uma cadeia de caracteres no rastreamento que comece com o seguinte texto:

Search SAML provider for certificate with subject =

Nessa cadeia de caracteres, verifique se o assunto e o emissor são exatamente iguais às mostradas na guia do provedor de identidade SAML, no Console de Segurança. Um caractere de diferença é suficiente para causar o problema. Se encontrar uma diferença, altere a Biblioteca Criptográfica do SAP para que as entradas sejam exatamente iguais.

Se a alteração da Biblioteca Criptográfica do SAP não corrigir o problema, edite manualmente os campos Emitido Para e Emitido Por clicando duas vezes nos campos.

Solucionar problemas da assinatura de asserção SAML

Encontre rastreamentos de autenticação do HANA que contêm entradas semelhantes às seguintes:

[48163]{-1}[-1/-1] 2020-09-11 21:15:18.896165 i Authentication SAMLAuthenticator.cpp(00398) : Unable to verify XML signature [48163]{-1}[-1/-1] 2020-09-11 21:15:18.896168 i Authentication MethodSAML.cpp(00103) : unsuccessful login attempt with SAML ticket!

A presença dessas entradas significa que a assinatura não é confiável.

Resolução

Se estiver usando o OpenSSL como o seu sslcryptoprovider, verifique se os arquivos trust.pem e key.pem estão no diretório do SSL. Para saber mais, confira o blog da SAP Proteger a comunicação entre o SAP HANA Studio e o servidor do SAP HANA com SSL.

Se estiver usando o commoncrypto como o seu sslcryptoprovider, verifique se há uma coleção com o seu certificado no locatário.

Validação

Quando configurados corretamente, os rastreamentos apresentarão Found valid XML signature.

Solucionar problemas do mapeamento UPN

Encontre rastreamentos do HANA que contêm entradas semelhantes às seguintes:

SAMLAuthenticator.cpp(00886) : Assertion Subject NameID: `johnny@contoso.com` SAMLAuthenticator.cpp(00398) : Database user does not exist

O erro indica que o nameId johnny@contoso.com foi encontrado nas asserções SAML, mas não existe ou não está mapeado corretamente no servidor HANA.

Resolução

Acesse o usuário do banco de dados do HANA e, na caixa de seleção SAML selecionada, selecione o link Configurar. A seguinte janela é exibida:

Screenshot showing that the incorrect user name is displayed.

Como a mensagem de erro descreve, o HANA estava tentando localizar johnny@contoso.com , mas na identidade externa está exibindo somente johnny. Estes valores precisam ser iguais. Para resolver o problema, em Identidade Externa, altere o valor para johnny@contoso.com . Observe que esse valor diferencia maiúsculas de minúsculas.

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