Red de conocimiento informático - Conocimiento informático - Cómo llamar a la API de Cloudstacsk

Cómo llamar a la API de Cloudstacsk

Llamadas a la API de CloudStack

Realización de solicitudes de API

Todas las solicitudes de API de CloudStack se envían como HTTP GET/POST con el comando asociado y cualquier parámetro. Ya sea en HTTP o HTTPS, la solicitud contiene lo siguiente:

L URL de la API de CloudStack: este es el punto de entrada de la API para el servicio web (por ejemplo, mand = implementarvirtualmachine & serviceOfferingId = 1 & diskoffering id = 1 & templateId = 2 & zoneId = 4 & API key = mivr 6 x 7 u 6 bjb 8cg 20 yi 3 yaxcgpyuairmfi _ ejtvwz 0 nukjbpmy 3 y2 bcikwfq & firma = lxx 1dm 40 AJC Xu % 2 fcaik 8 rap 0 o 1hU % 3D

O un ejemplo más legible es el siguiente:

1.mand=deployVirtualMachine

3.& ampserviceOfferingId=1

4.& ampdiskOfferingId= 1

5.& amptemplateId=2

6.& ampzoneId=4

7.& ampAPI key = mivr 6 x 7 u 6 bn _ sdahobpjnejpgest 35 exqjb 8cg 20 yi 3 yaxcgpyuairmfi _ ejtvwz 0 nukkjbpmy 3 y2 bcikwfq

8.& ampsignature = lxx 1dm 40 ajcxu % 2 fcaik 8 rap 0 o 1hU % 3D % 3D

Línea 1 es la URL de CloudStackAPI, que es la instancia de nube con la que desea interactuar.

La línea 2 es el comando que desea ejecutar, intentamos implementar una nueva máquina virtual. La URL de CloudStackAPI según la anterior (?)

Las líneas 3 a 6 son los parámetros de este comando. Consulte la sección correspondiente en la documentación de la API de CloudStack. Cada par de valor de campo de parámetro (campo = valor) es. separada por el carácter anterior (&;)

La línea 7 es la clave API, que puede ser única. Identifica la cuenta. Consulte Firma de solicitudes de API en la página 9.

La línea 8 es la. hash de firma creado para verificar el comando API ejecutado por la cuenta de usuario.

Consulte Firma de solicitudes de API en la página 9.

2 Habilitar la caducidad de las llamadas API

Puedes establecer la marca de tiempo de caducidad de las llamadas API para evitar ataques de repetición a través de canales inseguros (como HTTP). El servidor realiza un seguimiento de la marca de tiempo de vencimiento que usted especifica y rechaza todas las solicitudes API posteriores después de esa fecha de vencimiento.

Para habilitar esta función, agregue los siguientes parámetros a la solicitud de API:

SignatureVersion = 3: si falta el parámetro de versión de firma o no es igual a 3, los parámetros de solicitud de API vencidos ser ignorado.

Expires=AAAA-MM-DDThh:mm:ssZ: Especifica la fecha y hora en que caduca la firma incluida en la solicitud. La marca de tiempo indica el formato aaaa-mm-ddthh: mm: SSZ, que se especifica en el estándar ISO 8601. El ejemplo es el siguiente: Expires = 2011-10-10t 12:00:00530.

A continuación se proporciona un ejemplo de una solicitud de API caducada:

Área de lista. inversión de firma = 3 & expira = 2011-10-10t 12:00:00530 & clave API = mivr 6 y2 bcikwfq & firma = lxx 1dm 40 ajcxu % 2 fcaik 8 rap 0 o 1hU % 3D % 3D

Firma de solicitud de 3 API

Ya sea que esté utilizando HTTP o HTTPS para acceder a la API de CloudStack, aún debe firmar CloudStack para verificar la autenticación y autorización de la persona que llama para ejecutar el comando.

Asegúrese de tener la clave API y la clave proporcionada por su administrador de CloudStack para su cuenta antes de iniciar sesión. Para ilustrar cómo registrar una solicitud, usaremos nuevamente el ejemplo anterior.

Implementar máquinas virtuales. serviceOfferingId = 1 & diskoffering id = 1 & templateId = 2 & zoneId = 4 & API key = mivr 6 x 7 u 6 bjb 8cg 20 yi 3 yaxcgpyuairmfi_ejtvwz 0 nukjbpmy 3 y2 bcikwfq & firma = lxx 1dm 40 AJC Xu % 2 fcaik 8 rap 0 o 1hU % 3D

El formato de cada solicitud API: URL base+ruta API)+CommandString)+firma.

Para generar una firma (esto se puede lograr siguiendo los pasos a continuación).

1. Pares de valores en cada campo de la cadena de comando (representados por separación "&"), la URL analiza cada valor para que pueda enviarse de forma segura a través de HTTP GET.

Asegúrate de que todos los espacios estén codificados como "%20" y no como "+".

2. Toda la cadena de comando está organizada en orden alfabético en minúsculas y cada valor de campo está ordenado por campo. El resultado de este paso es el siguiente:

Clave API = mivr 6 = 1&Se

3. Validando la clave del usuario, ejecutándola en una cadena de comando ordenada y pasando. a través del algoritmo hash HMAC SHA-1 (la mayoría de los lenguajes de programación proporcionan una forma práctica de lograrlo). La matriz de bytes UTF-8 generada por la codificación Base64 se puede transmitir de forma segura a través de HTTP. La cadena final generada después de la codificación Base64 debe ser:

lxx 1dm 40 ajcxu % 2 fcaik 8 rap 0 o 1hU % 3D.

La URL final se basa en la URL base+API ruta) + CommandString)+ Reconstrucción del formato de firma.