Erro ao salvar relatório no Reporting Services 2016

Olá pessoal, tudo certo?

Fiquei ausente uns dias mas estamos de volta, hoje compartilharei um problema que tive na empresa que trabalho.

O time de BI, resolveu implementar o Reporting Services 2016, na realidade o projeto inicial era instalar o Datazen, mas como a ferramenta foi integrada ao Reporting Services 2016, resolvemos iniciar o projeto com o Reporting Services, assim fizemos a instalação do SQL Server 2016 com o Reporting Service, fizemos a configuração com sucesso, porém na hora de salvar os relatórios estava dando o seguinte erro:

Erro RS

System.Reflection.TargetInvocationException Exception has been thrown by the target of an invocation. — System.InvalidOperationException This implementation is not part of the Windows Platform FIPS validated cryptographic algorithms.

Após algumas consultas no nosso amigo Google, descobri que o problema era porque o FIPS estava habilitado no servidor, consultei o time de segurança da possibilidade de desabilita-lo, e fui informado que não é possível por causa da política de segurança da empresa.

Diante do cenário, juntamente com o Dirceu Resende, começamos a buscar uma solução de contorno e encontramos um documento da Microsoft que diz que “This is happening because FIPS is enabled on the Reporting Services server and Report Manager does not support the Local Security Policy “System cryptograph” ou seja o Reporting Services não é suportado, e recomenda desabilitar a policy, o que não é permitido no ambiente da empresa.

Se você tiver esse problema, e puder desabilitar a policy do FIPS, basta alterar somente um registro.

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\fipsalgorithmpolicy

Setar o valor da chave “Enabled” para “0”.

Como não posso desabilitar o FIPS, encontrei uma solução de contorno no Fórum Technet, nele a solução proposta é para editar o arquivo machine.config do .NetFrameWork (C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Config) e adicionar a seguinte configuração ao final do arquivo.

<mscorlib>
    <cryptographySettings>
        <cryptoNameMapping>   
            <cryptoClasses>
                <cryptoClass
                    SHA256CSP="System.Security.Cryptography.SHA256CryptoServiceProvider, System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
            </cryptoClasses>            
            <!-- name mappings -->           
            <nameEntry
                name="SHA256"
                class="SHA256CSP" />
            <nameEntry
                name="SHA256CryptoServiceProvider"
                class="SHA256CSP" />
            <nameEntry
                name="System.Security.Cryptography.SHA256CryptoServiceProvider"
                class="SHA256CSP" /> 
            <nameEntry
                name="System.Security.Cryptography.SHA256"
                class="SHA256CSP"/>      
        </cryptoNameMapping>          
    </cryptographySettings>
</mscorlib>

Após editar o arquivo machine.config, é necessário reiniciar o serviço do Reporting Service, recomendo que você faça um backup do arquivo antes de alterar.

Feito o procedimento acima, conseguimos publicar os relatórios com sucesso.

Bom por hoje é isso.

Abraços,

Tiago Neves

One Comment

Deixe uma resposta