Dela via


Samla in HTTPS-trafik med Fiddler från Python-appar

Det kan vara svårt att samla in krypterad HTTPS-webbtrafik i Python med Hjälp av Fiddler eftersom Python använder ett eget betrott certifikatarkiv i stället för operativsystemets certifikatarkiv. Dessutom använder Python som standard inte någon proxy i vissa scenarier. Den här artikeln beskriver hur du samlar in SSL-trafik med hjälp av Fiddler för Python-appen i olika scenarier.

ADAL för Python

När du använder Fiddler för att samla in HTTPS-trafik i en Python-app som integrerar Azure Active Directory Authentication Library (ADAL) kan du få SSL-felmeddelanden. Det här problemet beror på att Python inte litar på Fiddler-certifikatet. Du kan använda någon av två metoder för att kringgå det här problemet.

Anmärkning

Att inaktivera SSL-verifiering utgör en säkerhetsrisk. Du bör bara använda den här metoden för att felsöka. Du bör inte använda den i produktionsmiljöer.

  • Ange en miljövariabel i början av Python-appen innan objektet AuthenticationContext initieras:

    import os
    ...
    os.environ["ADAL_PYTHON_SSL_NO_VERIFY"] = "1"
    
  • verify_ssl=False Skicka flaggan till metoden AuthenticationContext:

    context = adal.AuthenticationContext(authority, verify_ssl=False)
    

MSAL för Python

När du använder Microsoft Authentication Library (MSAL) för Python kan du inaktivera SSL-verifiering på följande sätt:

app = msal.PublicClientApplication( client_id=appId, authority="https://login.microsoftonline.com/" + tenantId, verify=False )

Modulen Requests i Python

Som standard använder modulen Begäranden inte någon proxy. Du måste tvinga begäran att gå igenom Fiddler-proxyn enligt följande exempel:

import requests

…
access_token = token.get('accessToken')
endpoint = "api_endpoint"
headers = {"Authorization": "Bearer " + access_token}
json_output = requests.get(
    endpoint,
    headers=headers,
    proxies={"http": "http://127.0.0.1:8888", "https": "http://127.0.0.1:8888"},
    verify=False
).json()

Azure Active Directory SDK för Python (GraphRbacManagementClient)

I följande exempel visas hur du inaktiverar SSL-verifiering:

from azure.graphrbac import GraphRbacManagementClient
from azure.common.credentials import UserPassCredentials

credentials = UserPassCredentials(
      <username>,    # Your user name
      <password>,    # Your password
      resource=”https://graph.windows.net”,
      verify=False
)
tenant_id = <tenant name or tenant id>
graphrbac_client = GraphRbacManagementClient(credentials, tenant_id)
graphrbac_client.config.connection.verify=False
res = graphrbac_client.users.get(<UPN or ObjectID>)
print(res.display_name)

Ansvarsfriskrivning för information från tredje part

Produkter från tredje part som beskrivs i den här artikeln tillverkas av företag som är oberoende av Microsoft. Microsoft ger ingen garanti, underförstådd eller på annat sätt, om dessa produkters prestanda eller tillförlitlighet.

Kontakta oss för att få hjälp

Om du har frågor eller behöver hjälp skapar du en supportförfrågan eller frågar Azure community support. Du kan också skicka produktfeedback till Azure-feedbackcommunityn.