msal - 具有相同电子邮件地址的个人和工作帐户

msal - personal and work accounts with same email address

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

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

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

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

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

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

所以你想要的无法实现

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