Obtener tokens de acceso de la Management API para producción
Aprende a obtener tokens de acceso para realizar llamadas frecuentes y programadas a la Management API.
Para realizar llamadas programadas frecuentes en un entorno de producción, debes implementar un proceso en tu backend que te proporcione un token automáticamente (y, de ese modo, simule un token sin vencimiento).
Para solicitar a Auth0 un token v2 de , realice una operación POST en el endpoint https://{yourDomain}/oauth/token con las credenciales de la aplicación Machine-to-Machine que creó en el paso de requisitos previos.La carga útil debe tener el siguiente formato:Recuerda actualizar `{yourClientSecret}` con el en la pestaña Settings de tu aplicación.Los parámetros de la solicitud son:
Parámetro de solicitud
Descripción
grant_type
Indica qué flujo de OAuth 2.0 quieres ejecutar. Para la comunicación de máquina a máquina, usa el valor client_credentials.
client_id
Este es el valor del campo ID de cliente de la aplicación Machine-to-Machine que creaste. Puedes encontrarlo en la pestaña Settings de tu aplicación.
client_secret
Este es el valor del campo Secreto del cliente de la aplicación Machine-to-Machine que creaste. Puedes encontrarlo en la pestaña Settings de tu aplicación.
audience
Este es el valor del campo Identifier de Auth0 Management API. Puedes encontrarlo en la pestaña Settings de la API.
Usa los alcances update:client_grants y create:client_grants solo con aplicaciones con privilegios elevados, ya que permiten que el cliente se conceda más permisos a sí mismo.
La respuesta contendrá un JWT firmado, una hora de expiración, los alcances concedidos y el tipo de token.
De lo anterior, podemos ver que nuestro expirará en 24 horas (86400 segundos), está autorizado para leer y crear aplicaciones, y es un token de acceso Bearer.
Para usar este token, inclúyelo en el encabezado Authorization de la solicitud.Por ejemplo, para obtener todas las aplicaciones, usa lo siguiente:
Puede obtener el comando curl para cada endpoint desde el Explorer de Management API v2. Vaya al endpoint que quiera invocar y haga clic en el enlace get curl command en la sección Test this endpoint.
Este script de Python obtiene un Token de acceso de la Management API v2, lo usa para llamar al endpoint Obtener todas las aplicaciones e imprime la respuesta en la consola.Antes de ejecutarlo, asegúrate de que las siguientes variables contengan valores válidos:
AUDIENCE: El identificador de la Auth0 Management API. Puedes encontrarlo en la pestaña Settings de la API.
DOMAIN: El dominio de la aplicación Machine-to-Machine que creaste.
CLIENT_ID: El de la aplicación Machine-to-Machine que creaste.
CLIENT_SECRET: El Secreto del cliente de la aplicación Machine-to-Machine que creaste.
def main(): import json, requests from requests.exceptions import RequestException, HTTPError, URLRequired # Valores de configuración domain = 'YOUR_DOMAIN' audience = f'https://{domain}/api/v2/' client_id = '{yourClientId}' client_secret = '{yourClientSecret}' grant_type = "client_credentials" # Flujo de OAuth 2.0 a utilizar # Obtener un token de acceso de Auth0 base_url = f"https://{domain}" payload = { 'grant_type': grant_type, 'client_id': client_id, 'client_secret': client_secret, 'audience': audience } response = requests.post(f'{base_url}/oauth/token', data=payload) oauth = response.json() access_token = oauth.get('access_token') # Agregar el token al encabezado de autorización de la solicitud headers = { 'Authorization': f'Bearer {access_token}', 'Content-Type': 'application/json' } # Obtener todas las aplicaciones con el token try: res = requests.get(f'{base_url}/api/v2/clients', headers=headers) print(res.json()) except HTTPError as e: print(f'HTTPError: {str(e.code)} {str(e.reason)}') except URLRequired as e: print(f'URLRequired: {str(e.reason)}') except RequestException as e: print(f'RequestException: {e}') except Exception as e: print(f'Generic Exception: {e}')# Código estándar para llamar a la función main().if __name__ == '__main__': main()