GitHub introdujo un encabezado temporal de solicitud llamado X-GitHub-Stateless-S2S-Token para respaldar la adopción gradual de un nuevo formato de token para los tokens de instalación de GitHub App. Con este encabezado, los desarrolladores pueden probar de antemano el impacto del nuevo formato de token y, si es necesario, mantener el formato de token existente.
Contenido principal
Encabezado X-GitHub-Stateless-S2S-Token
Al establecer este encabezado en la solicitud POST /app/installations/:installation_id/access_tokens, se puede anular la decisión del servidor sobre el despliegue del formato de token.
| Valor del encabezado | Efecto |
|---|---|
enabled |
Devuelve un token sin estado (formato JWT) sin importar el avance del despliegue. |
disabled |
Devuelve un token con estado (opaco heredado) incluso si la integración está incluida en el despliegue. |
| (ausente) | Sigue el comportamiento normal del despliegue. |
Nuevo formato de token (JWT con prefijo ghs_)
El nuevo token sin estado tiene formato JWT con el prefijo ghs_, mide alrededor de 520 caracteres e incluye dos puntos (.). El token con estado existente es una cadena opaca más corta y no contiene puntos.
Los desarrolladores deben verificar lo siguiente para validar que su aplicación maneja correctamente el nuevo formato de token.
- Eliminar suposiciones codificadas sobre la longitud del token
- Actualizar las expresiones regulares usadas para validar tokens (expresión recomendada:
ghs_[A-Za-z0-9\._]{36,}) - Configurar las columnas de la base de datos usadas para almacenar tokens para que permitan al menos 520 caracteres
- Hacer que el código de inspección o validación de tokens trate los tokens
ghs_como cadenas opacas
Cómo prepararse
- Probar con
enabled: llamar al endpoint con el encabezado de opt-in y confirmar que la app acepta el nuevo formato de token de extremo a extremo. - Probar con
disabled: confirmar que la app también funciona con el formato opaco heredado, para que siga operando normalmente si los tokens sin estado no están disponibles temporalmente. - Quitar el encabezado: una vez validadas ambas rutas, eliminar el encabezado. El despliegue de GitHub administrará automáticamente el formato de token.
Notas
- Este encabezado es temporal y dejará de ser compatible en el futuro en una fecha que se anunciará por separado.
- Los tokens de instalación de apps existentes seguirán funcionando hasta que expiren.
- Este cambio aplica a los entornos GitHub Enterprise Cloud y Data Residency; GitHub Enterprise Server no se ve afectado.
- En despliegues futuros, el nuevo formato de token solo se aplicará a los tokens server-to-server de instalación de GitHub App (incluido
GITHUB_TOKENde Actions).
Puedes consultar más detalles en el blog de GitHub.
Aún no hay comentarios.