当前位置: 首页 > 知识库问答 >
问题:

在多租户应用程序中,我如何检查应用程序在azure门户中注册的租户数据?

汪建德
2023-03-14

我有两个来自不同组织(租户)的SharePoint网站:

  • 房客1:abc.sharepoint.com
  • 房客2:xyz.sharepoint.com

已在azure portal for Tenan 1'abc上注册并授予应用程序所需的权限。sharepoint。com”,以便租户2用户可以访问它:“xyz”。sharepoint。com'

  • 认证工作正常
  • 当我与租户1的abc用户进行身份验证时,对sharepoint列表数据的访问正常工作。sharepoint。com'

我想要的是与租户2’xyz的用户进行身份验证。sharepoint。com“您可以查阅sharepoint的数据,例如:

当我提出请求时:

>

  • https://graph.microsoft.com/v1.0/sites/root或https://graph.microsoft.com/v1.0/sites/xyz.sharepoint.com

    它满意地返回了信息,因为它查阅了“xyz”的站点。sharepoint。com”,因为用户来自该租户

    ... 但当我咨询指定承租人的abc时。sharepoint。com'

    https://graph.microsoft.com/v1.0/sites/abc.sharepoint.com

    返回以下错误:

    {“错误”:{“代码”:“无效请求”,“消息”:“此租户的主机名无效”,“innerError”:{“请求ID”:“c0a8fa51-245b-4d1e-bf0b-5f32b6c0eb26”,“日期”:“2019-08-17T16:27:57" } } }

    一个与另一个租户的用户进行了身份验证。如何检查应用程序已注册的信息?


  • 共有1个答案

    卢开济
    2023-03-14

    我们不能使用从一个租户获得的访问令牌访问另一个租户。

    如果你想这样做,你需要:

    1. 添加租户2’xyz的用户。sharepoint。com“作为客人进入租户1”abc。sharepoint。com'。请参阅Quickstart:将访客用户添加到Azure门户中的目录
    2. 使用租户1的管理员帐户对在租户2的Azure AD中注册的应用程序进行管理员同意。只需打开浏览器并向
    https://login.microsoftonline.com/common/oauth2/authorize?client_id={client id of the app registered in Azure AD of Tenant 2}&response_type=code&redirect_uri={reply url of the app registered in Azure AD of Tenant 2}&nonce=1234&resource=https://graph.microsoft.com&prompt=admin_consent
    
     类似资料:
    • 我必须在j2ee中开发一个多租户SaaS应用程序,从Iaas和PaaS开始实现三种云模型,我选择了openstack和openshift origin。SaaS应用程序的第一个标准是多租户,我知道有三种方法来实现它——单独的数据库——共享数据库,单独的模式——共享数据库,共享模式。我在这里迷失了方向,因为许多框架,比如ATHENA,ORM,比如hibernate,还有TOPLINK。我需要帮助了解

    • 我已经安装了keycloak-angular包,我使用它的方式如下:https://www.npmjs.com/package/keycloak-angular 问题是,在我的应用程序中,我希望有多租户。这意味着在应用程序加载期间不知道领域名。 在说明中,它说“KeycloakService应该在应用程序加载期间使用APP_INITIALIZER标记初始化”,问题是该领域是由用户给定的,在应用程序

    • 我正在使用Java、Spring、Struts2和Hibernate设计一个多租户SaaS Web应用程序。经过一些研究,我选择在共享数据库、共享模式、共享表的方法中实现多租户。并用tenantid标记每个db行。 我已经重写了我的应用程序,所以管理者和DAO将把tenantId作为一个参数,只为正确的数据库资源服务。 当获取信息时,这对所有视图来说都是完美的。也用于创建新的东西(使用登录的用户t

    • 我目前正试图找出为我的系统设置多租户的最佳方法。我面临的问题是,租户并不总是必须是子域,但可以作为子域的一部分进行设置,子域可以有多个租户。我似乎在网上找不到任何东西可以帮助我在Laravel 6中进行设置。 系统要求: 一台服务器可以有许多子域 系统必须设置一个数据库,该数据库将使用tenant_id来确定哪些数据属于租户。 我目前正在以以下结构将所有子域数据存储在“subdomains”表中:

    • 我正在学习多租户应用程序,以及如何使用PostgreSQL的模式来实现这一点。 在研究这个主题时,我发现了一篇文章,作者描述了在多租户应用程序中使用PostgreSQL模式时的糟糕体验。主要问题是迁移性能差和数据库资源使用率高。 似乎只有一个模式(在租户之间共享表)会比每个租户有一个单独的模式带来更好的性能。但我觉得很奇怪。我的想法正好相反,因为较小表上的索引往往比较大表上的索引轻。 为什么在许多