【问题标题】:user does not exists in the tenant directory error when calling microsoft graph api调用microsoft graph api时用户不存在于租户目录错误
【发布时间】:2020-04-19 15:52:28
【问题描述】:

我正在尝试调用 microsoft graph api,我已按照 microsoft documnets 的说明进行如下操作:

1- azure 门户中的应用注册 支持的账户类型:所有微软账户用户 2- 通过这些参数调用'https://login.microsoftonline.com/',tenant_id,'/oauth2/v2.0/authorize':

  client_id <-  #Application Id - on the azure app overview page
    client_secret <-# the secret key for my app from azure portal 
    scope <- 'https://graph.microsoft.com/.default'
    grant_type <- 'password'
    username <- 'XXX@outlook.com'
    password <-  # the user password
    tenant_id <-# tenant id for my app from azure portal

但它有这个错误:

AADSTS50034: The user account {EmailHidden} does not exist in the <tenant_ID> directory. To sign into this application, the account must be added to the directory.

我使用通过 api 传递的同一个帐户注册了我的应用程序。

我想从图表中调用我的待办事项列表。

根据@MdFaridUddinKiron 的回复,我添加了更多解释:

我认为我的 azure 域中的某些内容是错误的,这些是它的一些屏幕截图: 1-它显示端点的“通用”,我应该使用什么? “普通”或我的租户: 2- 我的应用程序身份验证选项卡有一些差异,这很重要吗? 3- 我的域概览页面如下所示: 4- 用户被添加到我的活动目录 5- 用户应用页面: 6-用户分配的角色:

我在graph explorer 中由同一用户成功测试了microsoft graph api,我对身份验证流程必须如何感到困惑。 我只想调用我自己的 todo 任务

【问题讨论】:

  • 个人XXX@outlook.com 不支持grant_type:password 用户名必须是租户特定的。
  • 如何设置参数?你能解释更多吗?
  • 我已经向您展示了详细信息,请试一试,让我知道您的更新。
  • 您好,请问有什么可以帮忙的吗?
  • 亲爱的@MdFaridUddinKiron 我添加了有关我的问题的更多信息。你能帮我更多吗?

标签: azure-active-directory microsoft-graph-api


【解决方案1】:

根据您的评论,请按照详细步骤操作:

确保您尝试获取令牌的电子邮件存在于 azure 广告中 用户列表,详细如下所示。

https://login.microsoftonline.com/YourTenant.onmicrosoft.com/oauth2/v2.0/token

client_id:b603c7be_Client_id_e61f925
scope:https://graph.microsoft.com/.default
client_secret:NpmwO/KDJ_client_secret:NpmwO_W0kWf1SbnL
username:tenentUser.onmicrosoft.com
password:YourUserPassword
grant_type:password

查看屏幕截图:

我正在按预期获得令牌

Step: 1

Step: 2

Step: 3

Step: 4

从您的azure active directory 用户列表中过滤您的用户,如下所示。

Note:

  1. 请求的令牌用户必须是租户用户,例如YourUser@Yourtenant.onmicrosoft.com
  2. 用户密码必须正确,才能提出令牌请求。
  3. 确保您的用户属于租户上的 azure 门户
  4. 您的客户 ID 属于该租户
  5. 应用程序密钥有效或未过期。

更新:

我应该使用什么? “普通”还是我的租户?

这取决于您是否有很多租户,在这种情况下您可以使用 common。 例如,用户不需要记住他们会记住的特定租户 根据凭据自动重定向到特定租户 他们给了。

更多信息可以参考Official document

如果您仍有问题,请随时分享。

【讨论】:

    猜你喜欢
    • 2020-08-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多