为什么切换到Azure Web app / API到Multi-tenanted不起作用?

时间:2017-01-11 00:31:21

标签: azure asp.net-web-api multi-tenant

我在Web app / API部署Microsoft Azure部署单租户模式。我需要让其他租户的用户能够使用我的API。

我发现这篇文章的分步指南启用了多租户身份验证, https://blog.mastykarz.nl/configuring-multi-tenant-authentication-azure-app-service-authentication-options/

但是当我尝试将Web API的Multitenanted属性更改为“是”时,它会显示“无法更新App ID URI应用程序属性”,并显示以下错误详细信息:

{"errorCode":"HostNameNotOnVerifiedDomain","localizedErrorDetails":
{"errorDetail":"Host name in property identifierUris is not on any verified
 domain of the company or its subdomain."},
"operationResults":null,"timeStampUtc":"2017-01-11T00:14:37.3270764Z",
"clientRequestId":"...","internalTransactionId":"...",
"upn":"...@gmail.com","tenantId":"...","userObjectId":"..."}

目前,App ID URI保存了我的Web API的地址(并且它按预期在单租户模式下工作)https://(..).azurewebsites.net这对多租户模式不正确吗?

2 个答案:

答案 0 :(得分:3)

没有。对于多租户应用,App ID URI必须位于AAD的域中。因此,如果我的AAD包含test.onmicrosoft.com和company.com等域名,那么允许的URI将是:

您不拥有azurewebsites.net域名,因此无法使用它。

答案 1 :(得分:1)

从管理门户中的App ID URI的帮助文本:

  

URI用作应用的唯一逻辑标识符。 URI 必须位于经过验证的自定义域中,外部用户才能授予您的应用访问Microsoft Azure AD中的数据的权限

话虽如此,由于App ID URI没有任何功能含义,您仍然可以通过将App ID URI设置为以下内容来进行测试:

http://<localhost_or_whatever>.<tenantName>.onmicrosoft.com 

但请保留您的回复网址,因为它们指向您的.azurewebsite.net URI。

这可让您继续将应用配置为多租户,并使用您想要的任何网站进行测试。

注意:我从非常相似的问题重复我的回答:从我对类似问题的回答: Azure AD Error after editing manifest to enable availableToOtherTenants