无法将MSGraph与python MSAL一起使用

时间:2019-05-28 17:42:48

标签: python azure adal office365api msal

我正在尝试开发一个将从crontab启动的简单应用程序。 此应用程序必须连接到我的Outlook(Office360)日历并下载所有事件,然后再将其插入到MariaDb中。 我以为这很容易,但是最近4天我迷失了方向。 我尝试使用NodeJs遵循Microsoft doc,但是我找不到用于接收令牌和数据的静默模式(一种无需始终登录即可请求身份验证的模式)。 然后我以不同的方式尝试使用Python,首先使用EWS,但我读到以后会弃用,在最近的两天内,我尝试使用MSAL和ADAL。 MSAL方法似乎更加分散,但是当我也使用acquire_token_by_username_passwordacquire_token_by_device_flow

启动脚本时,我仍然遇到这个问题

AADSTS7000218: The request body must contain the following parameter: 'client_assertion' or 'client_secret'.

我的代码与GitHub https://github.com/AzureAD/microsoft-authentication-library-for-python/tree/dev/sample相同 我在parameter.json中更改配置,然后插入我的

{
    "authority": "https://login.microsoftonline.com/organizations",
    "client_id": "ClinetIdOfApp Set in Azure",
    "username": "myaccont@account.xx",
    "scope": ["User.Read","Calendars.Read"],
    "password": "MyPassword*****"
}

拜托,有人可以告诉我一些跳石的建议吗? 谢谢

1 个答案:

答案 0 :(得分:0)

您正在使用资源所有者密码凭据,需要将您的应用程序视为公共客户端

登录Azure门户->单击“ Azure Active Directory”->单击“应用程序注册”->查找应用程序->单击“身份验证”->将默认客户端类型更改为公共客户端。

enter image description here

结果:

enter image description here