【问题标题】:Failed to use MSGraph with python MSAL无法将 MSGraph 与 python MSAL 一起使用
【发布时间】:2019-05-28 17:42:48
【问题描述】:

我正在尝试开发一个简单的应用程序,该应用程序将从 crontab 启动。 此应用程序必须连接到我的 Outlook (Office360) 日历并下载所有事件,然后我将插入到我的 MariaDb 中。 我认为这很容易,但在过去的 4 天里我失去了理智。 我尝试使用 NodeJs 关注 Microsoft doc,但我找不到静默模式(一种无需登录即可请求身份验证的模式)来接收令牌和数据。 然后我尝试以不同的方式使用 Python,首先使用 EWS,但我读到这将在未来被弃用,并且在过去 2 天我正在尝试使用 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*****"
}

拜托,任何人都可以告诉我一些关于跳这块石头的建议吗? 谢谢

【问题讨论】:

    标签: python azure adal office365api msal


    【解决方案1】:

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

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

    结果:

    【讨论】:

    • 感谢Tony Ju 的回答。我正在尝试要求从管理员启用应用程序 :)
    • 抱歉耽搁了。我今天回到这个问题。非常感谢您的回答,很有用。很难要求管理员启用我的测试应用程序:)。谢谢
    猜你喜欢
    • 2020-08-05
    • 1970-01-01
    • 1970-01-01
    • 2021-09-02
    • 1970-01-01
    • 2023-04-08
    • 1970-01-01
    • 2021-08-03
    • 1970-01-01
    相关资源
    最近更新 更多