首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >创建多租户azure AD应用程序的服务主体,以在不同的AAD租户中公开其权限

创建多租户azure AD应用程序的服务主体,以在不同的AAD租户中公开其权限
EN

Stack Overflow用户
提问于 2017-01-31 21:48:02
回答 2查看 5.1K关注 0票数 1

我在Azure中创建了一个应用程序,并翻转了多租户开关,使应用程序成为多租户应用程序。

然后,我按照文章如何使用多租户应用程序模式在任何Azure Active (AD)用户中签名中列出的步骤将其他Azure租户的用户登录到我的多租户应用程序中。

代码如下所示

代码语言:javascript
运行
复制
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租户中公开我的多租户应用程序?

这里的租户,应用程序和资源的基本概要。

代码语言:javascript
运行
复制
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的命令顺序如下.

代码语言:javascript
运行
复制
Connect-AzureAD -TenantId "TenantId as Guid"
New-AzureADServicePrincipal -AppId "Client/Application Id of the multi tenant application"

命令成功完成后,多租户应用程序将开始显示在客户端应用程序的“必需权限”屏幕中。

EN

回答 2

Stack Overflow用户

发布于 2017-02-01 03:05:18

一般来说,您可以尝试在租户2中使用帐户,在租户1中登录您的应用程序,在成功登录之后,您的应用程序将自动添加到租户2中,.You可以尝试遵循以下步骤:

  1. 在AD应用程序的配置刀片中启用多租户

  1. 在使用adal时修改配置,将tenantId设置为common
  2. 运行您的应用程序,使用租户2中的用户在应用程序中签名。

接受您在租户中申请的许可同意

  1. 成功登录后,您可以发现您的应用程序被添加到租户2中。

票数 1
EN

Stack Overflow用户

发布于 2017-02-01 07:05:06

Gary的回答基本上是正确的,并概述了服务主体是如何在租户B中创建的。在这样做之后,您应该能够:

  1. 去新的门户
  2. 在应用程序注册下查找您的客户端应用程序
  3. 转到必需的权限
  4. 单击Add
  5. 单击“选择API”
  6. 在显示的搜索栏中输入多租户应用程序的名称或其中的一部分。
  7. 选择多租户应用程序,然后定义客户端需要的权限。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41968087

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档