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

Microsoft Graph API多租户应用程序专用auth方案

孙帅
2023-03-14

Microsoft Graph API提供了仅适用于应用程序的身份验证方案,该方案非常适合拥有应用程序的租户。

我有一个Azure租户,我按照文档指南在其中创建了应用程序。我的应用程序现在可以使用https://login.microsoftonline.com/ /oauth2/token endpoint获得访问令牌,这允许我查询租户内用户的图形API。

但是,我希望我的应用程序能够为其他租户获得访问令牌。我认为外部租户所有者应该以某种方式将我的应用程序插入到他们的Azure租户中,应用某些仅适用于应用程序的范围,并为我提供租户id,以便查询令牌endpoint。

只有应用程序的身份验证方案是否可以采用多租户?租户所有者如何将我的应用程序插入到他们的Azure租户中?

共有1个答案

宓弘壮
2023-03-14

只有应用程序的多租户是可能的,但是,为了实现这一点,您需要两件事:

  1. 您需要有一个web UI供租户管理员登录并执行管理员同意,以便像您所说的那样,“将我的应用程序插入到他们的Azure租户中”。确保添加了查询字符串参数&prompt=admin_consory.

有关管理同意的更多信息:https://azure.microsoft.com/en-us/documentation/articles/active-directory-devhowto-multi-ten租者-overview/#reduction-user-and-admin-consory

通过管理员同意为用户“注册”应用程序的示例控制器方法:https://github.com/azure-samples/active-directory-dotnet-webapp-webapi-multitenten-openidconnect/blob/master/todolistwebapp/controlls/onboardingcontroller.cs#L33-L58

 类似资料:
  • 我必须在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模式时的糟糕体验。主要问题是迁移性能差和数据库资源使用率高。 似乎只有一个模式(在租户之间共享表)会比每个租户有一个单独的模式带来更好的性能。但我觉得很奇怪。我的想法正好相反,因为较小表上的索引往往比较大表上的索引轻。 为什么在许多

  • 我正在使用spring boot开发一个多租户应用程序。 系统的业务逻辑将根据每个租户进行更改。 例如,应用程序上的特定租户租赁空间可能希望改变使用一些复杂的自定义逻辑计算值的方式。我想为应用程序注册默认行为/依赖项,并允许特定租户覆盖它。 这可以使用Spring Boot完成吗?