Microsoft Graph API多租户仅应用程序认证方案



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

我有一个Azure租户,我按照文档指南在其中创建了应用程序。我的应用程序现在能够使用https://login.microsoftonline.com/<tenantId>/oauth2/token端点获得访问令牌,这允许我查询租户内用户的Graph API。

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

多租户是可能的应用程序认证方案?租户所有者如何将我的应用程序插入到其Azure租户中?

仅应用程序的多租户是可能的,但是,为了启用它,您需要两个东西:

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

更多关于admin同意的信息:https://azure.microsoft.com/en-us/documentation/articles/active-directory-devhowto-multi-tenant-overview/#understanding-user-and-admin-consent

通过admin consent为用户"注册"应用程序的控制器方法示例:https://github.com/Azure-Samples/active-directory-dotnet-webapp-webapi-multitenant-openidconnect/blob/master/TodoListWebApp/Controllers/OnboardingController.cs L33-L58

  • 您需要跟踪哪些租户同意您的应用程序,以便您可以为他们启用运行仅应用程序流的代码。与委托流不同,您不能使用公共端点(https://login.microsoftonline.com/common),而是需要为每个实例或仅应用流的运行使用特定于租户的端点。
  • 最新更新