À propos des problèmes liés à l’authentification SAML
GitHub Enterprise Server enregistre les messages d'erreur pour l'échec de l'authentification SAML dans les systemd journal logs pour le conteneur github-unicorn
. Vous pouvez consulter les réponses dans ce journal, et vous pouvez également configurer une journalisation plus verbeuse.
Pour plus d’informations sur les exigences de réponse SAML, consultez « Référence de configuration SAML ».
Configuration du débogage SAML
Vous pouvez configurer GitHub Enterprise Server pour écrire des journaux de débogage détaillés pour chaque tentative d’authentification SAML. Ce sortie supplémentaire vous aidera peut-être à résoudre les tentatives d’authentification avortées.
Warning
- N’activez le débogage SAML que de façon temporaire et désactivez-le de suite après avoir résolu les problèmes. Si vous laissez le débogage activé, la taille des journaux augmente beaucoup plus rapidement que d’habitude, ce qui peut avoir un impact négatif sur les performances de GitHub Enterprise Server.
- Testez les nouveaux paramètres d’authentification pour votre instance GitHub Enterprise Server dans un environnement de préproduction avant de les appliquer dans votre environnement de production. Pour plus d’informations, consultez « Configuration d’une instance de préproduction ».
-
Dans le coin supérieur droit de GitHub Enterprise Server, cliquez sur votre photo de profil, puis sur Paramètres d’entreprise.
-
Sur le côté gauche de la page, dans la barre latérale du compte d’entreprise, cliquez sur Stratégies.
-
Sous Policies , cliquez sur Options.
-
Sous « Débogage SAML », sélectionnez la liste déroulante, puis cliquez sur Activé.
-
Essayez de vous connecter à votre instance GitHub Enterprise Server via votre IdP SAML.
-
Examinez la sortie de débogage dans le journal systemd pour
github-unicorn
sur votre instance GitHub Enterprise Server. Pour plus d’informations, consultez « AUTOTITRE ». -
Une fois la résolution des problèmes terminée, sélectionnez la liste déroulante, puis cliquez sur Désactivé.
Décodage des réponses
Une sortie dans le journal système pour github-unicorn
peut être codé en Base64. Vous pouvez accéder à l’interpréteur de commandes d’administration et vous servir de l’utilitaire base64
sur votre instance GitHub Enterprise Server. pour décoder ces réponses. Pour plus d’informations, consultez « Accès à l’interpréteur de commandes d’administration (SSH) ».
Pour décoder la sortie, exécutez la commande suivante, en remplaçant ENCODED_OUTPUT par la sortie encodée du journal.
base64 --decode ENCODED_OUTPUT
Erreur : « Un autre utilisateur est déjà propriétaire du compte »
Quand un utilisateur se connecte à votre instance GitHub Enterprise Server. pour la première fois avec l’authentification SAML, GitHub Enterprise Server crée un compte d’utilisateur sur l’instance et mappe le NameID
et le nameid-format
SAML au compte.
Quand l’utilisateur se connecte à nouveau, GitHub Enterprise Server compare le mappage du NameID
et du nameid-format
du compte à la réponse de l’IdP. Si le NameID
ou nameid-format
présent dans la réponse de l’IdP ne correspond plus à la valeur que GitHub Enterprise Server attend pour l’utilisateur, la connexion échoue. L’utilisateur obtient le message suivant.
Un autre utilisateur est déjà propriétaire du compte. Demandez à votre administrateur de vérifier le journal d’authentification.
Le message indique généralement que le nom d’utilisateur ou l’adresse e-mail de la personne a changé au niveau de l’IdP. Vérifiez que le mappage du NameID
et du nameid-format
du compte d’utilisateur sur GitHub Enterprise Server correspond au NameID
et au nameid-format
de l’utilisateur au niveau de votre IdP. Pour plus d’informations, consultez « Mise à jour du paramètre NameID SAML d’un utilisateur ».
Erreur : Le destinataire dans la réponse SAML était absent ou non valide
Si le Recipient
ne correspond pas à l’URL ACS de votre instance GitHub Enterprise Server, l’un des deux messages d’erreur suivants s’affiche dans le journal d’authentification quand un utilisateur tente de s’authentifier.
Recipient in the SAML response must not be blank.
Recipient in the SAML response was not valid.
Veillez à définir la valeur de Recipient
au niveau de votre IdP sur l’URL ACS complète pour votre instance GitHub Enterprise Server. Par exemple : https://ghe.corp.example.com/saml/consume
.
Erreur : « La réponse SAML n’est pas signée ou a été modifiée »
Si votre IdP ne signe pas la réponse SAML ou que la signature ne correspond pas au contenu, le message d’erreur suivant s’affiche dans le journal d’authentification.
SAML Response is not signed or has been modified.
Veillez à configurer les assertions signées pour l’application GitHub Enterprise Server au niveau de votre IdP.
Erreur : « L’audience n’est pas valide » ou « Aucune assertion trouvée »
Si la valeur de Audience
dans la réponse de l’IdP est vide ou incorrecte, le message d’erreur suivant s’affiche dans le journal d’authentification.
Audience is invalid. Audience attribute does not match https://YOUR-INSTANCE-URL
Veillez à définir la valeur de Audience
au niveau de votre IdP sur EntityId
pour votre instance GitHub Enterprise Server., qui est l’URL complète de votre instance. Par exemple : https://ghe.corp.example.com
.
Erreur : « L’heure actuelle est antérieure à la condition NotBefore »
Cette erreur peut se produire lorsqu’il y a une trop grande différence de temps entre votre fournisseur d’identité et GitHub Enterprise Server, ce qui arrive souvent avec les fournisseurs d’identité auto-hébergés.
Pour éviter ce problème, nous vous recommandons de faire pointer votre appareil vers la même source NTP (Network Time Protocol) que votre fournisseur d’identité, si possible. Si vous rencontrez cette erreur, assurez-vous que l’heure de votre appliance est correctement synchronisée avec votre serveur NTP. Vous pouvez utiliser la commande chronyc
sur le shell d’administration pour synchroniser l’heure immédiatement. Pour plus d’informations, consultez « Configuration de la synchronisation de l’heure ».
Si vous utilisez ADFS comme fournisseur d’identité, définissez également NotBeforeSkew
dans ADFS sur 1 minute pour GitHub. Si NotBeforeSkew
est défini sur 0, même les différences de temps très petites, y compris de l’ordre de la milliseconde, peuvent entraîner des problèmes d’authentification.