我在Azure中创建了一个应用程序,并翻转了多租户开关,使应用程序成为多租户应用程序。
然后,我按照文章如何使用多租户应用程序模式在任何Azure Active (AD)用户中签名中列出的步骤将其他Azure租户的用户登录到我的多租户应用程序中。
代码如下所示
string aadInstance = "https://login.microsoftonline.com/{0}";
string tenant = "common";
string authority = String.Format(CultureInfo.InvariantCulture, aadInstance, tenant);
Microsoft.IdentityModel.Clients.ActiveDirectory.AuthenticationContext context = new Microsoft.IdentityModel.Clients.ActiveDirectory.AuthenticationContext(authority);
AuthenticationResult result = await context.AcquireTokenAsync("https://XXXX.onmicrosoft.com/TodoListServiceMT", AppIdOfAppInDifferentTenant, new Uri("https://localhost:44399/"), new PlatformParameters(PromptBehavior.Always));
但在身份验证期间,我始终遇到以下错误。
AADSTS65005:客户端应用程序请求访问资源“https://XXXX.onmicrosoft.com/TodoListServiceMT”。此请求失败,因为客户端未在其requiredResourceAccess列表中指定此资源。
修复错误要求我在另一个Azure AD租户的客户端应用程序中为我的多租户应用程序添加权限。
但是,我无法在我的客户端应用程序的配置权限屏幕中找到我的多租户应用程序。我在这个列表中看到的只有Azure AD图、ARM和Azure Active Directory。
以前有人成功地尝试过这种方法吗?需要做什么才能在其他Azure AD租户中公开我的多租户应用程序?
这里的租户,应用程序和资源的基本概要。
Tenant A
-> Multi-tenant App, resource id(App Id URI)-"https://XXXX.onmicrosoft.com/TodoListServiceMT"
Tenant B
-> Client App (AppIdOfAppInDifferentTenant)
对于身份验证,我使用的是租户B中的管理用户
我尝试将AppIdOfAppInDifferentTenant添加到多租户应用程序的应用程序清单的AppIdOfAppInDifferentTenant部分,但只能在同一个租户中添加应用程序I。
溶液
我仍然不知道为什么我的代码不能生成一个同意提示来成功注册SP,但是我尝试使用新发布的Azure Active V2 PowerShell模块,它对我有效。 在另一个租户中创建多租户应用程序SP的命令顺序如下.
Connect-AzureAD -TenantId "TenantId as Guid"
New-AzureADServicePrincipal -AppId "Client/Application Id of the multi tenant application"
命令成功完成后,多租户应用程序将开始显示在客户端应用程序的“必需权限”屏幕中。
发布于 2017-02-01 03:05:18
一般来说,您可以尝试在租户2中使用帐户,在租户1中登录您的应用程序,在成功登录之后,您的应用程序将自动添加到租户2中,.You可以尝试遵循以下步骤:
tenantId
设置为common
接受您在租户中申请的许可同意
发布于 2017-02-01 07:05:06
Gary的回答基本上是正确的,并概述了服务主体是如何在租户B中创建的。在这样做之后,您应该能够:
https://stackoverflow.com/questions/41968087
复制相似问题