我正在跟踪此链接> python-sample-send-mail发送电子邮件,但是我想在后台跳过或验证用户,而无需进行任何UI交互。我不喜欢OAuth:弹出一个窗口的想法。
我的应用程序已在Microsoft Azure AD中注册。
我想知道如何在没有UI交互的情况下使用电子邮件用户名和密码进行身份验证。
非常感谢!
1 个答案:
答案 0 :(得分:2)
根据doc:AAD V2.0端点协议的限制,v2.0端点不支持OAuth 2.0资源所有者密码凭证授予。
在python ADAL sdk中,acquire_token_with_username_password方法不接受客户端密钥,因此您需要注册本机应用程序。
样例代码:
进口阿达尔
汇入要求
租户=“”
client_id =“应用程序ID”
#client_secret =“”
用户名=“”
密码=“”
权限=“ https://login.microsoftonline.com/” +租户
资源=“ https://graph.microsoft.com”
context = adal.AuthenticationContext(authority)
#将此用于客户端凭据
#token = context.acquire_token_with_client_credentials(
#资源
#client_id,
#client_secret
#)
#将其用于资源所有者密码凭证(ROPC)
令牌= context.acquire_token_with_username_password(资源,用户名,密码,client_id)
graph_api_endpoint ='https://graph.microsoft.com/v1.0{0}'
#/ me仅适用于ROPC,对于客户端凭据,您需要/