Azure active directory 如何登录到多租户应用程序?

Azure active directory 如何登录到多租户应用程序?,azure-active-directory,adal,Azure Active Directory,Adal,我有一个多租户应用程序,当我从同一个租户登录时可以正常工作,但当我从另一个租户以用户身份登录时无法工作。例如,在运行此多租户Web API示例时,我得到了相同的行为: active directory dotnet webapi多租户windows应用商店 从同一租户登录可以正常工作。当以用户身份从托管Web API的租户以外的其他租户登录时,我收到以下错误: 错误: AADSTS70001:在目录中找不到标识为[GUID]的应用 [部分租户] 只有几点: 我修改了web api的广告应用程序

我有一个多租户应用程序,当我从同一个租户登录时可以正常工作,但当我从另一个租户以用户身份登录时无法工作。例如,在运行此多租户Web API示例时,我得到了相同的行为:

active directory dotnet webapi多租户windows应用商店

从同一租户登录可以正常工作。当以用户身份从托管Web API的租户以外的其他租户登录时,我收到以下错误:

错误:

AADSTS70001:在目录中找不到标识为[GUID]的应用 [部分租户]

只有几点:

  • 我修改了web api的广告应用程序注册:多租户开关设置为Yes;清单中的knownClientApplications属性包括客户端应用程序的应用程序id
  • 客户端调用AcquireTokenAsync失败。该调用中的资源是来自web api的AD应用注册的应用ID URI
  • 客户使用的权限为:

有什么想法吗?

请确保所有设置都正确。以下是供您参考的设置图:

之后,代码示例运行良好,两个应用程序注册到测试租户:

确保您在中的两个应用程序都具有
“availableToOtherTenants”:对于客户端和服务应用程序均为true

如Daniel所述,我编辑了AD客户端应用程序的清单,并将AvailableTotherTenants设置为true


现在一切正常。

您是否尝试过使用其他租户的管理员帐户登录应用程序?是的。我尝试了一个管理员帐户。基本上,输入凭据后出现的同意提示不会。。。因此,我只得到一个错误,表明应用程序不在用户的租户中(未经同意,这是意料之中的)。自从本示例发布以来,是否有一些变化,我们必须做一些不同的事情来获得同意提示?您能描述一下您的设置吗?这里有多少应用程序?(2?客户端和资源?)都在同一租户中注册,但与您尝试登录的租户不同?您尝试使用什么特定登录url登录?在同一租户中注册了一个客户端和一个服务资源。授权是,传递给AcquireTokenAsync的资源是来自服务的AD应用注册的应用ID URI。从同一租户以用户身份登录可以正常工作。以不同广告租户的用户身份登录会产生上述错误——值得注意的是,在输入凭据后,我从未收到同意提示。我可以在active directory dotnet webapi多租户windows应用商店示例应用程序中重现相同的行为这里有指向示例的完整链接:是。所有这些设置都如您所示。除了我在帖子中提到的其他设置之外,还有什么我需要做的吗?没有。不需要其他设置。如果您可以上传有关您限制的详细步骤的数据,这将非常有用。