Mostrar usuarios de dispositivos

En esta página se explica cómo enumerar los usuarios de un dispositivo.

Mostrar usuarios de dispositivos específicos

En los siguientes ejemplos se muestra cómo ver una lista de los dispositivos de usuarios específicos de tu organización.

REST

Para enumerar usuarios de dispositivos específicos, llama a devices.deviceUsers.list() con el nombre de la customer (organización).

HTTP de Python

En el siguiente ejemplo se muestra cómo enumerar usuarios de dispositivos específicos mediante la biblioteca HTTP de Python:

"""Sample script to demonstrate the use of the List method in the Devices API."""
import json
import pprint

from six.moves import urllib

import google.auth.transport.requests
from google.oauth2 import service_account

SCOPES = ['https://www.googleapis.com/auth/cloud-identity.devices']
BASE_URL = 'https://cloudidentity.googleapis.com/v1/'

# Change this to the location of the service account key
SA_FILE = ''

# Enter the administrator to call as here.
ADMIN_EMAIL = ''

if not SA_FILE:
  print('Please specify the location of the service account key file')
if not ADMIN_EMAIL:
  print('Please specify the email of the administrator to call as')

if not SA_FILE or not ADMIN_EMAIL:
  exit(-1)

def create_delegated_credentials(user_email):
  credentials = service_account.Credentials.from_service_account_file(
      SA_FILE,
      scopes=['https://www.googleapis.com/auth/cloud-identity.devices'])

  delegated_credentials = credentials.with_subject(user_email)

  return delegated_credentials

######################################################################
# AUTHENTICATE the service account and retrieve an oauth2 access token

request = google.auth.transport.requests.Request()
dc = create_delegated_credentials(ADMIN_EMAIL)
dc.refresh(request)
print('Access token: ' + dc.token + '\n')

###############################
# LIST deviceUsers with filter.

# Change this filter according to the options here:
# https://support.google.com/a/answer/7549103
FILTER = urllib.parse.quote_plus('status:approved os:IOS')
list_url = BASE_URL + 'devices/-/deviceUsers?filter=' + FILTER
auth_header = {'Authorization': 'Bearer ' + dc.token}
content = urllib.request.urlopen(
    urllib.request.Request(list_url, headers=auth_header)).read()
response = json.loads(content)
pp = pprint.PrettyPrinter(indent=4)

if 'deviceUsers' in response:
  print('Listed: ' + str(len(response['deviceUsers'])) + ' deviceUsers\n')

  for element in response['deviceUsers']:
    pp.pprint(element)
  print('Next page token: ' + response['nextPageToken'])
else:
  print('Empty response')

Ten en cuenta que FILTER se ha configurado para filtrar a los usuarios del dispositivo por aquellos cuyo estado sea "aprobado" (status:approved) y cuyo sistema operativo sea "IOS" (os:IOS).

Obtener un usuario de dispositivo específico

En los siguientes ejemplos se muestra cómo obtener un usuario de dispositivo específico.

REST

Para obtener un usuario de un dispositivo específico, llama a devices.deviceUsers.get() con el name del dispositivo y el customer (organización).

HTTP de Python

En el siguiente ejemplo se muestra cómo obtener un cliente específico mediante la biblioteca HTTP de Python:

"""Sample script to demonstrate the use of the get method in the Devices API."""
import json
import pprint

from six.moves import urllib

import google.auth.transport.requests
from google.oauth2 import service_account

SCOPES = ['https://www.googleapis.com/auth/cloud-identity.devices']
BASE_URL = 'https://cloudidentity.googleapis.com/v1/'

# Change this to the location of the service account key
SA_FILE = ''

# Enter the administrator to call as here.
ADMIN_EMAIL = ''

# Enter the Resource Name. You can get this from the value of the name
# field in the results of a List method call
RESOURCE_NAME = ''

if not SA_FILE:
  print('Please specify the location of the service account key file')
if not ADMIN_EMAIL:
  print('Please specify the email of the administrator to call as')
if not RESOURCE_NAME:
  print('Please specify the Resource Name to be retrieved')

if not SA_FILE or not ADMIN_EMAIL or not RESOURCE_NAME:
  exit(-1)

def create_delegated_credentials(user_email):
  credentials = service_account.Credentials.from_service_account_file(
      SA_FILE,
      scopes=['https://www.googleapis.com/auth/cloud-identity.devices'])

  delegated_credentials = credentials.with_subject(user_email)

  return delegated_credentials

######################################################################
# AUTHENTICATE the service account and retrieve an oauth2 access token

request = google.auth.transport.requests.Request()
dc = create_delegated_credentials(ADMIN_EMAIL)
dc.refresh(request)
print('Access token: ' + dc.token + '\n')

###############################
# Get the resource
get_url = BASE_URL + RESOURCE_NAME
auth_header = {'Authorization': 'Bearer ' + dc.token}
content = urllib.request.urlopen(
    urllib.request.Request(get_url, headers=auth_header)).read()
response = json.loads(content)
pp = pprint.PrettyPrinter(indent=4)
pp.pprint(response)