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

即使将应用程序设置为多租户,也无法从不同租户连接到azure广告应用程序

闾丘京
2023-03-14

我决定从旧的azure门户创建应用程序并将应用程序设置为多租户。

我已经设置了OAuth 2.0令牌endpoint(< code > https://log in . Microsoft online . com/

如果我尝试使用任何已注册的Office 365用户ID(我用于登录Azure的用户除外)进行授权,则会收到此错误:

来自身份提供者“https://STS . windows . net/49322 BD 9-93ea-4911-a8e 4-1a a10 BC 5b 680/”的用户帐户“tester 1 @ tester core . on Microsoft . com”在租户“mary”中不存在,因此无法访问该租户中的应用程序“8 adfad 2 b-f28a-40a 6-8698-8 b 53 AC 506132”。首先需要将该帐户作为外部用户添加到租户中。注销并使用不同的Azure Active Directory用户帐户重新登录。

如果我在azure中手动添加这个用户,我会得到访问令牌,但这不应该发生。这必须在运行时发生,因为我的应用程序是多租户的。你能建议我哪里可能出错吗?

共有1个答案

司空海荣
2023-03-14

您需要使用https://login.microsoftonline.com/common/oauth2/authorizeendpoint。

这是允许从任何Azure AD租户登录的公共endpoint。您不应该在多租户应用程序中使用特定于租户的endpoint。

至于获取访问令牌,您必须使用登录用户的租户id。这样,您可以获得仅在其租户中有效的访问令牌。

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

  • 我必须在j2ee中开发一个多租户SaaS应用程序,从Iaas和PaaS开始实现三种云模型,我选择了openstack和openshift origin。SaaS应用程序的第一个标准是多租户,我知道有三种方法来实现它——单独的数据库——共享数据库,单独的模式——共享数据库,共享模式。我在这里迷失了方向,因为许多框架,比如ATHENA,ORM,比如hibernate,还有TOPLINK。我需要帮助了解

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

  • 我正在构建基于Web的多租户SaaS应用程序。应用程序已在我的租户中注册,每个订阅Office 365的客户都将在Azure AD中获得服务主体对象。 我在客户租户中从外部帐户(Microsoft帐户)登录时遇到问题。 我创建了一个示例,并试图看看我可以从访问令牌中获得什么。 示例包含一个使用 MSAL 库处理身份验证的客户端应用程序 (.js) 和两个具有受保护终结点的 API。我还创建了三个独

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