Skip to main content

Référence de configuration SAML

Vous pouvez examiner les métadonnées SAML pour votre organisation ou entreprise sur GitHub Enterprise Cloud, et vous pouvez découvrir plus en détail les attributs SAML disponibles et les exigences en matière de réponses.

À propos de la configuration SAML

Pour utiliser l'authentification unique SAML pour l'authentification sur GitHub Enterprise Cloud, vous devez configurer votre fournisseur d'identité SAML externe et votre entreprise ou votre organisation sur GitHub.com. Dans une configuration SAML, GitHub Enterprise Cloud fonctionne en tant que fournisseur de services SAML. Pour plus d'informations sur l'authentification pour votre entreprise, consultez « À propos de la gestion de l'identité et de l'accès ».

GitHub Enterprise Cloud fournit une intégration conformément à la spécification SAML 2.0. Pour plus d'informations, consultez le Wiki SAML sur le site web OASIS.

Vous devez entrer des valeurs uniques à partir de votre fournisseur d'identité SAML lors de la configuration de l'authentification unique SAML pour GitHub Enterprise Cloud, et vous devez également entrer des valeurs uniques à partir de GitHub Enterprise Cloud sur votre fournisseur d'identité. Pour plus d'informations sur l'authentification pour

Métadonnées SAML

Les métadonnées du fournisseur de services pour GitHub Enterprise Cloud sont disponibles pour les organisations ou les entreprises avec l'authentification unique SAML. GitHub Enterprise Cloud utilise la liaison urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST.

Organisations

Vous pouvez configurer l'authentification unique SAML pour une organisation individuelle dans votre entreprise. Vous pouvez également configurer l'authentification unique SAML pour une organisation si vous utilisez une organisation individuelle sur GitHub Enterprise Cloud et n'utilisez pas de compte d'entreprise. Pour plus d'informations, consultez « Gestion de l’authentification unique SAML pour votre organisation ».

Les métadonnées du fournisseur de services pour une organisation sur GitHub.com sont disponibles sur https://github.com/orgs/ORGANIZATION/saml/metadata, où ORGANIZATION est le nom de votre organisation sur GitHub.com.

ValeurAutres nomsDescriptionExemple
ID d'entité de fournisseur de servicesURL du fournisseur de services, restriction d'audienceURL de niveau supérieur pour votre organisation sur GitHub.comhttps://github.com/orgs/ORGANIZATION
URL Assertion Consumer Service (ACS) du fournisseur de serviceURL de réponse, de destinataire ou de destinationURL où l'IdP envoie des réponses SAMLhttps://github.com/orgs/ORGANIZATION/saml/consume
URL d'authentification unique du fournisseur de services
URL à laquelle le fournisseur d'identité commence l'authentification uniquehttps://github.com/orgs/ORGANIZATION/sso

Entreprises

Les métadonnées du fournisseur de services pour une entreprise sur GitHub.com sont disponibles sur https://github.com/enterprises/ENTERPRISE/saml/metadata, où ENTERPRISE est le nom de votre entreprise sur GitHub.com.

ValeurAutres nomsDescriptionExemple
ID d'entité de fournisseur de servicesURL du fournisseur de services, restriction d'audienceURL de niveau supérieur pour votre entreprise sur GitHub.comhttps://github.com/enterprises/ENTERPRISE
URL Assertion Consumer Service (ACS) du fournisseur de serviceURL de réponse, de destinataire ou de destinationURL où l'IdP envoie des réponses SAMLhttps://github.com/enterprises/ENTERPRISE/saml/consume
URL d'authentification unique du fournisseur de services
URL à laquelle le fournisseur d'identité commence l'authentification uniquehttps://github.com/enterprises/ENTERPRISE/saml/sso

Attributs SAML

Les attributs SAML suivants sont disponibles pour GitHub Enterprise Cloud.

NomObligatoireDescription
NameIDIdentificateur d'utilisateur persistant. Il est possible d'utiliser n'importe quel format d'identificateur de nom persistant.
Si vous utilisez une entreprise avec des Enterprise Managed Users, GitHub Enterprise Cloud normalise l'élément NameID à utiliser en tant que nom d'utilisateur, sauf si l'une des autres assertions est fournie. Pour plus d'informations, consultez « Considérations relatives au nom d'utilisateur pour une authentification externe ».

Remarque : Il est important d'utiliser un identificateur explicite et persistant. L'utilisation d'un format d'identificateur temporaire comme urn:oasis:names:tc:SAML:2.0:nameid-format:transient entraîne une nouvelle liaison des comptes à chaque connexion, ce qui peut nuire à la gestion des autorisations.
SessionNotOnOrAfterLa date à laquelle GitHub Enterprise Cloud invalide la session associée. Après l'invalidation, la personne doit s'authentifier une fois de plus pour accéder aux ressources de votre entreprise. Pour plus d'informations, consultez « Durée et délai d'expiration de session ».
emailsAdresses e-mail de l'utilisateur. Si vous synchronisez l'utilisation de licence entre GitHub Enterprise Server et GitHub Enterprise Cloud, GitHub Connect utilise emails pour identifier les utilisateurs uniques parmi les produits. Pour plus d'informations, consultez « Synchronisation de l’utilisation des licences entre GitHub Enterprise Server et GitHub Enterprise Cloud ».
public_keysSi vous configurez l'authentification unique SAML pour une entreprise et que vous utilisez Enterprise Managed Users, les clés SSH publiques pour l'utilisateur. Vous pouvez spécifier plus d'une clé.
gpg_keysSi vous configurez l'authentification unique SAML pour une entreprise et que vous utilisez Enterprise Managed Users, lesclés GPG pour l'utilisateur. Vous pouvez spécifier plus d'une clé.

Pour spécifier plusieurs valeurs pour un même attribut, utilisez plusieurs éléments <saml2:AttributeValue>.

<saml2:Attribute FriendlyName="public_keys" Name="urn:oid:1.2.840.113549.1.1.1" NameFormat="urn:oasis:names:tc:SAML:2.0:attrname-format:uri">
    <saml2:AttributeValue>ssh-rsa LONG KEY</saml2:AttributeValue>
    <saml2:AttributeValue>ssh-rsa LONG KEY 2</saml2:AttributeValue>
</saml2:Attribute>

Exigences en matière de réponse SAML

GitHub Enterprise Cloud nécessite que le message de réponse de votre fournisseur d'identité réponde aux exigences suivantes.

  • Votre IdP doit fournir l'élément <Destination> dans le document de réponse racine et correspondre à l'URL ACS uniquement lorsque le document de réponse racine est signé. Si votre fournisseur d'identité signe l'assertion, GitHub Enterprise Cloud ignore l'assertion.

  • Votre fournisseur d'identité doit toujours fournir l'élément <Audience> dans le cadre de l'élément <AudienceRestriction>. La valeur doit correspondre à votre EntityId pour GitHub Enterprise Cloud.

    • Si vous configurez SAML pour une organisation, cette valeur est https://github.com/orgs/ORGANIZATION.
    • Si vous configurez SAML pour une entreprise, cette URL est https://github.com/enterprises/ENTERPRISE.
  • Votre fournisseur d'identité doit protéger chaque assertion dans la réponse avec une signature numérique. Pour ce faire, vous pouvez signer chaque élément <Assertion> individuel ou l'élément <Response>.

  • Votre fournisseur d'identité doit fournir un élément <NameID> dans le cadre de l'élément <Subject>. Vous pouvez utiliser n'importe quel format d'identificateur de nom persistant.

  • Votre fournisseur d'identité doit inclure l'attribut Recipient, qui doit être défini sur l'URL ACS. L'exemple suivant illustre l'attribut.

    <samlp:Response ...>
      <saml:Assertion ...>
        <saml:Subject>
          <saml:NameID ...>...</saml:NameID>
          <saml:SubjectConfirmation ...>
            <saml:SubjectConfirmationData Recipient="https://github.com/enterprises/ENTERPRISE/saml/consume" .../>
          </saml:SubjectConfirmation>
        </saml:Subject>
        <saml:AttributeStatement>
          <saml:Attribute FriendlyName="USERNAME-ATTRIBUTE" ...>
            <saml:AttributeValue>monalisa</saml:AttributeValue>
          </saml:Attribute>
        </saml:AttributeStatement>
      </saml:Assertion>
    </samlp:Response>
    

Durée et délai d'expiration de session

Pour empêcher une personne de s'authentifier auprès de votre fournisseur d'identité et de rester autorisée indéfiniment, GitHub Enterprise Cloud invalide régulièrement la session pour chaque compte d'utilisateur ayant accès aux ressources de votre entreprise. Après l'invalidation, la personne doit s'authentifier à nouveau auprès de votre fournisseur d'identité.

Par défaut, si votre fournisseur d'identité n'affirme pas de valeur pour l'attribut SessionNotOnOrAfter, GitHub Enterprise Cloud invalide une session 24 heures après l'authentification réussie auprès de votre fournisseur d'identité.

GitHub Enterprise Cloud prend en charge une durée de session personnalisée si votre fournisseur d'identité fournit la possibilité de configurer un attribut et une valeur SessionNotOnOrAfter .

Si vous définissez une valeur de durée de session personnalisée inférieure à 24 heures, GitHub Enterprise Cloud peut inviter les utilisateurs à s'authentifier chaque fois que GitHub Enterprise Cloud lance une redirection.

Pour éviter les erreurs d'authentification, nous recommandons une durée minimale de session de 4 heures. Pour plus d'informations, consultez « Résolution des problèmes d’authentification SAML ».

Remarques :

  • Pour Microsoft Entra ID (précédemment appelé Azure AD), la stratégie de durée de vie configurable pour les jetons SAML ne contrôle pas le délai d'expiration de session pour GitHub Enterprise Cloud.
  • Okta n'envoie pas actuellement l'attribut SessionNotOnOrAfter lors de l'authentification SAML avec GitHub Enterprise Cloud. Pour plus d'informations, contactez Okta