Sobre problemas com a autenticação SAML
Os logs de mensagens de erro de GitHub Enterprise Server para autenticação SAML com falha são registrados em logs de diário do systemd para o contêiner . Você pode examinar as respostas neste log e também pode configurar o log mais detalhado.
Para mais informações sobre os requisitos de resposta SAML, confira AUTOTITLE.
Configurando a depuração do SAML
É possível configurar GitHub Enterprise Server para gravar logs de depuração detalhados para cada tentativa de autenticação SAML. Você pode solucionar falhas em tentativas de autenticação com esta saída extra.
Aviso
- Habilite apenas a depuração do SAML temporariamente e desabilite a depuração imediatamente após terminar a solução de problemas. Se você deixar a depuração habilitada, o tamanho dos logs aumentará muito mais rápido do que o normal, o que poderá ter um impacto negativo no desempenho do GitHub Enterprise Server.
- Teste as novas configurações de autenticação de sua instância do GitHub Enterprise Server em um ambiente de preparo antes de aplicá-las ao ambiente de produção. Para saber mais, confira AUTOTITLE.
-
No canto superior à direita do GitHub Enterprise Server, clique na sua imagem do perfil e clique em Configurações da empresa.
-
Em Policies, clique em Options.
-
Em "Depuração do SAML", selecione o menu suspenso e clique em Habilitado.
-
Tente entrar no sua instância do GitHub Enterprise Server pelo seu IdP do SAML.
-
Examine a saída da depuração no diário de para no sua instância do GitHub Enterprise Server. Para saber mais, confira AUTOTITLE.
-
Quando terminar de resolver os problemas, selecione o menu suspenso e clique em Desabilitado.
Decodificar respostas
Alguma saída no diário de para pode ser codificada em Base64. Você pode acessar o shell administrativo e usar o utilitário em sua instância do GitHub Enterprise Server para decodificar essas respostas. Para saber mais, confira AUTOTITLE.
Para decodificar a saída, execute o comando a seguir, substituindo pela saída codificada do log.
base64 --decode ENCODED_OUTPUT
Erro: "Outro usuário já possui a conta"
Quando um usuário entra em sua instância do GitHub Enterprise Server pela primeira vez com a autenticação SAML, GitHub cria uma conta de usuário na instância e mapeia SAML e para a conta.
Quando o usuário se conecta novamente, o GitHub Enterprise Server compara o mapeamento de e da conta com a resposta do IdP. Se ou na resposta do IdP não corresponder mais aos valores esperados do GitHub para o usuário, ocorrerá uma falha na entrada. O usuário receberá a seguinte mensagem.
Outro usuário já possui a conta. Solicite ao administrador que verifique o registro de autenticação.
De modo geral, a mensagem indica que o nome de usuário ou endereço de email da pessoa foi alterado no IdP. Verifique se o mapeamento de e da conta do usuário no GitHub Enterprise Server corresponde a e do usuário no IdP. Para saber mais, confira AUTOTITLE.
Erro: O destinatário na resposta SAML estava em branco ou não era válido.
Se a URL do ACS em sua instância do GitHub Enterprise Server não corresponder, uma das duas mensagens de erro a seguir aparecerá no registro de autenticação quando um usuário tentar se autenticar.
Recipient in the SAML response must not be blank.
Recipient in the SAML response was not valid.
Defina o valor de no IdP como a URL completa do ACS de sua instância do GitHub Enterprise Server. Por exemplo, .
Erro: "Resposta do SAML não foi assinada ou foi modificada"
Se seu IdP não assinar a resposta do SAML ou a assinatura não corresponder ao conteúdo, será exibida a seguinte mensagem de erro no registro de autenticação.
SAML Response is not signed or has been modified.
Verifique se você configurou as declarações assinadas para o aplicativo GitHub no seu IdP.
Erro: "Audiência é inválida" ou "Nenhuma declaração encontrada"
Se a resposta do IdP tiver um valor ausente ou incorreto para , a mensagem de erro a seguir será exibida no log de autenticação.
Audience is invalid. Audience attribute does not match https://YOUR-INSTANCE-URL
Defina o valor de no IdP como a de sua instância do GitHub Enterprise Server, que é a URL completa da instância. Por exemplo, .
Erro: "A hora atual é anterior à condição NotBefore"
Esse erro pode ocorrer quando há uma diferença de tempo muito grande entre o IdP e o GitHub, o que geralmente ocorre com IdPs auto-hospedados.
Para evitar esse problema, recomendamos apontar o dispositivo para a mesma origem do protocolo NTP que o IdP, se possível. Se você encontrar esse erro, verifique se a hora no dispositivo está sincronizada corretamente com o servidor NTP. Use o comando chronyc no shell administrativo para sincronizar a hora imediatamente. Para saber mais, confira Configurar a sincronização de hora.
Se você usa o ADFS como o IdP, defina também NotBeforeSkew no ADFS como 1 minuto para o GitHub. Se NotBeforeSkew for definido como 0, mesmo diferenças de tempo muito pequenas, incluindo milissegundos, poderão causar problemas de autenticação.
Erro: incompatibilidade de código hash
Um erro "Digest mismatch" indica que seu IdP SAML está usando um certificado de autenticação SAML diferente daquele que você carregou para o GitHub, ou o Signature Method ou o Digest Method configurado no GitHub difere do que seu IdP está usando.
Baixe novamente esse certificado SAML do seu IdP e valide-o usando uma ferramenta online, como a ferramenta Format a x509 cert do OneLogin. Depois carregue o certificado SAML novamente na seção "Authentication" no console de gerenciamento do GitHub Enterprise Server. Confira AUTOTITLE.