Delen via


Python-scripts die Microsoft Graph-aanvragen maken, worden gedetecteerd als webcrawlers

Dit artikel bevat oplossingen voor een probleem waarbij Python-scripts kunnen worden gedetecteerd als webcrawlers bij het maken van Microsoft Graph-aanvragen.

Symptomen

Een Python-script waarmee een Microsoft Graph-aanvraag wordt gemaakt, kan soms door de gateway worden gedetecteerd als webcrawlers. Als Python-scripts gebruikmaken van poolbeheer, wordt het volgende foutbericht geretourneerd wanneer u de aanvraag blokkeert:

{'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}'}}}

Oorzaak

Het probleem treedt op omdat sommige Python-scripts hun aanvragen mogelijk niet structuren op een manier die voldoet aan de verwachte patronen. Als gevolg hiervan identificeert de gateway per ongeluk de aanvragen die afkomstig zijn van een webcrawler.

Solution

Gebruik de Microsoft Graph SDK voor Python om dit probleem op te lossen. Als u deze niet wilt gebruiken, structureert u uw aanvragen op dezelfde manier als de SDK die verwerkt met behulp van het Python-object Session voor het verzenden van aanvragen.

Hier volgt een voorbeeld van hoe u uw aanvragen handmatig kunt structuren:

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()

Opmerking

  • De User-Agent tekenreeks in de HTTP-aanvraagheader moet uniek zijn voor uw toepassing of script, waarbij deze wordt onderscheiden van algemeen verkeer.
  • Het opnemen van extra headers zoals Accept: application/json kan helpen bij het verduidelijken van de intentie van uw aanvraag.
  • Onjuist geïdentificeerd worden als crawlerverkeer kan leiden tot beperkingen of andere geautomatiseerde maatregelen van de back-endsystemen van Microsoft. Door uw client goed te identificeren, kunt u deze problemen voorkomen.

Als u een andere HTTP-client gebruikt, moet u ervoor zorgen dat vergelijkbare headers correct zijn ingesteld. Raadpleeg de documentatie van uw HTTP-client voor het aanpassen van aanvraagheaders.

Meer informatie

Zie de volgende artikelen voor meer richtlijnen over aanbevolen procedures bij het gebruik van Microsoft Graph:

Contacteer ons voor hulp

Als u vragen hebt of hulp nodig hebt, maak een ondersteuningsaanvraag of vraag de Azure-communityondersteuning. U kunt ook productfeedback verzenden naar de Azure-feedbackcommunity.