Skip to main content

Esta versión de GitHub Enterprise Server se discontinuará el 2024-03-07. No se realizarán lanzamientos de patch, ni siquiera para problemas de seguridad críticos. Para obtener rendimiento mejorado, seguridad mejorada y nuevas características, actualice a la versión más reciente de GitHub Enterprise Server. Para obtener ayuda con la actualización, póngase en contacto con el soporte técnico de GitHub Enterprise.

Referencia de configuración de SAML

Puedes ver los metadatos de SAML de tu instancia de GitHub Enterprise Server y puedes obtener más información sobre los atributos de SAML disponibles y los requisitos de respuesta.

Acerca de la configuración de SAML

A fin de usar el inicio de sesión único (SSO) de SAML para la autenticación en GitHub Enterprise Server, debes configurar tanto el proveedor de identidades (IdP) de SAML externo como tu instancia de GitHub Enterprise Server. En una configuración de SAML, GitHub Enterprise Server funciona como un proveedor de servicios (SP) de SAML. Para obtener más información, consulta "Sobre la autenticación de tu empresa".

GitHub Enterprise Server proporciona integración según la especificación SAML 2.0. Para más información, vea la wiki de SAML en el sitio web de OASIS.

Debes especificar valores únicos para el IdP de SAML al configurar el inicio de sesión único de SAML para GitHub Enterprise Server, y también valores únicos de GitHub Enterprise Server en el IdP. Para obtener más información sobre la autenticación de

Metadatos SAML

Los metadatos del proveedor de servicios para tu instancia de GitHub Enterprise Server están disponibles en http(s)://HOSTNAME/saml/metadata, donde HOSTNAME es el nombre de host de la instancia. GitHub Enterprise Server utiliza el enlace urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST.

ValueOtros nombresDescripciónEjemplo
ID de Entidad de SPURL de SP, restricción de públicoURL de nivel superior para GitHub Enterprise Serverhttp(s)://HOSTNAME
URL del Servicio de Consumidor de Aserciones (ACS) del SPURL de destino, destinatario o respuestaURL a la que el IdP enviará respuestas de SAMLhttp(s)://HOSTNAME/saml/consume
URL de inicio de sesión único (SSO) del SP
URL en donde el IdP comienza con SSOhttp(s)://HOSTNAME/sso

Atributos de SAML

Los atributos de SAML siguientes están disponibles para GitHub Enterprise Server. Puedes cambiar los nombres de los atributos en la Consola de administración, con la excepción del atributo administrator. Para más información, consulta "Administrar la instancia desde la interfaz del usuario web".

NombreObligatorioDescripción
NameIDUn identificador de usuario persistente. Se puede usar cualquier formato de identificador de nombre persistente. GitHub Enterprise Server normalizará el elemento NameID para utilizarlo como nombre de usuario a menos que se proporcione una de las aserciones alternativas. Para obtener más información, vea «Consideraciones sobre el nombre de usuario para la autenticación externa».

Nota: Es importante usar un identificador persistente y legible. El uso de un formato de identificador transitorio, como urn:oasis:names:tc:SAML:2.0:nameid-format:transient, volverá a vincular las cuentas en cada inicio de sesión, lo que puede ser perjudicial para la administración de la autorización.
SessionNotOnOrAfterLa fecha en que GitHub Enterprise Server invalida la sesión asociada. Después de la invalidación, la persona debe autenticarse nuevamente para acceder a tu instancia de GitHub Enterprise Server. Para más información, consulta "Duración y tiempo de espera de la sesión".
administratorCuando el valor es true, GitHub Enterprise Server promoverá automáticamente al usuario para que sea Administrador del sitio. Establecer este atributo en cualquier valor, excepto true, generará una disminución de nivel, siempre que el valor no esté en blanco. Omitir este atributo o dejar el valor en blanco no cambiará el rol del usuario.
usernameNombre de usuario de tu instancia de GitHub Enterprise Server.
emailsLas direcciones de correo electrónico del usuario. Puedes especificar más de una dirección. Si sincronizas el uso de licencias entre GitHub Enterprise Server y GitHub Enterprise Cloud, GitHub Connect usa emails para identificar usuarios únicos entre productos. Para más información, consulta "Sincornizar el uso de licencias entre GitHub Enterprise Server y GitHub Enterprise Cloud".
public_keysLas claves SSH públicas para el usuario. Puedes especificar más de una clave.
gpg_keysLas claves GPG para el usuario. Puedes especificar más de una clave.

A fin de especificar más de un valor para un atributo, use varios elementos <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>

Requisitos de respuesta de SAML

GitHub Enterprise Server requiere que el mensaje de respuesta del IdP cumpla con los requisitos siguientes.

  • El IdP debe proporcionar el elemento <Destination> en el documento de respuesta raíz y hacer coincidir la URL de ACS únicamente cuando se firme este documento. Si el IdP firma la aserción, GitHub Enterprise Server la omitirá.

  • El IdP siempre debe proporcionar el elemento <Audience> como parte del elemento <AudienceRestriction>. El valor debe coincidir con EntityId para GitHub Enterprise Server. Este valor es la dirección URL en la que accedes a tu instancia de GitHub Enterprise Server, como http(s)://HOSTNAME.

  • El IdP debe proteger cada aserción de la respuesta con una firma digital. Esto se puede lograr si se firma cada elemento <Assertion> individual o si se firma el elemento <Response>.

  • El IdP debe proporcionar un elemento <NameID> como parte del elemento <Subject>. Puedes utilizar cualquier formato de identificador de nombre persistente.

  • El IdP debe incluir el atributo Recipient, que se debe establecer en la URL de ACS. En el ejemplo siguiente, se muestra el atributo.

    <samlp:Response ...>
      <saml:Assertion ...>
        <saml:Subject>
          <saml:NameID ...>...</saml:NameID>
          <saml:SubjectConfirmation ...>
            <saml:SubjectConfirmationData Recipient="https://HOSTNAME/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>
    

Duración y tiempo de espera de la sesión

Para evitar que una persona se autentique con el IdP y permanezca autorizada indefinidamente, GitHub Enterprise Server invalida periódicamente la sesión de cada cuenta de usuario con acceso a tu instancia de GitHub Enterprise Server. Después de la invalidación, la persona se debe volver a autenticar con el IdP.

De manera predeterminada, si el IdP no declara un valor para el atributo SessionNotOnOrAfter, GitHub Enterprise Server invalida una sesión una semana después de una autenticación correcta con el IdP.

GitHub Enterprise Server admitirá una duración de sesión personalizada si su IdP ofrece la opción de configurar un atributo SessionNotOnOrAfter y un valor, y si este atributo se incluye en las respuestas SAML. Si su IdP no permite un atributo SessionNotOnOrAfter, un administrador del sitio puede configurar un tiempo de espera de sesión SAML personalizado para todos los usuarios de su instancia utilizando el comando ghe-config saml.default-session-expiration [seconds] en el shell administrativo.

Si defines un un valor de duración de sesión personalizado inferior a 24 horas, GitHub Enterprise Server puede solicitarle a los usuarios que se autentiquen cada vez que GitHub Enterprise Server inicia un redireccionamiento.

Independientemente del método de autenticación usado en la instancia, GitHub Enterprise Server finalizará una sesión de usuario después de dos semanas de inactividad continua.

Notas:

  • Para Microsoft Entra ID (anteriormente Azure AD), la directiva de duración configurable para los tokens de SAML no controla el tiempo de espera de sesión para GitHub Enterprise Server.
  • Actualmente, Okta no envía el atributo SessionNotOnOrAfter durante la autenticación SAML con GitHub Enterprise Server. Para más información, ponte en contacto con Okta.