Estás viendo la documentación de Apigee y Apigee Hybrid.
Consulta la documentación de Apigee Edge.
Apigee proporciona un conjunto de herramientas y políticas que te permiten implementar la autenticación basada en tokens de OAuth 2.0 para proteger tus APIs. OAuth2, que se describe en la IETF RFC 6749, es el estándar abierto más compatible para la autenticación y la autorización de las APIs. Establece el token como una credencial de formato estándar que las aplicaciones cliente envían a las implementaciones de API. La implementación de la API puede verificar el token para determinar si el cliente tiene autorización para acceder a la API.
Apigee permite a los desarrolladores generar tokens de acceso o actualización mediante la implementación de cualquiera de los cuatro tipos de otorgamiento de OAuth2 (credenciales de cliente, contraseña, implícito y código de autorización) mediante la política de OAuthv2. Además, los desarrolladores de APIs pueden usar Apigee para implementar concesiones personalizadas, incluidas las que siguen el patrón de intercambio de tokens, como se describe en la RFC 8693 de IETF. Luego, las aplicaciones cliente usan tokens de acceso para consumir APIs seguras. Cada token de acceso tiene su propia fecha de vencimiento, que se puede configurar en la política de OAuthv2.
De forma opcional, Apigee puede generar y mostrar un token de actualización junto con el token de acceso con algunos de los tipos de otorgamiento. Un cliente usa un token de actualización para obtener un nuevo token de acceso después de que se revoque o venza el token de acceso original. El hora de vencimiento del token de actualización también se puede establecer en la política de OAuthv2.
Antipatrón
Configurar un tiempo de vencimiento prolongado para un token de acceso o un token de actualización en la política de OAuthv2 genera una ventana de vulnerabilidad expandida en caso de filtración de tokens, lo que representa un riesgo de seguridad. También puede provocar una acumulación de tokens de OAuth en el almacén persistente, lo que puede provocar una disminución del rendimiento con el tiempo.
Ejemplo 1
En la siguiente política de OAuthV2 de ejemplo, se muestra un tiempo de vencimiento prolongado de 10 días para los tokens de acceso:
<OAuthV2 name="OAuth-GenerateAccessToken"> <Operation>GenerateAccessToken</Operation> <ExpiresIn>864000000</ExpiresIn> <!-- 10 days --> <RefreshTokenExpiresIn>864000000</RefreshTokenExpiresIn> <!-- 10 days --> <SupportedGrantTypes> <GrantType>authorization_code</GrantType> </SupportedGrantTypes> <GenerateResponse enabled="true"/> </OAuthV2>
En el ejemplo anterior, ocurre lo siguiente:
- La vida útil del token de acceso se establece en 10 días.
- La vida útil del token de actualización también se establece en 10 días.
Impacto
Los tokens de acceso de larga duración representan un riesgo de seguridad. En caso de filtración o pérdida de tokens, un token de corta duración vencerá de forma natural y se volverá inútil, mientras que un token de larga duración seguirá otorgando acceso a la API durante un período potencialmente prolongado, lo que aumentará la ventana de vulnerabilidad.
Un token de acceso debe tener una vida útil corta, probablemente alrededor de 30 minutos o menos, y esa vida útil debe ser mucho más corta que la del token de actualización.
Ejemplo 2
En la siguiente política de OAuthV2 de ejemplo, se muestra un tiempo de vencimiento prolongado de 200 días para los tokens de actualización:
<OAuthV2 name="OAuth-GenerateAccessToken"> <Operation>GenerateAccessToken</Operation> <ExpiresIn>1800000</ExpiresIn> <!-- 30 minutes --> <RefreshTokenExpiresIn>17280000000</RefreshTokenExpiresIn> <!-- 200 days --> <SupportedGrantTypes> <GrantType>authorization_code</GrantType> </SupportedGrantTypes> <GenerateResponse enabled="true"/> </OAuthV2>
En el ejemplo anterior, se muestra lo siguiente:
- El token de acceso se configura en un tiempo de vencimiento razonable y corto de 30 minutos.
- El token de actualización se establece con un período de vencimiento muy largo de 200 días.
- Si el tráfico a esta API es de 10 solicitudes por segundo, puede generar hasta 864,000 tokens por día.
- Los tokens de actualización vencen después de 200 días y se acumulan en el almacén de datos durante todo el ciclo de vida.
Impacto
La vida útil extendida del token de actualización puede provocar una degradación del rendimiento con el tiempo, ya que se acumulará una gran cantidad de tokens en el almacén de datos. En Apigee Hybrid, la acumulación excesiva de tokens también puede contribuir al agotamiento del espacio en el disco en la capa de persistencia.
Práctica recomendada
Usa un tiempo de vencimiento para los tokens de acceso y actualización de OAuth que sea adecuado para tus requisitos de seguridad específicos, de modo que se reduzca el período de vulnerabilidad de los tokens filtrados y se evite la acumulación de tokens en el almacén de datos. Un buen punto de partida para la vigencia del token de acceso es de 30 minutos. Para la vigencia del token de actualización, comienza con 24 horas.
Configura el tiempo de vencimiento para los tokens de actualización de tal manera que sean válidos durante un múltiplo de la vida útil de los tokens de acceso. Por ejemplo, si estableces 30 minutos para el token de acceso, establece la vida útil del token de actualización en 24 horas, 7 días o lo que sea apropiado para la experiencia del usuario que necesitas admitir.