Autenticación
Los métodos de autenticación para invocar una API son los siguientes:
- Autenticación basada en AK/SK: Las solicitudes se autentican encriptando el cuerpo de la solicitud usando un par AK/SK. Se recomienda la autenticación basada en AK/SK porque proporciona mayor seguridad que la autenticación basada en tokens.
- Autenticación basada en tokens: Las solicitudes se autentican mediante un token.
Autenticación basada en AK/SK
En este tipo de autenticación, el par AK/SK se utiliza para firmar solicitudes, y la firma resultante se agrega a las solicitudes de autenticación.
- AK: el ID de clave de acceso, que es un identificador único usado junto con una clave de acceso secreta para firmar solicitudes criptográficamente.
- SK: la clave de acceso secreta usada junto con una AK para firmar solicitudes criptográficamente. Identifica un remitente de la solicitud y evita que la solicitud sea modificada.
Restricciones:
- La autenticación basada en AK/SK admite solicitudes de API con un cuerpo de hasta 12 MB. En el caso de solicitudes de API con un cuerpo más grande, se recomienda la autenticación basada en tokens.
- Los tokens obtenidos mediante una AK/SK son válidos durante al menos 15 minutos.
- Se soportan tanto AK/SK en una clave de acceso permanente como en un acceso temporal. El campo X-Security-Token debe configurarse cuando se utiliza el AK/SK en la clave de acceso temporal, y el valor del campo es el security_token de la clave de acceso temporal.
- El SDK de firma solo se utiliza para firmar solicitudes y es diferente de los SDK proporcionados por los servicios.
- La hora local en el cliente debe sincronizarse con el servidor de reloj para evitar un desplazamiento grande en el valor del encabezado de solicitud X-Sdk-Date.
- APIG comprueba el formato de hora y compara la hora con la hora en que APIG recibe la solicitud. Si la diferencia de tiempo supera los 15 minutos, APIG rechazará la solicitud.
Autenticación basada en tokens
- El período de validez de un token es de 24 horas. Cuando utilice un token para la autenticación, guárdelo en caché para evitar invocar con frecuencia a la API de IAM utilizada para obtener tokens de usuario.
- Asegúrese de que el token es válido cuando lo usa. El uso de un token que caducará pronto puede provocar fallas en las invocaciones a la API.
Un token especifica los permisos temporales en un sistema informático. Durante la autenticación de la API mediante un token, el token se agrega a las solicitudes para obtener los permisos necesarios para invocar a la API.
Cuando invoca a una API para obtener un token de usuario, debe establecer auth.scope en el cuerpo de la solicitud como project.
{
"auth": {
"identity": {
"methods": [
"password"
],
"password": {
"user": {
"name": "username",
"password": "********",
"domain": {
"name": "domainname"
}
}
}
},
"scope": {
"project": {
"name": "xxxxxxxx"
}
}
}
}
Después de obtener un token, el campo de encabezado X-Auth-Token debe agregarse a las solicitudes para especificar el token al invocar a otras API. Por ejemplo, si el token es ABCDEFG...., X-Auth-Token: ABCDEFG.... se puede agregar a una solicitud de la siguiente manera:
POST https://apig.ap-southeast-1.myhuaweicloud.com/v2/{project_id}/apigw/instances/{instance_id}/api-groups
POST https://{apig_endpoint}/v2/{project_id}/v2/{project_id}/apigw/instances/{instance_id}/api-groups
Content-Type: application/json
X-Auth-Token: ABCDEFG....