Forum Discussion
Using msggraph sdk in Fabric notebooks
Hi !
I'm trying to use the msgraph sdk in Fabric notebook, but I'm facing an SSL issue.
import asyncio
import msal
from azure.identity.aio import ClientSecretCredential
from azure.identity import DeviceCodeCredential
client_secret="AAA"
client_id = "BBB"
tenant_id = "CCC"
credential = ClientSecretCredential(tenant_id,client_id,client_secret)
scopes = ['https://graph.microsoft.com/.default']
from msgraph import GraphServiceClient
client = GraphServiceClient(credentials=credential, scopes=scopes)
async def get_user():
user = await client.users.by_user_id('myUPN').get()
if user:
print(user.display_name)
await get_user()
Thank you for your answer.
The simpliest way is to add those 3 lines :
import certifi import os os.environ['SSL_CERT_FILE'] = certifi.where()Jérôme
2 Replies
- V-yubandi-msftCommunity Support
Hi jFloury ,
Thank you for joining us on the Microsoft Fabric Community Forum.
This error happens because Python can't verify the SSL certificate for the Microsoft Graph API. Basically, it can't find a valid root certificate in your local certificate store. This issue is quite common in custom or isolated environments that don't automatically install root certificates.
- Ensure your notebook environment has the latest root certificates installed. You can do this by updating your environment, or by downloading and installing a new set of certificates. Make sure your system recognizes these new certificates.
- For custom or missing certificates, specify a CA certificate file (such as ca-bundle.crt) for SSL verification.
- Inspect Python’s default certificate path to check if any root certificates are missing.
- If the SSL issue continues, try using a different authentication method, like Device Code Credential. This might help bypass the problem in certain environments
- Utilize the MSGraph SDK functions to interact with the Microsoft Graph API within your notebook.
If my answer addressed your query, kindly mark it as the Accepted Solution to assist others.
I'd also be grateful for a 'Kudos' if you found my response useful!
- jFlouryFrequent Visitor
Thank you for your answer.
The simpliest way is to add those 3 lines :
import certifi import os os.environ['SSL_CERT_FILE'] = certifi.where()Jérôme