Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Questo articolo fornisce soluzioni a un problema a causa del quale gli script Python potrebbero essere rilevati come crawler Web durante l'esecuzione di richieste di Microsoft Graph.
Sintomi
Uno script Python che effettua una richiesta di Microsoft Graph potrebbe talvolta essere rilevato dal gateway come crawler Web. Se gli script Python usano un gestore pool, viene restituito il messaggio di errore seguente quando si blocca la richiesta:
{'error': {'code': 'UnknownError', 'message': '\r\n403 Forbidden\r\n\r\n
403 Forbidden
\r\n
Microsoft-Azure-Application-Gateway/v2
\r\n\r\n\r\n', 'innerError': {'date': '{UTC Date/Time}', 'request-id': '{guid}', 'client-request-id': '{guid}'}}}
Motivo
Il problema si verifica perché alcuni script Python potrebbero non strutturare le richieste in modo conforme ai modelli previsti. Di conseguenza, il gateway identifica erroneamente le richieste provenienti da un crawler Web.
Soluzione
Per risolvere questo problema, usare Microsoft Graph SDK per Python. Se non si vuole usarlo, strutturare le richieste in modo analogo al modo in cui l'SDK li gestisce usando l'oggetto Session
Python per inviare richieste.
Ecco un esempio di come è possibile strutturare manualmente le richieste:
from requests import Request, Session
def example_request(url):
http = Session()
req = Request('GET', url, headers=h)
prepped = req.prepare()
resp = http.send(prepped)
return resp.json()
Annotazioni
- La
User-Agent
stringa nell'intestazione della richiesta HTTP deve essere univoca per l'applicazione o lo script, differenziandolo dal traffico generico. - L'inclusione di intestazioni aggiuntive,
Accept: application/json
ad esempio, può aiutare a chiarire la finalità della richiesta. - Il traffico identificato erroneamente come traffico crawler potrebbe comportare limitazioni di accesso o altre mitigazioni automatizzate da parte dei sistemi back-end di Microsoft. L'identificazione corretta del client consente di evitare questi problemi.
Se si usa un client HTTP diverso, assicurarsi che le intestazioni simili siano impostate in modo appropriato. Fare riferimento alla documentazione del client HTTP per personalizzare le intestazioni delle richieste.
Maggiori informazioni
Per altre indicazioni sulle procedure consigliate quando si usa Microsoft Graph, vedere gli articoli seguenti:
Contattaci per ricevere assistenza
In caso di domande o bisogno di assistenza, creare una richiesta di supporto tecnico oppure formula una domanda nel Supporto della community di Azure. È possibile anche inviare un feedback sul prodotto al feedback della community di Azure.