Facilitación de la gestión de políticas DNS mediante las nuevas API de etiquetado general


En esta entrada del blog se explicará cómo automatizar la administración de políticas DNS con Etiquetas.
Para simplificar la gestión de políticas DNS de dispositivos móviles, clasifíquelos mediante etiquetas. Al asignar una etiqueta común a un grupo de dispositivos móviles, se pueden tratar conjuntamente como una sola entidad durante la configuración de la política. Este enfoque es recomendado para despliegues con numerosos dispositivos móviles, desde cientos hasta miles, ya que agiliza significativamente la creación de políticas.

Descripción general del flujo de trabajo

  1. Agregar clave de API
  2. Generar token de acceso OAuth 2.0
  3. Crear etiqueta
  4. Obtener la lista de dispositivos móviles e identificar el 'originId' correspondiente
  5. Agregar etiqueta a los dispositivos.

La API de Umbrella proporciona una interfaz REST estándar y soporta el flujo de credenciales de cliente OAuth 2.0. Al crear la clave de API, se puede establecer el alcance y la fecha de expiración asociados.

Para empezar a trabajar con el etiquetado, es necesario crear una clave de API con alcance de lectura/escritura de implementación.

api paraguas

Una vez generados el cliente de API y el secreto de API, se pueden utilizar para las llamadas relacionadas con la API.

En primer lugar, necesitamos generar un token de acceso OAuth 2.0.

Se puede hacer con el siguiente script en Python:

import requests
import os
import json
import base64

api_client = os.getenv('API_CLIENT')
api_secret = os.getenv('API_SECRET')

def generateToken():

   url = "https://api.umbrella.com/auth/v2/token"

   usrAPIClientSecret = api_client + ":" + api_secret
   basicUmbrella = base64.b64encode(usrAPIClientSecret.encode()).decode()
   HTTP_Request_header = {"Authorization": "Basic %s" % basicUmbrella,
"Content-Type": "application/json;"}

   payload = json.dumps({
   "grant_type": "client_credentials"
   })

   response = requests.request("GET", url, headers=HTTP_Request_header, data=payload)
   print(response.text)
   access_token = response.json()('access_token')
   print(accessToken)

   return accessToken


if __name__ == "__main__":
   accessToken = generateToken()

Resultado esperado:
{“token_type”:”portador”,”access_token”:”cmVwb3J0cy51dGlsaXRpZXM6cmVhZCBsImtpZCI6IjcyNmI5MGUzLWQ1MjYtNGMzZS1iN2QzLTllYjA5NWU2ZWRlOSIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJ1bW JyZWxsYS1hdXRoei9hdXRoc3ZjIiwic…OiJhZG1pbi5wYXNzd29yZHJlc2V0OndyaXRlIGFkbWluLnJvbGVzOnJlYWQgYWRtaW4udXNlcnM6d3JpdGUgYWRtaW4udXNlcnM6cmVhZCByZXBvcn RzLmdyYW51bGFyZXZlbnRzOnJlYWQgyZXBvcnRzLmFnZ3Jl…MzlK”,”expires_in”:3600}

Utilizaremos el token de acceso de OAuth 2.0 obtenido en el paso anterior para las próximas solicitudes de la API.

Creemos una etiqueta con el nombre "Windows 10″

def addTag(tagName):
   url = "https://api.umbrella.com/deployments/v2/tags"

   payload = json.dumps({
   "name": tagName
   })

   headers = {
   'Accept': 'application/json',
   'Content-Type': 'application/json',
   'Authorization': 'Bearer ' + accessToken
   }

   response = requests.request("POST", url, headers=headers, data=payload)

   print(response.text)


addTag("Windows 10", accesToken)

Resultado esperado:

{
   "id": 90289,
   "organizationId": 7944991,
   "name": "Windows 10",
   "originsModifiedAt": "",
   "createdAt": "2024-03-08T21:51:05Z",
   "modifiedAt": "2024-03-08T21:51:05Z"
}

apis paraguasPanel de control general, Lista de dispositivos móviles sin etiquetas

Cada etiqueta tiene su ID único, por lo que es importante tomar nota de estos números para utilizarlos en consultas futuras.

La función siguiente nos ayuda

Obtener la Lista de computadoras en itinerancia:

def getListRoamingComputers(accessToken):

url = "https://api.umbrella.com/deployments/v2/roamingcomputers"

payload = {}
headers = {
'Accept': 'application/json',
'Content-Type': 'application/json',
'Authorization': 'Bearer ' + accessToken
}

response = requests.request("GET", url, headers=headers, data=payload)

print(response.text)

Rendimiento esperado:

(
{
"Origen Identificación": 621783439,
"ID del dispositivo": “010172DCA0204CDD”,
"tipo": “cualquier conexión”,
"estado": "Apagado",
“último estado de sincronización”: “Cifrado”,
“última sincronización”: “2024-02-26T15:50:55.000Z”,
“paquete aplicado”: 13338557,
"versión": “5.0.2075”,
"versión del sistema operativo": “Microsoft Windows NT 10.0.18362.0”,
“NombreVersiónOS”: “Windows 10”,
"nombre": “CLT1”,
“hasIpBlocking”: FALSO
},
{
"Origen Identificación": 623192385,
"ID del dispositivo": “0101920E8BE1F3AD”,
"tipo": “cualquier conexión”,
"estado": "Apagado",
“último estado de sincronización”: “Cifrado”,
“última sincronización”: “2024-03-07T15:20:39.000Z”,
"versión": “5.1.1”,
"versión del sistema operativo": “Microsoft Windows NT 10.0.19045.0”,
“NombreVersiónOS”: “Windows 10”,
"nombre": “ESCRITORIO-84BV9V6”,
“hasIpBlocking”: FALSO,
“paquete aplicado”: nulo
}
)

Los usuarios pueden recorrer los elementos de la lista JSON y filtrarlos por osVersionName, nombre, deviceId, etc., y registrar el originId relacionado en la lista que usaremos para aplicar la etiqueta relacionada.

Con la ID de etiqueta relacionada y la lista OriginId de computadoras en roaming, finalmente podemos agregar una etiqueta a los dispositivos, usando la siguiente función:

def addTagToDevices(tagId, deviceList, accessToken):
   url = "https://api.umbrella.com/deployments/v2/tags/{}/devices".format(tagId)

   payload = json.dumps({
   "addOrigins":
   })
   headers = {
   'Accept': 'application/json',
   'Content-Type': 'application/json',
   'Authorization': 'Bearer ' + accessToken
   }

   response = requests.request("POST", url, headers=headers, data=payload)

   print(response.text)

addTagToDevices(tagId, ( 621783439, 623192385 ), accessToken)

Rendimiento esperado:

{
   "tagId": 90289,
   "addOrigins": (
       621783439,
       623192385
   ),
   "removeOrigins": ()
}

Después de agregar etiquetas, revisemos el panel.

apis paraguasPanel general, lista de computadoras móviles después de agregar etiquetas mediante API

Hay una etiqueta relacionada disponible para seleccionar al crear una nueva política DNS.

paraguas de etiquetado

Notas:

  • Cada computadora itinerante se puede configurar con múltiples etiquetas
  • No se puede aplicar una etiqueta a una computadora móvil en el momento de la instalación del cliente móvil.
  • No se puede eliminar una etiqueta. En su lugar, elimine una etiqueta de una computadora en itinerancia.
  • Las etiquetas pueden tener hasta 40 caracteres.
  • Puede agregar hasta 500 dispositivos a una etiqueta (por solicitud).

Pruebe estas actualizaciones en DevNet Sandbox

¡Darle una oportunidad! Juega con estas actualizaciones usando el Paraguas DevNet Sandbox.

Compartir:

¿Nos apoyarás hoy?

Creemos que todos merecen entender el mundo en el que viven. Este conocimiento ayuda a crear mejores ciudadanos, vecinos, amigos y custodios de nuestro planeta. Producir periodismo explicativo y profundamente investigado requiere recursos. Puedes apoyar esta misión haciendo una donación económica a Gelipsis hoy. ¿Te sumarás a nosotros?

Suscríbete para recibir nuestro boletín:

Recent Articles

Related Stories

DEJA UN COMENTARIO

Por favor ingrese su comentario!
Por favor ingrese su nombre aquí