【问题标题】:msal - personal and work accounts with same email addressmsal - 具有相同电子邮件地址的个人和工作帐户
【发布时间】:2021-05-18 14:10:26
【问题描述】:

我们正在通过电子邮件地址邀请外部人员作为 azure AD 的访客。现在,他们中的一些人拥有一个使用此电子邮件地址的个人和工作帐户。 如果他们将个人帐户与我们的租户关联并尝试连接 python MSAL 库,他们将收到错误。

  • 如果他们使用工作帐户密码,他们将收到:'error': 'invalid_grant','error_description':'AADSTS50020:用户帐户 来自身份提供者的“{EmailHidden}” 租户中不存在“https://sts.windows.net/xxx-xx-xx/” 'Contoso' 并且无法访问应用程序 'xxx-xx-xx-xx'(Contoso 应用程序)在该租户中。该帐户需要添加为外部 首先是租户中的用户。退出并使用其他帐户重新登录 Azure Active Directory 用户帐户。'
  • 如果他们使用他们的个人帐户密码,他们会得到:'error': 'invalid_grant', 'error_description': 'AADSTS50126: 验证错误 由于用户名或密码无效而导致的凭据。'

我认为,msal 正在将用户电子邮件地址解析为工作帐户并尝试登录该帐户(这将失败) - 而不是有权使用该应用程序的个人帐户。

有没有办法以编程方式解决这个问题?我们目前正在为此使用 ROPC 流程;我知道,这不是推荐的方式。

【问题讨论】:

    标签: azure azure-active-directory msal


    【解决方案1】:

    你是对的。您添加到租户中的是个人帐户而不是工作帐户。您收到第一个错误是因为 MSAL 正在尝试将您的用户识别为工作帐户。但用户实际上是其他租户的工作帐户。因此,它需要您将其(工作帐户)作为访客添加到此租户中。

    但据我了解,您正在尝试为来宾用户(个人帐户添加到您的租户)使用 ROPC 流,对吗?

    很遗憾,它不受支持。请参阅ROPC flow document 中的重要提示。这就是你得到第二个错误的原因。

    所以你想要的无法实现。

    如果您必须使用 ROPC 流程,唯一的方法是将工作帐户作为访客添加到您的租户中,并为他们分配使用应用程序的权限。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-08-30
      • 1970-01-01
      • 2018-03-06
      • 2019-03-20
      • 2020-08-12
      • 1970-01-01
      • 2021-06-28
      相关资源
      最近更新 更多