Acerca de la configuración de SAML
Para usar el inicio de sesión único (SSO) de SAML para la autenticación en GitHub Enterprise Cloud, debes configurar tanto el proveedor de identidades (IdP) de SAML externo como tu empresa u organización en GitHub.com. En una configuración de SAML, GitHub Enterprise Cloud funciona como un proveedor de servicios (SP) de SAML.
Debes especificar valores únicos para el IdP de SAML al configurar el inicio de sesión único de SAML para GitHub Enterprise Cloud, y también valores únicos de GitHub Enterprise Cloud en el IdP. Para obtener más información sobre la configuración del inicio de sesión único de SAML para GitHub Enterprise Cloud, consulta "Configurar el inicio de sesión único de SAML para tu empresa" o "Habilitar y probar el inicio de sesión único SAML para tu organización".
Metadatos SAML
Los metadatos del proveedor de servicios para GitHub Enterprise Cloud están disponibles para organizaciones o empresas con el inicio de sesión único de SAML. GitHub Enterprise Cloud utiliza el enlace urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST
.
Las organizaciones
Puedes configurar el inicio de sesión único de SAML para una organización individual en la empresa. También puedes configurarlo para una organización si usas una organización individual en GitHub Enterprise Cloud y no una cuenta empresarial. Para obtener más información, vea «Administrar el inicio de sesión único de SAML para tu organización».
Los metadatos del proveedor de servicios para una organización en GitHub.com están disponibles en https://github.com/orgs/ORGANIZATION/saml/metadata
, donde ORGANIZATION es el nombre de la organización en GitHub.com.
Value | Otros nombres | Descripción | Ejemplo |
---|---|---|---|
ID de Entidad de SP | URL de SP, restricción de público | URL de nivel superior para la organización en GitHub.com | https://github.com/orgs/ORGANIZATION |
URL del Servicio de Consumidor de Aserciones (ACS) del SP | URL de destino, destinatario o respuesta | URL a la que el IdP enviará respuestas de SAML | https://github.com/orgs/ORGANIZATION/saml/consume |
URL de inicio de sesión único (SSO) del SP | |||
URL en donde el IdP comienza con SSO | https://github.com/orgs/ORGANIZATION/sso |
Empresas
Los metadatos del proveedor de servicios para una empresa en GitHub.com están disponibles en https://github.com/enterprises/ENTERPRISE/saml/metadata
, donde ENTERPRISE es el nombre de la empresa en GitHub.com.
Value | Otros nombres | Descripción | Ejemplo |
---|---|---|---|
ID de Entidad de SP | URL de SP, restricción de público | URL de nivel superior para la empresa en GitHub.com | https://github.com/enterprises/ENTERPRISE |
URL del Servicio de Consumidor de Aserciones (ACS) del SP | URL de destino, destinatario o respuesta | URL a la que el IdP enviará respuestas de SAML | https://github.com/enterprises/ENTERPRISE/saml/consume |
URL de inicio de sesión único (SSO) del SP | |||
URL en donde el IdP comienza con SSO | https://github.com/enterprises/ENTERPRISE/saml/sso |
Atributos de SAML
Los atributos de SAML siguientes están disponibles para GitHub Enterprise Cloud.
Nombre | Obligatorio | Descripción |
---|---|---|
NameID | Un identificador de usuario persistente. Se puede usar cualquier formato de identificador de nombre persistente. Si usas una empresa con Enterprise Managed Users, GitHub Enterprise Cloud 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. | ||
SessionNotOnOrAfter | La fecha en que GitHub Enterprise Cloud invalida la sesión asociada. Después de la invalidación, la persona debe autenticarse nuevamente para acceder a los recursos de la empresa. Para más información, consulta "Duración y tiempo de espera de la sesión". | |
emails | Las direcciones de correo electrónico del usuario. 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_keys | Si configuras el inicio de sesión único de SAML para una empresa y utilizas Enterprise Managed Users, las claves SSH públicas para el usuario. Puedes especificar más de una clave. | |
gpg_keys | Si configuras el inicio de sesión único de SAML para una empresa y usas Enterprise Managed Users, las 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 Cloud 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 Cloud la omitirá. -
El IdP siempre debe proporcionar el elemento
<Audience>
como parte del elemento<AudienceRestriction>
. El valor debe coincidir conEntityId
para GitHub Enterprise Cloud.- Si configuras SAML para una organización, este valor es
https://github.com/orgs/ORGANIZATION
. - Si configuras SAML para una empresa, esta dirección URL es
https://github.com/enterprises/ENTERPRISE
.
- Si configuras SAML para una organización, este valor es
-
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://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>
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 Cloud invalida periódicamente la sesión de cada cuenta de usuario con acceso a los recursos de la empresa. 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 Cloud invalida una sesión 24 horas después de una autenticación correcta con el IdP.
Para personalizar la duración de la sesión, puedes definir el valor del atributo SessionNotOnOrAfter
en el IdP. Si defines un valor inferior a 24 horas, GitHub Enterprise Cloud puede solicitarle a los usuarios que se autentiquen cada vez que GitHub Enterprise Cloud inicia un redireccionamiento.
Para evitar errores de autenticación, se recomienda una duración de sesión mínima de 4 horas. Para obtener más información, vea «Autenticación SAML».
Notas:
- Para Azure AD, la directiva de duración configurable para los tokens SAML no controla el tiempo de espera de sesión para GitHub Enterprise Cloud.
- Actualmente, Okta no envía el atributo
SessionNotOnOrAfter
durante la autenticación SAML con GitHub Enterprise Cloud. Para más información, ponte en contacto con Okta.