摘要:如何为Microsoft用户动态获取租户ID?
详细信息: 我正在编写一个多租户应用程序(C#和.NET Core),我想使用该应用程序创建订阅和register for change notifications。我正在使用Microsoft Graph API v1.0进行此操作。
我遵循了this文档,以获取服务帐户的访问令牌。 在注册该应用并创建所需的权限(例如User.Read,Mail.ReadWrite)后,我们需要为其授予管理员同意
要以编程方式执行此操作,
发送GET请求至:
https://login.microsoftonline.com/common/adminconsent?client_id={anyClientId}&state=12345&redirect_uri={redirectUrl}
这将带用户进入auth同意屏幕,询问所请求的权限。
获得许可后,用户将从步骤1重定向到“ redirectUrl”,并且tenantId和admin_consent将出现在查询参数中,例如
https://example.com/auth?admin_consent=true&tenant={corresponding_tenant_id}
然后,可以使用此tenantId为C#MVC应用程序获取经过身份验证的GraphClient。 MSGraph SDK for .NET Reference
问题
还有其他方法可以再次获取此tenantId以便将来使用吗?我希望每次发出请求(而不是登录)时都可以避免管理员同意流程。
再次需要租户ID的示例用例:
答案 0 :(得分:0)
在大多数情况下,您可以使用租户名称替换租户ID。并且,您可以从电子邮件地址获取租户名称。
根据您的描述,您的应用程序将代表用户管理用户的邮箱。在这种情况下,您的应用程序将具有该用户的访问令牌。然后,您可以通过使用令牌向https://management.azure.com/tenants?api-version=2016-06-01发出GET请求来获取租户ID。