Resolvendo o erro “Cannot load library libgssapi_krb5.so.2” em containers linux no .NET 8
Ao desenvolver aplicativos .NET em um ambiente containerizado, você pode se deparar com o erro “Cannot load library libgssapi_krb5.so.2”. Essa mensagem geralmente indica um problema relacionado à autenticação ao conectar seu aplicativo a um banco de dados SQL Server.
Log apresentado no container docker:
A biblioteca libgssapi_krb5.so.2 está associada ao protocolo Kerberos, um mecanismo de autenticação amplamente utilizado em redes corporativas.
As imagens dos Quando você configura sua connection string para usar Trusted_Connection=true, está habilitando a autenticação Windows integrada, que exige a presença dessa biblioteca.
Por que o erro ocorre em containers Linux?
Containers Linux não possuem o suporte completo para a autenticação Windows integrada a partir do .NET 8 Preview 7, as distribuições Alpine, Debian e Ubuntu não tem mais este item para economizar 2.7 Mb no tamanho da imagem, e a Microsoft avaliou que era um cenário que não era mais utilizado. Ao tentar carregar a biblioteca libgssapi_krb5.so.2, o sistema operacional não a encontra, gerando o erro.
Como resolver o problema:
A solução mais simples é desabilitar a autenticação Windows integrada, configurando Trusted_Connection=false em sua connection string.
Com isto tudo irá funcionar normalmente desde que sua conexão seja baseada em usuário e senha e não em autenticação Windows!
Mas também existe como instalar, caso você tenha um cenário que obrigue a ter este tipo de autenticação, mas aí é só dar uma olhada no artigo citado nas referências e encontrará como instalar.
Gostou do artigo? clique no ícone👏e me siga para ver as próximas publicações !! Quer ver mais conteúdos, acesse minhas redes através do Linktree: https://linktree.com/nizzola
Referências:
https://learn.microsoft.com/en-us/dotnet/core/compatibility/containers/8.0/krb5-libs-package