我有一个控制台应用程序(将分批执行),应该:
为此,我一直在研究如何正确验证Microsoft Graph。我看到有一个不推荐的选项,其中包含使用密码Grant_type。即使知道这不是最好的主意,它也是一种更适合我的需求的方法,因为我只需要使用一个用户邮件。因此,我尝试通过在Azure Active Directory中注册应用程序并提供一些委托权限来测试这种日志:
并针对登录端点发出发布请求:
https://login.microsoftonline.com/ {{tenant}} / oauth2 / v2.0 / token
带有参数:
我也尝试过使用v1.0端点更改资源范围
但下一个响应是
{
"error": "invalid_grant",
"error_description": "AADSTS50034: The user account does not exist in the {{Tenant}} directory. To sign into this application, the account must be added to the directory.\r\nTrace ID: XXXXXXXXXXXXX\r\nCorrelation ID: XXXXXXXXXXXXX\r\nTimestamp: 2019-02-15 12:12:15Z",
"error_codes": [
50034
],
"timestamp": "2019-02-15 12:12:15Z",
"trace_id": "XXXXXXXXXXXXXXXXX",
"correlation_id": "XXXXXXXXXXXXXXXXX"
}
当我在门户网站中查看Azure Active Directory的“用户”部分时,我尝试登录的用户在那里。实际上,如果我通过使用client_credentials grant_type(在AAD应用程序中授予应用程序权限以让用户读取)来获得令牌,并且我请求所有用户使用,则令牌也在那里。
那我做错了什么?使用电子邮件作为用户名值正确吗?我应该在门户的任何位置注册用户以允许图形访问他们吗?还是有其他原因阻止我进行登录?
谢谢!