如何登录到多租户应用程序?
How to login to multi-tenant application?
我有一个多租户应用程序,当我从同一个租户登录时工作正常,但当我以不同租户的用户身份登录时无法工作。例如,当 运行 这个多租户 Web API 示例时,我得到了相同的行为:
active-directory-dotnet-webapi-multitenant-windows-store
从同一个租户登录工作正常。当以不同于托管 Web 的租户的用户身份登录时 API 我收到以下错误:
错误:
AADSTS70001: App with identified [GUID] was not found in the directory
[some_tenant]
只有几点:
- 我修改了webapi的AD应用注册:Multi-tenanted开关设置为Yes;清单中的 knownClientApplications 属性 包含客户端应用程序的应用程序 ID。
- 客户端调用 AcquireTokenAsync 失败。该调用中的资源是来自 Web api 的 AD 应用程序注册的应用程序 ID URI。
- 客户端使用的权限为:https://login.microsoftonline.com/common
有什么想法吗?
请确保所有设置正确。下面是设置图供大家参考:
之后,代码示例运行良好,两个应用程序注册到测试租户:
确保 Azure Portal 中的两个应用程序都具有 "availableToOtherTenants": true
客户端和服务应用程序。
正如丹尼尔指出的那样,我编辑了 AD 客户端应用程序的清单并将 availableToOtherTenants 设置为 true。
Updated client manifest
现在一切正常。
我有一个多租户应用程序,当我从同一个租户登录时工作正常,但当我以不同租户的用户身份登录时无法工作。例如,当 运行 这个多租户 Web API 示例时,我得到了相同的行为:
active-directory-dotnet-webapi-multitenant-windows-store
从同一个租户登录工作正常。当以不同于托管 Web 的租户的用户身份登录时 API 我收到以下错误:
错误:
AADSTS70001: App with identified [GUID] was not found in the directory [some_tenant]
只有几点:
- 我修改了webapi的AD应用注册:Multi-tenanted开关设置为Yes;清单中的 knownClientApplications 属性 包含客户端应用程序的应用程序 ID。
- 客户端调用 AcquireTokenAsync 失败。该调用中的资源是来自 Web api 的 AD 应用程序注册的应用程序 ID URI。
- 客户端使用的权限为:https://login.microsoftonline.com/common
有什么想法吗?
请确保所有设置正确。下面是设置图供大家参考:
之后,代码示例运行良好,两个应用程序注册到测试租户:
确保 Azure Portal 中的两个应用程序都具有 "availableToOtherTenants": true
客户端和服务应用程序。
正如丹尼尔指出的那样,我编辑了 AD 客户端应用程序的清单并将 availableToOtherTenants 设置为 true。
Updated client manifest
现在一切正常。