首页 > 解决方案 > 在 ASP.Net Core (Blazor) 中向 Microsoft Graph 添加特定/手动用户同意

问题描述

我在 Blazor (ASP.NET Core) 中构建了一个 Web 应用程序。该应用程序是多租户的,我需要控制谁可以访问,因此我使用存储在 SQL 数据库中的自己的用户数据库 (DefaultIdentity)。

现在我需要访问 Microsoft Graph(对于某些用户)。我通过使用应用程序级别访问来完成这项工作,但希望避免让本地 IT 管理员在他们的 Azure AD 中进行设置 - 我想遵守“最小权限原则”。

因此,我希望能够添加一个登录页面/功能,其中特定用户(在他们使用我的本地用户数据库登录后)可以授予我的应用程序授权 + 同意通过 Microsoft Graph 检索 Calendar.Read 权限。

我该怎么做?我可以从我的 Web 应用程序以编程方式调用 ad azure 登录/同意页面吗?(可能) - 但如何?

标签: asp.net-coreazure-active-directoryazure-ad-graph-apiblazor-server-side

解决方案


您正在使用应用程序级别的访问权限。因此,我认为您正在关注Get access without a user而不是Get access for a user

在这种情况下,您不能Calendar.Read使用特定用户授予应用程序权限,因为此权限需要管理员同意,并且对完整租户生效。

所以这个设计不是很合适。

在此处输入图像描述

您需要做的是配置应用程序访问策略并限制应用程序权限的范围。

在此处查看详细信息:将应用程序权限范围限定到特定 Exchange Online 邮箱

我知道您不想使用 AAD 配置它,但这是最好的方法,您不需要限制代码的范围。


推荐阅读